Bitbybit Docs
    Bereite Suchindex vor...

    Klasse OCCTBooleans

    Kombinieren von OpenCascade-Formen miteinander: die Vereinigung verschmilzt sie zu einer, die Differenz schneidet eine von einer anderen weg, der Schnitt behält nur, was sie gemeinsam haben. Diese arbeiten auf der exakten Geometrie und liefern exakte Ergebnisse. Die Mesh-Schnittmethoden triangulieren stattdessen die Formen und schneiden die Dreiecke, was auf schwieriger Geometrie schneller und robuster ist, aber Polylinien statt Kurven liefert. Jede Methode gibt eine neue Form zurück; sofern keepEdges nicht gesetzt ist, werden Flächen, die am Ende auf einer Oberfläche liegen, zusammengeführt und die Nähte zwischen ihnen entfernt.

    Index

    Konstruktoren

    booleans

    • Verschmilzt mehrere Formen zu einer, so wie zwei überlappende Tonklumpen zu einem Klumpen werden.

      Die Formen werden nacheinander in Listenreihenfolge verschmolzen. Mit keepEdges false, dem Standard, werden Flächen, die auf einer Oberfläche landen, zusammengeführt und die Nähte entfernt; true behält jede Kante der Eingaben.

      Parameter

      Rückgabewert Promise<TopoDSShapePointer>

      Die verschmolzene Form

      const fused = await bitbybit.occt.booleans.union({ shapes: [box, cylinder], keepEdges: false });
      
    • Schneidet Formen von einer Hauptform weg, so wie ein Bohrer Material entfernt: was übrig bleibt, ist die Hauptform minus jede Form in der Liste.

      Die Formen werden nacheinander abgezogen. Mit keepEdges false, dem Standard, werden Flächen, die auf einer Oberfläche verbleiben, zusammengeführt; wenn genau ein Volumenkörper übrig bleibt, wird er für sich zurückgegeben statt in einem Verbund.

      Parameter

      Rückgabewert Promise<TopoDSShapePointer>

      Was von der Hauptform übrig bleibt

      const holed = await bitbybit.occt.booleans.difference({ shape: box, shapes: [cylinder], keepEdges: false });
      
    • Behält nur das Volumen, das die erste Form mit jeder der anderen gemeinsam hat.

      Die erste Form wird mit jeder anderen Form einzeln verschnitten und die Stücke kommen in einem Verbund zurück: bei drei Formen erhalten Sie die Überlappung der ersten mit der zweiten und mit der dritten, nicht von allen dreien. Weniger als zwei Formen lösen einen Fehler aus.

      Parameter

      Rückgabewert Promise<TopoDSShapePointer>

      Ein Verbund der gemeinsamen Teile

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

    mesh based

    • Ermittelt, wo sich die Oberflächen zweier Formen kreuzen, indem beide trianguliert und die Dreiecke verschnitten werden, und gibt die Kreuzungslinien als Drähte zurück.

      Jede Form hat ihre eigene Vernetzungsgenauigkeit: ein kleinerer Wert folgt gekrümmten Oberflächen enger und dauert länger. Die Drähte sind Polylinien, daher zeichnen sie die Kreuzung nur näherungsweise nach; die exakten Kurven kommen von intersection mit Flächen.

      Parameter

      Rückgabewert Promise<TopoDSWirePointer[]>

      Die Schnittlinien als Polyliniendrähte

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionWires({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • Ermittelt, wo sich die Oberflächen zweier Formen kreuzen, indem beide trianguliert und die Dreiecke verschnitten werden, und gibt die Kreuzungslinien als Punktlisten zurück.

      Jede Form hat ihre eigene Vernetzungsgenauigkeit: ein kleinerer Wert folgt gekrümmten Oberflächen enger und dauert länger. Jede Punktliste ist eine Kreuzungslinie, in Reihenfolge entlang ihr.

      Parameter

      Rückgabewert Promise<Point3[][]>

      Eine Punktliste pro Schnittlinie

      const lines = await bitbybit.occt.booleans.meshMeshIntersectionPoints({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • Ermittelt, wo die Oberfläche einer Form die Oberflächen mehrerer anderer kreuzt, indem sie alle trianguliert und die Dreiecke verschnitten werden, und gibt die Kreuzungslinien als Drähte zurück.

      precision vernetzt die Hauptform und precisionShapes gibt eine Genauigkeit pro anderer Form; kleinere Werte folgen Kurven enger und dauern länger.

      Parameter

      Rückgabewert Promise<TopoDSWirePointer[]>

      Die Schnittlinien als Polyliniendrähte, für alle Formen zusammen

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionOfShapesWires({ shape: sphere, shapes: [box, cylinder], precision: 0.01, precisionShapes: [0.01, 0.01] });
      
    • Ermittelt, wo die Oberfläche einer Form die Oberflächen mehrerer anderer kreuzt, indem sie alle trianguliert und die Dreiecke verschnitten werden, und gibt die Kreuzungslinien als Punktlisten zurück.

      precision vernetzt die Hauptform und precisionShapes gibt eine Genauigkeit pro anderer Form; jede Punktliste ist eine Kreuzungslinie, in Reihenfolge entlang ihr.

      Parameter

      Rückgabewert Promise<Point3[][]>

      Eine Punktliste pro Schnittlinie, für alle Formen zusammen

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