Bitbybit Docs
    Preparing search index...

    Class OCCTBooleans

    将 OpenCascade 形状相互组合:并集将它们融合为一个,差集从一个形状中切除另一个,交集只保留它们共有的部分。这些操作作用于精确几何体并给出精确结果。网格相交方法则先将形状三角化再对三角形求交,这在棘手的几何体上更快更稳健,但给出的是折线而非曲线。每个方法都返回新形状;除非设置了 keepEdges,否则最终位于同一曲面上的面会被合并,它们之间的接缝被移除。

    Index

    Constructors

    booleans

    • 将多个形状融合为一个,就像两团重叠的黏土变成一块。

      形状按列表顺序依次融合。keepEdges 为 false(默认)时,最终位于同一曲面上的面被合并并移除接缝;为 true 时保留输入的每条边。

      Parameters

      Returns Promise<TopoDSShapePointer>

      融合后的形状

      const fused = await bitbybit.occt.booleans.union({ shapes: [box, cylinder], keepEdges: false });
      
    • 从主形状中切除若干形状,就像钻头去除材料:剩下的是主形状减去列表中的每个形状。

      这些形状被依次减去。keepEdges 为 false(默认)时,留在同一曲面上的面被合并;当恰好剩下一个实体时,它单独返回而不是放在复合体中。

      Parameters

      Returns Promise<TopoDSShapePointer>

      主形状剩余的部分

      const holed = await bitbybit.occt.booleans.difference({ shape: box, shapes: [cylinder], keepEdges: false });
      
    • 只保留第一个形状与其他每个形状共有的体积。

      第一个形状依次与其他每个形状求交,碎块以一个复合体返回:三个形状时你得到的是第一个与第二个以及第一个与第三个的重叠部分,而不是三者共有的部分。少于两个形状会抛出错误。

      Parameters

      Returns Promise<TopoDSShapePointer>

      共有部分的复合体

      const common = await bitbybit.occt.booleans.intersection({ shapes: [box, sphere], keepEdges: false });
      

    mesh based

    • 通过将两个形状都三角化并对三角形求交来找出它们的表面相交处,并以线框返回相交线。

      每个形状有自己的网格化精度:值越小越紧密地贴合曲面,耗时也越长。线框是折线,因此近似地描出相交处;精确曲线来自对面使用 intersection

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      以折线线框表示的相交线

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionWires({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • 通过将两个形状都三角化并对三角形求交来找出它们的表面相交处,并以点列表返回相交线。

      每个形状有自己的网格化精度:值越小越紧密地贴合曲面,耗时也越长。每个点列表是一条相交线,按沿线的顺序排列。

      Parameters

      Returns Promise<Point3[][]>

      每条相交线一个点列表

      const lines = await bitbybit.occt.booleans.meshMeshIntersectionPoints({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • 通过将所有形状三角化并对三角形求交来找出一个形状的表面与多个其他形状的表面的相交处,并以线框返回相交线。

      precision 网格化主形状,precisionShapes 为其他每个形状给出一个精度;值越小越紧密地贴合曲线,耗时也越长。

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      以折线线框表示的相交线,包含所有形状

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionOfShapesWires({ shape: sphere, shapes: [box, cylinder], precision: 0.01, precisionShapes: [0.01, 0.01] });
      
    • 通过将所有形状三角化并对三角形求交来找出一个形状的表面与多个其他形状的表面的相交处,并以点列表返回相交线。

      precision 网格化主形状,precisionShapes 为其他每个形状给出一个精度;每个点列表是一条相交线,按沿线的顺序排列。

      Parameters

      Returns Promise<Point3[][]>

      每条相交线一个点列表,包含所有形状

      const lines = await bitbybit.occt.booleans.meshMeshIntersectionOfShapesPoints({ shape: sphere, shapes: [box, cylinder], precision: 0.01, precisionShapes: [0.01, 0.01] });