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

      • inputs: IntersectionDto<TopoDSShapePointer>

        Формы, первая из которых пересекается с остальными, и сохранять ли ребра швов

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