Bitbybit Docs
    Preparing search index...

    Class OCCTBooleans

    Combinar formas de OpenCascade entre sí: la unión las fusiona en una, la diferencia recorta una de otra, la intersección conserva solo lo que comparten. Estas trabajan sobre la geometría exacta y dan resultados exactos. Los métodos de intersección de mallas, en cambio, triangulan las formas e intersecan los triángulos, lo que es más rápido y más robusto con geometría difícil pero da polilíneas en lugar de curvas. Cada método devuelve una forma nueva; a menos que keepEdges esté activado, las caras que acaban sobre una misma superficie se fusionan y las costuras entre ellas se eliminan.

    Index

    Constructors

    booleans

    • Fusiona varias formas en una, como dos pegotes de arcilla que se solapan se convierten en un solo bloque.

      Las formas se fusionan una tras otra en el orden de la lista. Con keepEdges en false, el valor predeterminado, las caras que acaban sobre una misma superficie se fusionan y las costuras se eliminan; true conserva todas las aristas de las entradas.

      Parameters

      Returns Promise<TopoDSShapePointer>

      La forma fusionada

      const fused = await bitbybit.occt.booleans.union({ shapes: [box, cylinder], keepEdges: false });
      
    • Recorta formas de una forma principal, como un taladro elimina material: lo que queda es la forma principal menos todas las formas de la lista.

      Las formas se restan una tras otra. Con keepEdges en false, el valor predeterminado, las caras que quedan sobre una misma superficie se fusionan; cuando queda exactamente un sólido se devuelve por sí solo en lugar de dentro de un compuesto.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Lo que queda de la forma principal

      const holed = await bitbybit.occt.booleans.difference({ shape: box, shapes: [cylinder], keepEdges: false });
      
    • Conserva solo el volumen que la primera forma comparte con cada una de las demás.

      La primera forma se interseca con cada una de las otras formas de una en una y los trozos vuelven en un compuesto: con tres formas obtienes el solape de la primera con la segunda y con la tercera, no el de las tres. Menos de dos formas lanzan un error.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Un compuesto de las partes compartidas

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

    mesh based

    • Encuentra dónde se cruzan las superficies de dos formas triangulando ambas e intersecando los triángulos, y devuelve las líneas de cruce como alambres.

      Cada forma tiene su propia precisión de mallado: un valor más pequeño sigue las superficies curvas más de cerca y tarda más. Los alambres son polilíneas, así que trazan el cruce de forma aproximada; las curvas exactas vienen de intersection con caras.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Las líneas de cruce como alambres de polilínea

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionWires({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • Encuentra dónde se cruzan las superficies de dos formas triangulando ambas e intersecando los triángulos, y devuelve las líneas de cruce como listas de puntos.

      Cada forma tiene su propia precisión de mallado: un valor más pequeño sigue las superficies curvas más de cerca y tarda más. Cada lista de puntos es una línea de cruce, en orden a lo largo de ella.

      Parameters

      Returns Promise<Point3[][]>

      Una lista de puntos por línea de cruce

      const lines = await bitbybit.occt.booleans.meshMeshIntersectionPoints({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • Encuentra dónde la superficie de una forma cruza las superficies de varias otras triangulándolas todas e intersecando los triángulos, y devuelve las líneas de cruce como alambres.

      precision malla la forma principal y precisionShapes da una precisión por cada otra forma; los valores más pequeños siguen las curvas más de cerca y tardan más.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Las líneas de cruce como alambres de polilínea, para todas las formas juntas

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionOfShapesWires({ shape: sphere, shapes: [box, cylinder], precision: 0.01, precisionShapes: [0.01, 0.01] });
      
    • Encuentra dónde la superficie de una forma cruza las superficies de varias otras triangulándolas todas e intersecando los triángulos, y devuelve las líneas de cruce como listas de puntos.

      precision malla la forma principal y precisionShapes da una precisión por cada otra forma; cada lista de puntos es una línea de cruce, en orden a lo largo de ella.

      Parameters

      Returns Promise<Point3[][]>

      Una lista de puntos por línea de cruce, para todas las formas juntas

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