Bitbybit Docs
    Preparing search index...

    Class OCCTBrepGraph

    Структурные запросы к форме OpenCascade, рассматриваемой как граф: какие грани соприкасаются, каким граням принадлежит ребро, какие ребра встречаются в вершине, какая поверхность или кривая лежит за каждой гранью или ребром, как оболочки и тела содержат друг друга, а также дерево изделий и вхождений сборки. Каждый запрос возвращает простые данные с ok и сообщением об ошибке вместо выброса исключения, чтобы пакет запросов мог сообщать о сбоях по каждому элементу; reconstruct превращает узел этих данных обратно в настоящую подформу.

    Index

    Constructors

    assembly

    • Читает структуру сборки формы как изделия и вхождения: изделие - деталь или подсборка, определенная один раз, вхождение - одно ее размещение с матрицей и родителем.

      Это то, что производит импорт сборки STEP и что обходит древовидный вид; простая форма сообщает об отсутствии изделий.

      Parameters

      Returns Promise<BRepGraphAssemblyResult>

      Корневые изделия, все изделия и все вхождения

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

    geometry

    • Описывает геометрию каждой грани: вид поверхности, на которой она лежит, ее границы UV, несет ли она триангуляцию, и уникальный id.

      Грани нумеруются с 0 в порядке, который использует shapes.face.getFaces.

      Parameters

      Returns Promise<BRepGraphFaceInfoResult>

      По одной записи о геометрии на грань

      const faces = await bitbybit.occt.brepGraph.faceInfo({ shape: cylinder });
      console.log(faces.faces.map(f => f.surfaceType));
    • Описывает геометрию каждого ребра: вид кривой, которой оно следует, ее диапазон параметра, ее непрерывность и уникальный id.

      Ребра нумеруются с 0 в порядке, в котором их перечисляет shapes.edge.getEdges.

      Parameters

      Returns Promise<BRepGraphEdgeInfoResult>

      По одной записи о геометрии на ребро

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

    navigate

    • Превращает узел графа, заданный типом и индексом, обратно в настоящую подформу, которую он представляет, так что грань или ребро, найденные запросом, можно использовать в операции.

      Индексы - те, что используют результаты запросов, считая с 0 по каждому типу.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Подформа

      const face = await bitbybit.occt.brepGraph.reconstruct({ shape: box, kind: Bit.Inputs.OCCT.brepGraphNodeKindEnum.face, index: 2 });
      
    • Находит узел графа, представляющий заданную подформу формы: его тип, его индекс и его уникальный id.

      Обратное к reconstruct; подформа, не принадлежащая форме, дает результат, помеченный недействительным.

      Parameters

      Returns Promise<BRepGraphNodeLookup>

      Вид, индекс и id узла или недействительный результат

      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

    • Подсчитывает, из чего состоит форма: тела, оболочки, грани, контуры, ребра, коребра и вершины, различные поверхности и кривые за ними, а также любые изделия и вхождения сборки.

      Самый быстрый способ увидеть, что содержит импортированный файл, и отличить одно тело от компаунда, который только выглядит как одно.

      Parameters

      Returns Promise<BRepGraphAnalysis>

      Количества и метаданные графа

      const census = await bitbybit.occt.brepGraph.analyze({ shape: imported });
      console.log(census.solids, census.faces);
    • Перечисляет для каждой грани грани, разделяющие с ней ребро, вместе с ее ребрами, числом контуров и внешним контуром.

      Грани нумеруются с 0 в порядке обхода формы ядром, том же порядке, что использует shapes.face.getFaces. Это строительный блок для разрастания выделения наружу от исходной грани или поиска граней кармана.

      Parameters

      Returns Promise<BRepGraphFaceAdjacencyResult>

      По одной записи смежности на грань

      const adjacency = await bitbybit.occt.brepGraph.faceAdjacency({ shape: box });
      console.log(adjacency.faces[0].adjacent);
    • Перечисляет для каждого ребра грани, которым оно принадлежит, его конечные вершины и его топологические флаги, например является ли оно швом или граничным ребром.

      Ребра нумеруются с 0 в порядке, в котором их перечисляет shapes.edge.getEdges.

      Parameters

      Returns Promise<BRepGraphEdgeFaceMapResult>

      По одной записи на ребро

      const edges = await bitbybit.occt.brepGraph.edgeFaceMap({ shape: box });
      
    • Перечисляет каждую вершину с ее 3D-точкой, ее допуском и ребрами, которые там сходятся.

      Вершины нумеруются с 0 в порядке обхода формы ядром.

      Parameters

      Returns Promise<BRepGraphVertexEdgeMapResult>

      По одной записи на вершину

      const vertices = await bitbybit.occt.brepGraph.vertexEdgeMap({ shape: box });
      
    • Отображает части формы вверх: каким оболочкам принадлежит каждая грань, каким телам принадлежит каждая оболочка и в каких телах оказывается каждая грань.

      Каждый список содержит индексы родителей одного потомка, так что грань, разделяемая двумя телами, перечисляет оба.

      Parameters

      Returns Promise<BRepGraphContainmentResult>

      Индексы родителей для каждой грани и каждой оболочки

      const containment = await bitbybit.occt.brepGraph.containment({ shape: compound });
      
    • Описывает каждый контур: замкнут ли он, является ли он внешней границей своей грани, сколько у него коребер и различных ребер и какая грань им владеет.

      Parameters

      Returns Promise<BRepGraphWireInfoResult>

      По одной записи на контур

      const wires = await bitbybit.occt.brepGraph.wireInfo({ shape: plateWithHoles });
      
    • Выгружает всю структуру формы: каждое тело, оболочку, грань, ребро и вершину с уникальным id и частями непосредственно под ними.

      Самый тяжелый запрос здесь, для рассуждений обо всей топологии сразу, а не для ответа на один вопрос.

      Parameters

      Returns Promise<BRepGraphDumpResult>

      Тела, оболочки, грани, ребра и вершины с их ссылками

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

    validation

    • Проверяет структуру графа формы на проблемы, такие как висячие ссылки или несогласованные связи, и перечисляет каждую найденную проблему с ее серьезностью.

      Это проверяет учет, а не геометрию; shapes.shape.isValid и shapeFix.basicShapeRepair занимаются геометрической действительностью.

      Parameters

      Returns Promise<BRepGraphValidationResult>

      Корректен ли граф и найденные проблемы

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