Bitbybit Docs
    Preparing search index...

    Class MeshBitByBit

    Геометрия на простых треугольных мешах: меш - это список треугольников, каждый из трех точек. Методы здесь вычисляют плоскость треугольника, расстояние от точки до плоскости и то, где два меша прорезают друг друга, в виде сегментов, полилиний или списков точек. Им не нужно CAD-ядро, поэтому они работают на любых триангулированных данных.

    Index

    Constructors

    base

    • Измеряет, как далеко точка от плоскости, со знаком: положительное на стороне, куда указывает нормаль, отрицательное на другой.

      Пример: точка [0,5,0] и плоскость XZ с нормалью [0,1,0] -> 5

      Parameters

      Returns number

      Расстояние со знаком в единицах модели

      const above = bitbybit.mesh.signedDistanceToPlane({ point: [0, 5, 0], plane: { normal: [0, 1, 0], d: 0 } });
      

    mesh

    • Находит каждый отрезок, где поверхности двух мешей прорезают друг друга, проверяя каждый треугольник одного против каждого треугольника другого.

      Пример: меш куба и меш сферы -> отрезки, которые вместе обводят кривую их пересечения

      Parameters

      Returns Segment3[]

      Сегменты пересечения, в произвольном порядке

      const segments = bitbybit.mesh.meshMeshIntersectionSegments({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      
    • Находит, где поверхности двух мешей прорезают друг друга, и соединяет части в полилинии, замкнутые там, где кривая образует петлю.

      Пример: меш куба и меш сферы -> замкнутые полилинии там, где две поверхности сходятся

      Parameters

      Returns Polyline3[]

      Кривые пересечения как полилинии

      const curves = bitbybit.mesh.meshMeshIntersectionPolylines({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      
    • Находит, где поверхности двух мешей прорезают друг друга, как один список точек на кривую.

      Замкнутая кривая повторяет свою первую точку в конце, чтобы петля была явной. Пример: меш куба и меш сферы -> списки точек, обводящие место, где две поверхности сходятся

      Parameters

      Returns Point3[][]

      По одному списку точек на каждую кривую пересечения

      const curves = bitbybit.mesh.meshMeshIntersectionPoints({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      

    traingle

    • Находит плоскость, в которой лежит треугольник: ее единичную нормаль и расстояние от начала координат вдоль этой нормали.

      Нормаль следует правилу правой руки при обходе точек треугольника. Треугольник без площади, точки которого на одной прямой, не имеет плоскости и дает undefined. Пример: [[0,0,0], [1,0,0], [0,1,0]] -> { normal: [0,0,1], d: 0 }

      Parameters

      • inputs: TriangleToleranceDto

        Треугольник и допуск, ниже которого его площадь считается нулевой

      Returns TrianglePlane3

      Плоскость или undefined для вырожденного треугольника

      const plane = bitbybit.mesh.calculateTrianglePlane({ triangle: [[0, 0, 0], [1, 0, 0], [0, 1, 0]], tolerance: 1e-7 });
      
    • Находит отрезок, где два треугольника прорезают друг друга.

      Треугольники, которые не касаются, параллельны или лежат в одной плоскости, дают undefined. Пример: треугольник в плоскости XY и стоящий поперек него -> отрезок, где они пересекаются

      Parameters

      Returns Segment3

      Сегмент пересечения или undefined, если его нет

      const cut = bitbybit.mesh.triangleTriangleIntersection({
      triangle1: [[0, 0, 0], [2, 0, 0], [1, 2, 0]],
      triangle2: [[1, -1, 1], [1, 1, 1], [1, 1, -1]],
      tolerance: 1e-7,
      });