Bitbybit Docs
    Preparing search index...

    Class JSCADShapes

    Построение тел JSCAD: кубы, параллелепипеды, сферы, эллипсоиды, цилиндры, тор и тело из сырых точек многоугольников, каждое с вариантом, который размещает по одной копии на каждой точке списка. Ядро держит Z как собственную ось, поэтому цилиндр стоит вдоль Z, а тор лежит плоско в плоскости XY; каждое тело - это замкнутый меш из многоугольников, а segments задает, сколько плоских граней аппроксимируют круглую поверхность.

    Index

    Constructors

    primitives

    • Строит куб с длиной ребра size, центрированный на center, с гранями, параллельными осям.

      Parameters

      Returns Promise<JSCADEntity>

      Тело куба

      const cube = await bitbybit.jscad.shapes.cube({ center: [0, 0, 0], size: 10 });
      
    • Строит бокс, центрированный на center, с width вдоль X, height вдоль Y и length вдоль Z, с гранями, параллельными осям.

      Parameters

      • inputs: CuboidDto

        Центр и три длины сторон

      Returns Promise<JSCADEntity>

      Тело параллелепипеда

      const box = await bitbybit.jscad.shapes.cuboid({ center: [0, 0, 0], width: 10, height: 5, length: 20 });
      
    • Строит цилиндр с эллиптическим сечением, радиусы которого могут различаться на двух концах, стоящий вдоль Z и центрированный на center.

      startRadius - радиусы X и Y на нижнем конце, а endRadius на верхнем, так что неравные пары дают сужающееся или конусообразное тело; height делится поровну над и под center.

      Parameters

      • inputs: CylidnerEllipticDto

        Центр, высота, две пары радиусов и число сегментов

      Returns Promise<JSCADEntity>

      Тело эллиптического цилиндра

      const cone = await bitbybit.jscad.shapes.cylinderElliptic({ center: [0, 0, 0], height: 10, startRadius: [4, 2], endRadius: [1, 0.5], segments: 32 });
      
    • Строит круглый цилиндр заданного radius, стоящий вдоль Z, с height, делимой поровну над и под center.

      segments - число плоских сторон вокруг него; больше - круглее.

      Parameters

      • inputs: CylidnerDto

        Центр, высота, радиус и число сегментов

      Returns Promise<JSCADEntity>

      Тело цилиндра

      const cylinder = await bitbybit.jscad.shapes.cylinder({ center: [0, 0, 0], height: 10, radius: 3, segments: 32 });
      
    • Строит эллипсоид, сферу, растянутую отдельно вдоль X, Y и Z, центрированный на center.

      radius содержит три полуразмера в порядке [x, y, z]; равные значения дают сферу.

      Parameters

      • inputs: EllipsoidDto

        Центр, три радиуса и число сегментов

      Returns Promise<JSCADEntity>

      Тело эллипсоида

      const egg = await bitbybit.jscad.shapes.ellipsoid({ center: [0, 0, 0], radius: [5, 3, 8], segments: 32 });
      
    • Строит сферу из треугольников равного размера, как строится геодезический купол, центрированную на center.

      frequency - насколько мелко разделены двадцать исходных граней; используется целыми кратными 6 и должна быть не менее 6, а большие значения дают более круглую сферу.

      Parameters

      • inputs: GeodesicSphereDto

        Центр, радиус и частота подразбиения

      Returns Promise<JSCADEntity>

      Тело геодезической сферы

      const dome = await bitbybit.jscad.shapes.geodesicSphere({ center: [0, 0, 0], radius: 5, frequency: 12 });
      
    • Строит бокс со всеми ребрами и углами, скругленными на roundRadius, центрированный на center, с width вдоль X, height вдоль Y и length вдоль Z.

      roundRadius должен быть меньше половины наименьшей стороны, иначе выбрасывается ошибка; segments задает, насколько гладко огранено скругление.

      Parameters

      • inputs: RoundedCuboidDto

        Центр, три длины сторон, радиус скругления и число сегментов

      Returns Promise<JSCADEntity>

      Тело скругленного параллелепипеда

      const soft = await bitbybit.jscad.shapes.roundedCuboid({ center: [0, 0, 0], width: 10, height: 5, length: 20, roundRadius: 1, segments: 16 });
      
    • Строит цилиндр, стоящий вдоль Z, оба края которого скруглены на roundRadius, с height, делимой поровну над и под center.

      height должна быть больше удвоенного roundRadius, иначе выбрасывается ошибка.

      Parameters

      • inputs: RoundedCylidnerDto

        Центр, радиус скругления, высота, радиус и число сегментов

      Returns Promise<JSCADEntity>

      Тело скругленного цилиндра

      const pill = await bitbybit.jscad.shapes.roundedCylinder({ center: [0, 0, 0], roundRadius: 1, height: 10, radius: 3, segments: 32 });
      
    • Строит сферу заданного radius, центрированную на center; segments - число граней вокруг нее, так что больше - круглее.

      Parameters

      Returns Promise<JSCADEntity>

      Тело сферы

      const ball = await bitbybit.jscad.shapes.sphere({ center: [0, 0, 0], radius: 5, segments: 32 });
      
    • Строит тор, кольцо с круглым сечением, лежащее плоско в плоскости XY вокруг center с Z через его отверстие.

      outerRadius - расстояние от центра до середины трубки, а innerRadius - собственный радиус трубки, который должен быть меньше. Повороты и startAngle в градусах; outerRotation ниже 360 оставляет кольцо открытым.

      Parameters

      • inputs: Bit.Inputs.JSCAD.TorusDto

        Центр, два радиуса, два числа сегментов, два поворота и начальный угол

      Returns Promise<JSCADEntity>

      Тело тора

      const ring = await bitbybit.jscad.shapes.torus({ center: [0, 0, 0], innerRadius: 1, outerRadius: 5, innerSegments: 16, outerSegments: 48, innerRotation: 0, outerRotation: 360, startAngle: 0 });
      

    primitives on centers

    • Строит по одному кубу с длиной ребра size на каждой точке centers, в том же порядке.

      Parameters

      • inputs: CubeCentersDto

        Центральные точки и длина ребра

      Returns Promise<JSCADEntity[]>

      По одному кубу на каждую центральную точку

      const cubes = await bitbybit.jscad.shapes.cubesOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0], [40, 0, 0]], size: 10 });
      
    • Строит по одному боксу заданных width, height и length на каждой точке centers, в том же порядке.

      Parameters

      • inputs: CuboidCentersDto

        Центральные точки и три длины сторон

      Returns Promise<JSCADEntity[]>

      По одному параллелепипеду на каждую центральную точку

      const boxes = await bitbybit.jscad.shapes.cuboidsOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0]], width: 10, height: 5, length: 20 });
      
    • Строит по одному эллиптическому цилиндру с заданными радиусами и высотой на каждой точке centers, в том же порядке, как cylinderElliptic для одного.

      Parameters

      • inputs: CylidnerCentersEllipticDto

        Центральные точки, высота, две пары радиусов и число сегментов

      Returns Promise<JSCADEntity[]>

      По одному эллиптическому цилиндру на каждую центральную точку

      const cones = await bitbybit.jscad.shapes.cylinderEllipticOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0]], height: 10, startRadius: [4, 2], endRadius: [1, 0.5], segments: 32 });
      
    • Строит по одному цилиндру заданных radius и height на каждой точке centers, в том же порядке, как cylinder для одного.

      Parameters

      • inputs: CylidnerCentersDto

        Центральные точки, высота, радиус и число сегментов

      Returns Promise<JSCADEntity[]>

      По одному цилиндру на каждую центральную точку

      const posts = await bitbybit.jscad.shapes.cylindersOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0], [40, 0, 0]], height: 10, radius: 1, segments: 16 });
      
    • Строит по одному эллипсоиду с заданными радиусами на каждой точке centers, в том же порядке, как ellipsoid для одного.

      Parameters

      • inputs: EllipsoidCentersDto

        Центральные точки, три радиуса и число сегментов

      Returns Promise<JSCADEntity[]>

      По одному эллипсоиду на каждую центральную точку

      const eggs = await bitbybit.jscad.shapes.ellipsoidsOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0]], radius: [5, 3, 8], segments: 32 });
      
    • Строит по одной геодезической сфере заданного radius на каждой точке centers, в том же порядке, как geodesicSphere для одной.

      Parameters

      • inputs: GeodesicSphereCentersDto

        Центральные точки, радиус и частота подразбиения

      Returns Promise<JSCADEntity[]>

      По одной геодезической сфере на каждую центральную точку

      const domes = await bitbybit.jscad.shapes.geodesicSpheresOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0]], radius: 5, frequency: 12 });
      
    • Строит по одному скругленному боксу с заданными сторонами и скруглением на каждой точке centers, в том же порядке, как roundedCuboid для одного.

      Parameters

      • inputs: RoundedCuboidCentersDto

        Центральные точки, три длины сторон, радиус скругления и число сегментов

      Returns Promise<JSCADEntity[]>

      По одному скругленному параллелепипеду на каждую центральную точку

      const softBoxes = await bitbybit.jscad.shapes.roundedCuboidsOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0]], width: 10, height: 5, length: 20, roundRadius: 1, segments: 16 });
      
    • Строит по одному скругленному цилиндру с заданными размером и скруглением на каждой точке centers, в том же порядке, как roundedCylinder для одного.

      Parameters

      • inputs: RoundedCylidnerCentersDto

        Центральные точки, радиус скругления, высота, радиус и число сегментов

      Returns Promise<JSCADEntity[]>

      По одному скругленному цилиндру на каждую центральную точку

      const pills = await bitbybit.jscad.shapes.roundedCylindersOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0]], roundRadius: 1, height: 10, radius: 3, segments: 32 });
      
    • Строит по одной сфере заданного radius на каждой точке centers, в том же порядке, как sphere для одной.

      Parameters

      • inputs: SphereCentersDto

        Центральные точки, радиус и число сегментов

      Returns Promise<JSCADEntity[]>

      По одной сфере на каждую центральную точку

      const balls = await bitbybit.jscad.shapes.spheresOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0], [40, 0, 0]], radius: 5, segments: 32 });
      

    shapes

    • Строит тело из его граней, каждая задана списком точек, обходящих грань.

      Перечисляйте точки каждой грани по часовой стрелке, если смотреть снаружи тела; грани должны замыкать тело, чтобы булевы операции с ним работали. Каждый список читается в обратном порядке, а вход не изменяется.

      Parameters

      Returns Promise<JSCADEntity>

      Тело

      const tetrahedron = await bitbybit.jscad.shapes.fromPolygonPoints({ polygonPoints: [
      [[0, 0, 0], [10, 0, 0], [0, 10, 0]],
      [[0, 0, 0], [0, 10, 0], [0, 0, 10]],
      [[0, 0, 0], [0, 0, 10], [10, 0, 0]],
      [[10, 0, 0], [0, 0, 10], [0, 10, 0]],
      ] });