Bitbybit Docs
    Preparing search index...

    Class JSCADShapes

    构建 JSCAD 实体:立方体、长方体、球体、椭球体、圆柱体、圆环体以及由原始多边形点构成的实体,每种都有一个在列表的每个点上放置一个副本的变体。内核以 Z 作为自身的轴,因此圆柱体沿 Z 竖立,圆环体平躺在 XY 平面内;每个实体都是闭合的多边形网格,segments 指定用多少个平面小面来近似圆形表面。

    Index

    Constructors

    primitives

    • 构建以 center 为中心、边长为 size 的立方体,其面与坐标轴平行。

      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

      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 是顶端的,因此不相等的两对生成锥形或类圆锥的实体;heightcenter 上下均分。

      Parameters

      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 });
      
    • 构建沿 Z 竖立、给定 radius 的圆柱体,heightcenter 上下均分。

      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

      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

      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

      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 倒圆的圆柱体,heightcenter 上下均分。

      height 必须大于 roundRadius 的两倍,否则抛出错误。

      Parameters

      Returns Promise<JSCADEntity>

      圆角圆柱体实体

      const pill = await bitbybit.jscad.shapes.roundedCylinder({ center: [0, 0, 0], roundRadius: 1, height: 10, radius: 3, segments: 32 });
      
    • 构建以 center 为中心、给定 radius 的球体;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

      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

    • centers 的每个点上构建一个边长为 size 的立方体,顺序相同。

      Parameters

      Returns Promise<JSCADEntity[]>

      每个中心点一个立方体

      const cubes = await bitbybit.jscad.shapes.cubesOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0], [40, 0, 0]], size: 10 });
      
    • centers 的每个点上构建一个具有给定 widthheightlength 的长方体,顺序相同。

      Parameters

      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

      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 });
      
    • centers 的每个点上构建一个具有给定 radiusheight 的圆柱体,顺序相同,与 cylinder 对一个所做的相同。

      Parameters

      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

      Returns Promise<JSCADEntity[]>

      每个中心点一个椭球体

      const eggs = await bitbybit.jscad.shapes.ellipsoidsOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0]], radius: [5, 3, 8], segments: 32 });
      
    • centers 的每个点上构建一个给定 radius 的测地球体,顺序相同,与 geodesicSphere 对一个所做的相同。

      Parameters

      Returns Promise<JSCADEntity[]>

      每个中心点一个测地球体

      const domes = await bitbybit.jscad.shapes.geodesicSpheresOnCenterPoints({ centers: [[0, 0, 0], [20, 0, 0]], radius: 5, frequency: 12 });
      
    • centers 的每个点上构建一个具有给定边长和倒圆的圆角长方体,顺序相同,与 roundedCuboid 对一个所做的相同。

      Parameters

      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

      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 });
      
    • centers 的每个点上构建一个给定 radius 的球体,顺序相同,与 sphere 对一个所做的相同。

      Parameters

      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]],
      ] });