Bitbybit Docs
    Preparing search index...

    Class MeshBitByBit

    Geometria sobre malhas de triângulos simples: uma malha é uma lista de triângulos, cada um com três pontos. Os métodos aqui calculam o plano de um triângulo, a distância de um ponto a um plano, e onde duas malhas se atravessam, como segmentos, como polilinhas ou como listas de pontos. Não precisam de um kernel CAD, por isso funcionam sobre quaisquer dados triangulados.

    Index

    Constructors

    base

    • Mede a que distância um ponto está de um plano, com sinal: positivo do lado para onde a normal aponta, negativo do outro.

      Exemplo: ponto [0,5,0] e o plano XZ com normal [0,1,0] -> 5

      Parameters

      Returns number

      A distância com sinal em unidades do modelo

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

    mesh

    • Encontra todos os segmentos onde as superfícies de duas malhas se atravessam, testando cada triângulo de uma contra cada triângulo da outra.

      Exemplo: uma malha de cubo e uma malha de esfera -> os segmentos que juntos traçam a sua curva de interseção

      Parameters

      Returns Segment3[]

      Os segmentos de cruzamento, sem ordem particular

      const segments = bitbybit.mesh.meshMeshIntersectionSegments({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      
    • Encontra onde as superfícies de duas malhas se atravessam e une os troços em polilinhas, fechadas onde a curva fecha um laço.

      Exemplo: uma malha de cubo e uma malha de esfera -> polilinhas fechadas onde as duas superfícies se encontram

      Parameters

      Returns Polyline3[]

      As curvas de interseção como polilinhas

      const curves = bitbybit.mesh.meshMeshIntersectionPolylines({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      
    • Encontra onde as superfícies de duas malhas se atravessam, como uma lista de pontos por curva.

      Uma curva fechada repete o seu primeiro ponto no fim para que o laço seja explícito. Exemplo: uma malha de cubo e uma malha de esfera -> listas de pontos que traçam onde as duas superfícies se encontram

      Parameters

      Returns Point3[][]

      Uma lista de pontos por curva de interseção

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

    traingle

    • Encontra o plano em que um triângulo assenta: a sua normal unitária e a sua distância à origem ao longo dessa normal.

      A normal segue a regra da mão direita à volta dos pontos do triângulo. Um triângulo sem área, cujos pontos estão numa só linha, não tem plano e dá undefined. Exemplo: [[0,0,0], [1,0,0], [0,1,0]] -> { normal: [0,0,1], d: 0 }

      Parameters

      • inputs: TriangleToleranceDto

        O triângulo e a tolerância abaixo da qual a sua área conta como zero

      Returns TrianglePlane3

      O plano, ou undefined para um triângulo degenerado

      const plane = bitbybit.mesh.calculateTrianglePlane({ triangle: [[0, 0, 0], [1, 0, 0], [0, 1, 0]], tolerance: 1e-7 });
      
    • Encontra o segmento onde dois triângulos se atravessam.

      Triângulos que não se tocam, são paralelos, ou assentam no mesmo plano dão undefined. Exemplo: um triângulo no plano XY e um de pé a atravessá-lo -> o segmento onde se cruzam

      Parameters

      Returns Segment3

      O segmento de cruzamento, ou undefined quando não existe

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