Bitbybit Docs
    Preparing search index...

    Class OCCTBrepGraph

    Consultas estructurales sobre una forma de OpenCascade vista como un grafo: qué caras se tocan, a qué caras pertenece una arista, qué aristas se encuentran en un vértice, qué superficie o curva respalda cada cara o arista, cómo se contienen entre sí carcasas y sólidos, y el árbol de productos y ocurrencias de un ensamblaje. Cada consulta devuelve datos simples con ok y un mensaje de error en lugar de lanzar una excepción, para que un lote de consultas pueda informar de fallos por elemento; reconstruct convierte un nodo de esos datos de nuevo en una subforma real.

    Index

    Constructors

    assembly

    • Lee la estructura de ensamblaje de una forma como productos y ocurrencias: un producto es una pieza o subensamblaje definido una vez, una ocurrencia es una colocación de él con una matriz y un padre.

      Esto es lo que produce la importación de ensamblajes STEP y lo que recorre una vista de árbol; una forma simple no informa ningún producto.

      Parameters

      Returns Promise<BRepGraphAssemblyResult>

      Los productos raíz, todos los productos y todas las ocurrencias

      const tree = await bitbybit.occt.brepGraph.assembly({ shape: imported });
      console.log(tree.products.length, tree.occurrences.length);

    geometry

    • Describe la geometría de cada cara: el tipo de superficie sobre la que está, sus límites UV, si lleva una triangulación, y un id único.

      Las caras se numeran desde 0 en el orden que usa shapes.face.getFaces.

      Parameters

      Returns Promise<BRepGraphFaceInfoResult>

      Una entrada de geometría por cara

      const faces = await bitbybit.occt.brepGraph.faceInfo({ shape: cylinder });
      console.log(faces.faces.map(f => f.surfaceType));
    • Describe la geometría de cada arista: el tipo de curva que sigue, su rango de parámetro, su continuidad y un id único.

      Las aristas se numeran desde 0 en el orden en que shapes.edge.getEdges las lista.

      Parameters

      Returns Promise<BRepGraphEdgeInfoResult>

      Una entrada de geometría por arista

      const edges = await bitbybit.occt.brepGraph.edgeInfo({ shape: cylinder });
      

    navigate

    • Convierte un nodo del grafo, dado por su tipo e índice, de vuelta en la subforma real que representa, de modo que una cara o arista encontrada por una consulta puede usarse en una operación.

      Los índices son los que usan los resultados de las consultas, contados desde 0 por tipo.

      Parameters

      Returns Promise<TopoDSShapePointer>

      La subforma

      const face = await bitbybit.occt.brepGraph.reconstruct({ shape: box, kind: Bit.Inputs.OCCT.brepGraphNodeKindEnum.face, index: 2 });
      
    • Encuentra el nodo del grafo que representa una subforma dada de una forma: su tipo, su índice y su id único.

      El inverso de reconstruct; una subforma que no pertenece a la forma da un resultado marcado como no válido.

      Parameters

      Returns Promise<BRepGraphNodeLookup>

      El tipo, el índice y el id del nodo, o un resultado no válido

      const faces = await bitbybit.occt.shapes.face.getFaces({ shape: box });
      const node = await bitbybit.occt.brepGraph.nodeOfShape({ shape: box, subShape: faces[0] });
      console.log(node.kind, node.index);

    topology

    • Cuenta de qué está hecha una forma: sólidos, carcasas, caras, alambres, aristas, coaristas y vértices, las superficies y curvas distintas que hay detrás de ellos, y cualquier producto y ocurrencia de ensamblaje.

      La manera más rápida de ver qué contiene un archivo importado, y de distinguir un sólido de un compuesto que solo lo parece.

      Parameters

      Returns Promise<BRepGraphAnalysis>

      Los recuentos y los metadatos del grafo

      const census = await bitbybit.occt.brepGraph.analyze({ shape: imported });
      console.log(census.solids, census.faces);
    • Lista, para cada cara, las caras que comparten una arista con ella, junto con sus aristas, número de alambres y alambre exterior.

      Las caras se numeran desde 0 en el orden en que el núcleo recorre la forma, el mismo orden que usa shapes.face.getFaces. Este es el bloque básico para hacer crecer una selección hacia fuera desde una cara semilla o para encontrar las caras de una cajera.

      Parameters

      Returns Promise<BRepGraphFaceAdjacencyResult>

      Una entrada de adyacencia por cara

      const adjacency = await bitbybit.occt.brepGraph.faceAdjacency({ shape: box });
      console.log(adjacency.faces[0].adjacent);
    • Lista, para cada arista, las caras a las que pertenece, sus vértices extremos y sus indicadores de topología, como si es una costura o una arista de borde.

      Las aristas se numeran desde 0 en el orden en que shapes.edge.getEdges las lista.

      Parameters

      Returns Promise<BRepGraphEdgeFaceMapResult>

      Una entrada por arista

      const edges = await bitbybit.occt.brepGraph.edgeFaceMap({ shape: box });
      
    • Asigna las partes de la forma hacia arriba: a qué carcasas pertenece cada cara, a qué sólidos pertenece cada carcasa, y en qué sólidos acaba cada cara.

      Cada lista contiene los índices de los padres de un hijo, así que una cara compartida por dos sólidos lista ambos.

      Parameters

      Returns Promise<BRepGraphContainmentResult>

      Los índices de los padres por cara y por carcasa

      const containment = await bitbybit.occt.brepGraph.containment({ shape: compound });
      
    • Vuelca toda la estructura de una forma: cada sólido, carcasa, cara, arista y vértice con su id único y las partes directamente por debajo.

      La consulta más pesada de aquí, para razonar sobre toda la topología a la vez en lugar de responder una sola pregunta.

      Parameters

      Returns Promise<BRepGraphDumpResult>

      Los sólidos, carcasas, caras, aristas y vértices con sus referencias

      const structure = await bitbybit.occt.brepGraph.dump({ shape: box });
      console.log(structure.faces.length, structure.edges.length);

    validation

    • Comprueba la estructura del grafo de una forma en busca de problemas como referencias colgantes o enlaces incoherentes, y lista cada problema encontrado con su gravedad.

      Esto comprueba la contabilidad, no la geometría; shapes.shape.isValid y shapeFix.basicShapeRepair se ocupan de la validez geométrica.

      Parameters

      Returns Promise<BRepGraphValidationResult>

      Si el grafo es correcto y los problemas encontrados

      const report = await bitbybit.occt.brepGraph.validate({ shape: imported });
      console.log(report.valid, report.issues);