Bitbybit Docs
    Preparing search index...

    Class OCCTBooleans

    Combinar formas OpenCascade umas com as outras: a união funde-as numa só, a diferença corta uma da outra, a interseção mantém apenas o que partilham. Estas trabalham sobre a geometria exata e dão resultados exatos. Os métodos de interseção de malhas, em vez disso, triangulam as formas e intersetam os triângulos, o que é mais rápido e mais robusto em geometria difícil mas dá polilinhas em vez de curvas. Cada método devolve uma nova forma; a menos que keepEdges esteja definido, as faces que acabam por assentar numa só superfície são unidas e as costuras entre elas removidas.

    Index

    Constructors

    booleans

    • Funde várias formas numa só, da maneira como duas bolas de barro sobrepostas se tornam um só bloco.

      As formas são fundidas uma após outra pela ordem da lista. Com keepEdges falso, a predefinição, as faces que ficam numa só superfície são fundidas e as costuras removidas; verdadeiro mantém todas as arestas das entradas.

      Parameters

      Returns Promise<TopoDSShapePointer>

      A forma fundida

      const fused = await bitbybit.occt.booleans.union({ shapes: [box, cylinder], keepEdges: false });
      
    • Subtrai formas a uma forma principal, da maneira como uma broca remove material: o que resta é a forma principal menos todas as formas da lista.

      As formas são subtraídas uma após outra. Com keepEdges falso, a predefinição, as faces deixadas numa só superfície são fundidas; quando resta exatamente um sólido é devolvido por si só em vez de dentro de um composto.

      Parameters

      Returns Promise<TopoDSShapePointer>

      O que resta da forma principal

      const holed = await bitbybit.occt.booleans.difference({ shape: box, shapes: [cylinder], keepEdges: false });
      
    • Mantém só o volume que a primeira forma partilha com cada uma das outras.

      A primeira forma é intersetada com cada uma das outras formas uma de cada vez e os pedaços voltam num só composto: com três formas obtém a sobreposição da primeira com a segunda e com a terceira, não das três. Menos de duas formas lançam um erro.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Um composto das partes comuns

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

    mesh based

    • Encontra onde as superfícies de duas formas se cruzam triangulando ambas e intersetando os triângulos, e devolve as linhas de cruzamento como fios.

      Cada forma tem a sua própria precisão de malha: um valor menor segue as superfícies curvas mais de perto e demora mais. Os fios são polilinhas, por isso traçam o cruzamento aproximadamente; as curvas exatas vêm de intersection com faces.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      As linhas de cruzamento como fios de polilinha

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionWires({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • Encontra onde as superfícies de duas formas se cruzam triangulando ambas e intersetando os triângulos, e devolve as linhas de cruzamento como listas de pontos.

      Cada forma tem a sua própria precisão de malha: um valor menor segue as superfícies curvas mais de perto e demora mais. Cada lista de pontos é uma linha de cruzamento, por ordem ao longo dela.

      Parameters

      Returns Promise<Point3[][]>

      Uma lista de pontos por linha de cruzamento

      const lines = await bitbybit.occt.booleans.meshMeshIntersectionPoints({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • Encontra onde a superfície de uma forma cruza as superfícies de várias outras triangulando-as todas e intersetando os triângulos, e devolve as linhas de cruzamento como fios.

      precision malha a forma principal e precisionShapes dá uma precisão por cada outra forma; valores menores seguem as curvas mais de perto e demoram mais.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      As linhas de cruzamento como fios de polilinha, para todas as formas em conjunto

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionOfShapesWires({ shape: sphere, shapes: [box, cylinder], precision: 0.01, precisionShapes: [0.01, 0.01] });
      
    • Encontra onde a superfície de uma forma cruza as superfícies de várias outras triangulando-as todas e intersetando os triângulos, e devolve as linhas de cruzamento como listas de pontos.

      precision malha a forma principal e precisionShapes dá uma precisão por cada outra forma; cada lista de pontos é uma linha de cruzamento, por ordem ao longo dela.

      Parameters

      Returns Promise<Point3[][]>

      Uma lista de pontos por linha de cruzamento, para todas as formas em conjunto

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