Bitbybit Docs
    Preparing search index...

    Class OCCTBrepGraph

    Consultas estruturais sobre uma forma OpenCascade vista como um grafo: que faces se tocam, a que faces uma aresta pertence, que arestas se encontram num vértice, que superfície ou curva suporta cada face ou aresta, como as cascas e os sólidos se contêm uns aos outros, e a árvore de produtos e ocorrências de uma montagem. Cada consulta devolve dados simples com ok e uma mensagem de erro em vez de lançar uma exceção, para que um lote de consultas possa reportar falhas por item; reconstruct transforma um nó desses dados de volta numa subforma real.

    Index

    Constructors

    assembly

    • Lê a estrutura de montagem de uma forma como produtos e ocorrências: um produto é uma peça ou submontagem definida uma vez, uma ocorrência é uma colocação dele com uma matriz e um pai.

      É o que a importação de montagens STEP produz e o que uma vista em árvore percorre; uma forma simples não reporta produtos.

      Parameters

      Returns Promise<BRepGraphAssemblyResult>

      Os produtos raiz, todos os produtos e todas as ocorrências

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

    geometry

    • Descreve a geometria de cada face: o tipo de superfície em que assenta, os seus limites UV, se transporta uma triangulação, e um id único.

      As faces são numeradas a partir de 0 pela ordem que shapes.face.getFaces usa.

      Parameters

      Returns Promise<BRepGraphFaceInfoResult>

      Uma entrada de geometria por face

      const faces = await bitbybit.occt.brepGraph.faceInfo({ shape: cylinder });
      console.log(faces.faces.map(f => f.surfaceType));
    • Descreve a geometria de cada aresta: o tipo de curva que segue, o seu intervalo de parâmetro, a sua continuidade e um id único.

      As arestas são numeradas a partir de 0 pela ordem em que shapes.edge.getEdges as lista.

      Parameters

      Returns Promise<BRepGraphEdgeInfoResult>

      Uma entrada de geometria por aresta

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

    navigate

    • Transforma um nó do grafo, dado pelo seu tipo e índice, de volta na subforma real que representa, de modo que uma face ou aresta encontrada por uma consulta possa ser usada numa operação.

      Os índices são os que os resultados das consultas usam, a contar de 0 por tipo.

      Parameters

      Returns Promise<TopoDSShapePointer>

      A subforma

      const face = await bitbybit.occt.brepGraph.reconstruct({ shape: box, kind: Bit.Inputs.OCCT.brepGraphNodeKindEnum.face, index: 2 });
      
    • Encontra o nó do grafo que representa uma dada subforma de uma forma: o seu tipo, o seu índice e o seu id único.

      O inverso de reconstruct; uma subforma que não pertença à forma dá um resultado marcado como inválido.

      Parameters

      Returns Promise<BRepGraphNodeLookup>

      O tipo, o índice e o id do nó, ou um resultado invá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

    • Conta de que uma forma é feita: sólidos, cascas, faces, fios, arestas, coarestas e vértices, as superfícies e curvas distintas por trás deles, e quaisquer produtos e ocorrências de montagem.

      A maneira mais rápida de ver o que um ficheiro importado contém, e de distinguir um sólido de um composto que só parece um.

      Parameters

      Returns Promise<BRepGraphAnalysis>

      As contagens e os metadados do grafo

      const census = await bitbybit.occt.brepGraph.analyze({ shape: imported });
      console.log(census.solids, census.faces);
    • Lista, para cada face, as faces que partilham uma aresta com ela, junto com as suas arestas, contagem de fios e fio exterior.

      As faces são numeradas a partir de 0 pela ordem em que o kernel percorre a forma, a mesma ordem que shapes.face.getFaces usa. Este é o bloco de construção para fazer crescer uma seleção para fora a partir de uma face semente ou encontrar as faces de uma cavidade.

      Parameters

      Returns Promise<BRepGraphFaceAdjacencyResult>

      Uma entrada de adjacência por face

      const adjacency = await bitbybit.occt.brepGraph.faceAdjacency({ shape: box });
      console.log(adjacency.faces[0].adjacent);
    • Lista, para cada aresta, as faces a que pertence, os seus vértices de extremidade e os seus indicadores de topologia, como se é uma costura ou uma aresta de bordo.

      As arestas são numeradas a partir de 0 pela ordem em que shapes.edge.getEdges as lista.

      Parameters

      Returns Promise<BRepGraphEdgeFaceMapResult>

      Uma entrada por aresta

      const edges = await bitbybit.occt.brepGraph.edgeFaceMap({ shape: box });
      
    • Lista todos os vértices com o seu ponto 3D, a sua tolerância e as arestas que aí se encontram.

      Os vértices são numerados a partir de 0 pela ordem em que o kernel percorre a forma.

      Parameters

      Returns Promise<BRepGraphVertexEdgeMapResult>

      Uma entrada por vértice

      const vertices = await bitbybit.occt.brepGraph.vertexEdgeMap({ shape: box });
      
    • Mapeia as partes da forma para cima: a que cascas cada face pertence, a que sólidos cada casca pertence, e em que sólidos cada face acaba.

      Cada lista contém os índices dos pais de um filho, por isso uma face partilhada por dois sólidos lista ambos.

      Parameters

      Returns Promise<BRepGraphContainmentResult>

      Os índices dos pais por face e por casca

      const containment = await bitbybit.occt.brepGraph.containment({ shape: compound });
      
    • Despeja a estrutura inteira de uma forma: cada sólido, casca, face, aresta e vértice com o seu id único e as partes diretamente abaixo dele.

      A consulta mais pesada aqui, para raciocinar sobre a topologia inteira de uma vez em vez de responder a uma pergunta.

      Parameters

      Returns Promise<BRepGraphDumpResult>

      Os sólidos, cascas, faces, arestas e vértices com as suas referências

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

    validation

    • Verifica a estrutura do grafo de uma forma à procura de problemas como referências pendentes ou ligações inconsistentes, e lista cada problema encontrado com a sua gravidade.

      Isto verifica a contabilidade, não a geometria; shapes.shape.isValid e shapeFix.basicShapeRepair lidam com a validade geométrica.

      Parameters

      Returns Promise<BRepGraphValidationResult>

      Se o grafo é consistente e os problemas encontrados

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