Bitbybit Docs
    Preparing search index...

    Class OCCTBooleans

    Combiner des formes OpenCascade entre elles : l'union les fusionne en une seule, la différence retire l'une de l'autre, l'intersection ne garde que ce qu'elles partagent. Elles travaillent sur la géométrie exacte et donnent des résultats exacts. Les méthodes d'intersection de maillages triangulent à la place les formes et intersectent les triangles, ce qui est plus rapide et plus robuste sur une géométrie difficile mais donne des polylignes plutôt que des courbes. Chaque méthode renvoie une nouvelle forme ; sauf si keepEdges est défini, les faces qui finissent par reposer sur une même surface sont fusionnées et les coutures entre elles supprimées.

    Index

    Constructors

    booleans

    • Fusionne plusieurs formes en une seule, comme deux boules d'argile qui se chevauchent deviennent un seul bloc.

      Les formes sont fusionnées l'une après l'autre dans l'ordre de la liste. Avec keepEdges faux, la valeur par défaut, les faces qui finissent sur une même surface sont fusionnées et les coutures retirées ; vrai garde chaque arête des entrées.

      Parameters

      Returns Promise<TopoDSShapePointer>

      La forme fusionnée

      const fused = await bitbybit.occt.booleans.union({ shapes: [box, cylinder], keepEdges: false });
      
    • Retire des formes d'une forme principale, comme une perceuse retire de la matière : ce qui reste est la forme principale moins chaque forme de la liste.

      Les formes sont soustraites l'une après l'autre. Avec keepEdges faux, la valeur par défaut, les faces laissées sur une même surface sont fusionnées ; quand exactement un solide reste, il est renvoyé seul plutôt que dans un composé.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Ce qui reste de la forme principale

      const holed = await bitbybit.occt.booleans.difference({ shape: box, shapes: [cylinder], keepEdges: false });
      
    • Ne garde que le volume que la première forme partage avec chacune des autres.

      La première forme est intersectée avec chaque autre forme une à la fois et les morceaux reviennent dans un seul composé : avec trois formes vous obtenez le chevauchement de la première avec la deuxième et avec la troisième, pas des trois ensemble. Moins de deux formes lèvent une erreur.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Un composé des parties communes

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

    mesh based

    • Trouve où les surfaces de deux formes se croisent en triangulant les deux et en intersectant les triangles, et renvoie les lignes de croisement sous forme de fils.

      Chaque forme a sa propre précision de maillage : une valeur plus petite suit les surfaces courbes de plus près et prend plus de temps. Les fils sont des polylignes, ils tracent donc le croisement approximativement ; les courbes exactes viennent de intersection avec des faces.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Les lignes de croisement sous forme de fils polylignes

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionWires({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • Trouve où les surfaces de deux formes se croisent en triangulant les deux et en intersectant les triangles, et renvoie les lignes de croisement sous forme de listes de points.

      Chaque forme a sa propre précision de maillage : une valeur plus petite suit les surfaces courbes de plus près et prend plus de temps. Chaque liste de points est une ligne de croisement, dans l'ordre le long d'elle.

      Parameters

      Returns Promise<Point3[][]>

      Une liste de points par ligne de croisement

      const lines = await bitbybit.occt.booleans.meshMeshIntersectionPoints({ shape1: sphere, shape2: box, precision1: 0.01, precision2: 0.01 });
      
    • Trouve où la surface d'une forme croise les surfaces de plusieurs autres en les triangulant toutes et en intersectant les triangles, et renvoie les lignes de croisement sous forme de fils.

      precision maille la forme principale et precisionShapes donne une précision par autre forme ; des valeurs plus petites suivent les courbes de plus près et prennent plus de temps.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Les lignes de croisement sous forme de fils polylignes, pour toutes les formes ensemble

      const seams = await bitbybit.occt.booleans.meshMeshIntersectionOfShapesWires({ shape: sphere, shapes: [box, cylinder], precision: 0.01, precisionShapes: [0.01, 0.01] });
      
    • Trouve où la surface d'une forme croise les surfaces de plusieurs autres en les triangulant toutes et en intersectant les triangles, et renvoie les lignes de croisement sous forme de listes de points.

      precision maille la forme principale et precisionShapes donne une précision par autre forme ; chaque liste de points est une ligne de croisement, dans l'ordre le long d'elle.

      Parameters

      Returns Promise<Point3[][]>

      Une liste de points par ligne de croisement, pour toutes les formes ensemble

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