Bitbybit Docs
    Preparing search index...

    Class OCCTEdge

    Ребра в OpenCascade: одиночные кривые между двумя вершинами, прямые, круговые, эллиптические или произвольной формы. Стройте их из точек и линий, как дуги, окружности и эллипсы или как касательные построения к окружностям; читайте их обратно как точки, длины, касательные и центры; и выбирайте ребра из любой формы. Ребра соединяются конец к концу в контуры, с которыми работает shapes.wire. Параметры вдоль ребра идут от 0 в его начале до 1 в его конце; углы в градусах.

    Index

    Constructors

    constraint

    • Рисует прямые линии из двух точек, которые лишь касаются окружности, по одной касательной из каждой точки.

      positionResult оставляет решения с одной стороны окружности или все, а circleRemainder добавляет кусок окружности между точками касания.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Касательные линии и участок окружности, если он запрошен

      const tangents = await bitbybit.occt.shapes.edge.constraintTanLinesFromTwoPtsToCircle({
      circle,
      point1: [20, 0, 0],
      point2: [-20, 0, 0],
      tolerance: 1e-7,
      positionResult: Bit.Inputs.OCCT.positionResultEnum.all,
      circleRemainder: Bit.Inputs.OCCT.circleInclusionEnum.none,
      });
    • Рисует две прямые линии из точки, которые лишь касаются окружности.

      positionResult оставляет решение с одной стороны окружности или оба, а circleRemainder добавляет кусок окружности между точками касания.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Касательные линии и участок окружности, если он запрошен

      const tangents = await bitbybit.occt.shapes.edge.constraintTanLinesFromPtToCircle({
      circle,
      point: [20, 0, 0],
      tolerance: 1e-7,
      positionResult: Bit.Inputs.OCCT.positionResultEnum.all,
      circleRemainder: Bit.Inputs.OCCT.circleInclusionEnum.none,
      });
    • Рисует прямые линии, которые лишь касаются двух окружностей сразу, как ремень вокруг двух шкивов.

      positionResult оставляет линии с одной стороны или все, а circleRemainders добавляет внешние или внутренние куски окружностей между точками касания, что завершает форму ремня.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Касательные линии и участки окружностей, если они запрошены

      const belt = await bitbybit.occt.shapes.edge.constraintTanLinesOnTwoCircles({
      circle1,
      circle2,
      tolerance: 1e-7,
      positionResult: Bit.Inputs.OCCT.positionResultEnum.all,
      circleRemainders: Bit.Inputs.OCCT.twoCircleInclusionEnum.outside,
      });
    • Рисует окружности заданного радиуса, которые лишь касаются двух окружностей сразу.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Касательные окружности

      const circles = await bitbybit.occt.shapes.edge.constraintTanCirclesOnTwoCircles({ circle1, circle2, tolerance: 1e-7, radius: 3 });
      
    • Рисует окружности заданного радиуса, которые проходят через точку и лишь касаются окружности.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Касательные окружности

      const circles = await bitbybit.occt.shapes.edge.constraintTanCirclesOnCircleAndPnt({ circle, point: [15, 0, 0], tolerance: 1e-7, radius: 3 });
      

    debug

    • Собирает диагностические сведения о кривой ребра: ее тип и степень, числа контрольных точек и узлов, является ли она рациональной, периодической или замкнутой, ее диапазон параметра и период, ее длину и ее конечные точки.

      Parameters

      Returns Promise<EdgeDebugInfo>

      Отчет о кривой ребра

      const info = await bitbybit.occt.shapes.edge.debugInfo({ shape: edge });
      

    extract

    • Находит точку на доле пути вдоль ребра: 0 - начало, 1 - конец, 0.5 - середина диапазона параметра.

      Доля следует собственному параметру кривой, который для свободной кривой не распределен равномерно по длине; для расстояния используйте pointOnEdgeAtLength.

      Parameters

      Returns Promise<Point3>

      Точка на ребре

      const middle = await bitbybit.occt.shapes.edge.pointOnEdgeAtParam({ shape: edge, param: 0.5 });
      
    • Находит точку на одной и той же доле вдоль каждого ребра в списке.

      Parameters

      Returns Promise<Point3[]>

      По одной точке на ребро, в том же порядке

      const middles = await bitbybit.occt.shapes.edge.pointsOnEdgesAtParam({ shapes: edges, param: 0.5 });
      
    • Превращает каждое ребро формы в ряд точек, следующий его кривой достаточно близко, чтобы ее нарисовать, по одному списку на ребро.

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

      Parameters

      Returns Promise<Point3[][]>

      По одному списку точек на ребро

      const polylines = await bitbybit.occt.shapes.edge.edgesToPoints({
      shape: wire,
      angularDeflection: 0.1,
      curvatureDeflection: 0.1,
      minimumOfPoints: 2,
      uTolerance: 1e-9,
      minimumLength: 1e-7,
      });
    • Находит направление, в котором идет ребро, на доле пути вдоль него, от 0 в начале до 1 в конце.

      Parameters

      Returns Promise<Vector3>

      Направление касательной

      const tangent = await bitbybit.occt.shapes.edge.tangentOnEdgeAtParam({ shape: arc, param: 0.5 });
      
    • Находит направление, в котором идет каждое ребро в списке, на одной и той же доле вдоль него.

      Parameters

      Returns Promise<Point3[]>

      По одной касательной на ребро, в том же порядке

      const tangents = await bitbybit.occt.shapes.edge.tangentsOnEdgesAtParam({ shapes: edges, param: 0.5 });
      
    • Находит точку на заданном расстоянии вдоль ребра от его начала, измеренном вдоль кривой в единицах модели.

      Parameters

      Returns Promise<Point3>

      Точка на ребре

      const point = await bitbybit.occt.shapes.edge.pointOnEdgeAtLength({ shape: edge, length: 2.5 });
      
    • Находит точку на одном и том же расстоянии от начала вдоль каждого ребра в списке.

      Parameters

      Returns Promise<Point3[]>

      По одной точке на ребро, в том же порядке

      const points = await bitbybit.occt.shapes.edge.pointsOnEdgesAtLength({ shapes: edges, length: 2.5 });
      
    • Находит направление, в котором идет ребро, на заданном расстоянии вдоль него от его начала, измеренном вдоль кривой.

      Parameters

      Returns Promise<Vector3>

      Направление касательной

      const tangent = await bitbybit.occt.shapes.edge.tangentOnEdgeAtLength({ shape: arc, length: 2.5 });
      
    • Находит направление, в котором идет каждое ребро в списке, на одном и том же расстоянии от его начала.

      Parameters

      Returns Promise<Vector3[]>

      По одной касательной на ребро, в том же порядке

      const tangents = await bitbybit.occt.shapes.edge.tangentsOnEdgesAtLength({ shapes: edges, length: 2.5 });
      
    • Читает точку, где ребро начинается, в собственном направлении ребра.

      Parameters

      Returns Promise<Point3>

      Начальная точка

      const start = await bitbybit.occt.shapes.edge.startPointOnEdge({ shape: edge });
      
    • Читает начальную точку каждого ребра в списке.

      Parameters

      Returns Promise<Point3[]>

      По одной начальной точке на ребро, в том же порядке

      const starts = await bitbybit.occt.shapes.edge.startPointsOnEdges({ shapes: edges });
      
    • Читает точку, где ребро заканчивается, в собственном направлении ребра.

      Parameters

      Returns Promise<Point3>

      Конечная точка

      const end = await bitbybit.occt.shapes.edge.endPointOnEdge({ shape: edge });
      
    • Читает конечную точку каждого ребра в списке.

      Parameters

      Returns Promise<Point3[]>

      По одной конечной точке на ребро, в том же порядке

      const ends = await bitbybit.occt.shapes.edge.endPointsOnEdges({ shapes: edges });
      
    • Расставляет точки вдоль ребра равными шагами его параметра, от начала до конца.

      nrOfDivisions шагов дают на одну точку больше; removeStartPoint и removeEndPoint отбрасывают концы. На свободной кривой равные шаги параметра - не равные расстояния; для них используйте divideEdgeByEqualDistanceToPoints.

      Parameters

      • inputs: DivideDto<TopoDSEdgePointer>

        Ребро, число делений и отбрасывать ли конечные точки

      Returns Promise<Point3[]>

      Точки вдоль ребра, по порядку

      const points = await bitbybit.occt.shapes.edge.divideEdgeByParamsToPoints({ shape: edge, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • Расставляет точки вдоль каждого ребра в списке равными шагами его параметра, по одному списку на ребро.

      Parameters

      Returns Promise<Point3[][]>

      По одному списку точек на ребро, в том же порядке

      const points = await bitbybit.occt.shapes.edge.divideEdgesByParamsToPoints({ shapes: edges, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • Расставляет точки вдоль ребра на равных расстояниях, измеренных вдоль его кривой, от начала до конца.

      nrOfDivisions шагов дают на одну точку больше; removeStartPoint и removeEndPoint отбрасывают концы.

      Parameters

      • inputs: DivideDto<TopoDSEdgePointer>

        Ребро, число делений и отбрасывать ли конечные точки

      Returns Promise<Point3[]>

      Точки вдоль ребра, по порядку

      const points = await bitbybit.occt.shapes.edge.divideEdgeByEqualDistanceToPoints({ shape: edge, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • Расставляет точки вдоль каждого ребра в списке на равных расстояниях вдоль его кривой, по одному списку на ребро.

      Parameters

      Returns Promise<Point3[][]>

      По одному списку точек на ребро, в том же порядке

      const points = await bitbybit.occt.shapes.edge.divideEdgesByEqualDistanceToPoints({ shapes: edges, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      

    from

    • Делает ребро из 2D-кривой, уложенной на поверхность: кривая живет в пространстве UV поверхности, а ребро следует ей по поверхности.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Ребро на поверхности

      const edge = await bitbybit.occt.shapes.edge.makeEdgeFromGeom2dCurveAndSurface({ curve: curve2d, surface });
      

    from base

    • Делает прямое ребро из объекта линии вида { start, end }.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Прямое ребро

      const edge = await bitbybit.occt.shapes.edge.fromBaseLine({ line: { start: [0, 0, 0], end: [10, 0, 0] } });
      
    • Делает по одному прямому ребру на объект линии вида { start, end }.

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      По одному ребру на линию, в том же порядке

      const edges = await bitbybit.occt.shapes.edge.fromBaseLines({ lines: [{ start: [0, 0, 0], end: [10, 0, 0] }, { start: [10, 0, 0], end: [10, 10, 0] }] });
      
    • Делает прямое ребро из отрезка, пары точек [start, end].

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Прямое ребро

      const edge = await bitbybit.occt.shapes.edge.fromBaseSegment({ segment: [[0, 0, 0], [10, 0, 0]] });
      
    • Делает по одному прямому ребру на отрезок, каждый - пара точек [start, end].

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      По одному ребру на сегмент, в том же порядке

      const edges = await bitbybit.occt.shapes.edge.fromBaseSegments({ segments: [[[0, 0, 0], [10, 0, 0]], [[10, 0, 0], [10, 10, 0]]] });
      
    • Соединяет каждую точку со следующей прямым ребром, так что список точек становится цепочкой ребер.

      Ребра возвращаются разрозненными; shapes.wire.createPolylineWire делает соединенный контур напрямую.

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      По одному ребру на каждую пару соседних точек

      const edges = await bitbybit.occt.shapes.edge.fromPoints({ points: [[0, 0, 0], [10, 0, 0], [10, 10, 0]] });
      
    • Делает по одному прямому ребру на отрезок объекта полилинии; замкнутая полилиния также получает ребро от своей последней точки обратно к первой.

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      По одному ребру на сегмент, по порядку

      const edges = await bitbybit.occt.shapes.edge.fromBasePolyline({ polyline: { points: [[0, 0, 0], [10, 0, 0], [10, 10, 0]], isClosed: true } });
      
    • Делает три прямых ребра треугольника, заданного тремя точками.

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      Его три ребра

      const edges = await bitbybit.occt.shapes.edge.fromBaseTriangle({ triangle: [[0, 0, 0], [10, 0, 0], [0, 10, 0]] });
      
    • Делает три прямых ребра каждого треугольника меша, все одним плоским списком.

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

      Parameters

      • inputs: MeshBaseDto

        Меш как список треугольников

      Returns Promise<TopoDSEdgePointer[]>

      Ребра всех треугольников

      const edges = await bitbybit.occt.shapes.edge.fromBaseMesh({ mesh: triangles });
      

    get

    • Выбирает одно ребро из формы по его позиции, считая с 0, в порядке обхода формы ядром.

      Форма должна быть ребром, контуром или чем-то построенным из них; индекс за последним ребром выбрасывает ошибку.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Ребро с этим индексом

      const first = await bitbybit.occt.shapes.edge.getEdge({ shape: wire, index: 0 });
      
    • Перечисляет каждое ребро формы в порядке обхода ядром, который не является порядком вдоль контура; для этого используйте getEdgesAlongWire.

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      Ребра, найденные в форме

      const edges = await bitbybit.occt.shapes.edge.getEdges({ shape: box });
      
    • Перечисляет ребра контура в порядке, в котором они следуют друг за другом вдоль него, каждое ориентировано в направлении контура.

      Одиночное ребро возвращается как список из одного элемента.

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      Его ребра по порядку вдоль контура

      const ordered = await bitbybit.occt.shapes.edge.getEdgesAlongWire({ shape: wire });
      
    • Перечисляет только круговые ребра контура, в порядке, в котором они следуют друг за другом вдоль него.

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      Его круговые ребра по порядку

      const arcs = await bitbybit.occt.shapes.edge.getCircularEdgesAlongWire({ shape: roundedRectangle });
      
    • Перечисляет только прямые ребра контура, в порядке, в котором они следуют друг за другом вдоль него.

      Parameters

      Returns Promise<TopoDSEdgePointer[]>

      Его прямые ребра по порядку

      const straights = await bitbybit.occt.shapes.edge.getLinearEdgesAlongWire({ shape: roundedRectangle });
      
    • Перечисляет конечные точки каждого ребра формы, с удаленными повторами, так что угол, где сходятся несколько ребер, появляется один раз.

      Точки идут без определенного порядка.

      Parameters

      • inputs: ShapeDto<TopoDSShapePointer>

        Форма, ребра которой нужно прочитать: контур, грань, оболочка или тело

      Returns Promise<Point3[]>

      Уникальные конечные точки ребер

      const corners = await bitbybit.occt.shapes.edge.getCornerPointsOfEdgesForShape({ shape: box });
      
    • Измеряет длину ребра вдоль его кривой, в единицах модели.

      Parameters

      Returns Promise<number>

      Длина

      const len = await bitbybit.occt.shapes.edge.getEdgeLength({ shape: edge });
      
    • Измеряет каждое ребро формы вдоль его кривой, в единицах модели.

      Parameters

      Returns Promise<number[]>

      По одной длине на ребро, в порядке, в котором их перечисляет getEdges

      const lengths = await bitbybit.occt.shapes.edge.getEdgeLengthsOfShape({ shape: box });
      
    • Измеряет каждое ребро в списке вдоль его кривой, в единицах модели.

      Parameters

      Returns Promise<number[]>

      По одной длине на ребро, в том же порядке

      const lengths = await bitbybit.occt.shapes.edge.getEdgesLengths({ shapes: edges });
      
    • Находит центр масс ребра, точку равновесия его кривой; для прямого ребра это его середина, для дуги - точка внутри кривой.

      Parameters

      Returns Promise<Point3>

      Точка центра масс

      const center = await bitbybit.occt.shapes.edge.getEdgeCenterOfMass({ shape: edge });
      
    • Находит центр масс каждого ребра в списке.

      Parameters

      Returns Promise<Point3[]>

      По одной точке на ребро, в том же порядке

      const centers = await bitbybit.occt.shapes.edge.getEdgesCentersOfMass({ shapes: edges });
      
    • Переворачивает направление ребра, так что его начало становится его концом.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Новое ребро, идущее в обратную сторону

      const back = await bitbybit.occt.shapes.edge.reversedEdge({ shape: edge });
      

    get circular edge

    • Находит центр окружности, на которой лежит круговое ребро.

      Ребро, не являющееся круговым, выбрасывает ошибку.

      Parameters

      Returns Promise<Point3>

      Точка центра

      const center = await bitbybit.occt.shapes.edge.getCircularEdgeCenterPoint({ shape: arc });
      
    • Читает радиус окружности, на которой лежит круговое ребро.

      Ребро, не являющееся круговым, выбрасывает ошибку.

      Parameters

      Returns Promise<number>

      Радиус в единицах модели

      const radius = await bitbybit.occt.shapes.edge.getCircularEdgeRadius({ shape: arc });
      
    • Читает нормаль плоскости, в которой лежит круговое ребро.

      Ребро, не являющееся круговым, выбрасывает ошибку.

      Parameters

      Returns Promise<Vector3>

      Единичная нормаль плоскости окружности

      const normal = await bitbybit.occt.shapes.edge.getCircularEdgePlaneDirection({ shape: arc });
      

    is

    • Сообщает, является ли ребро прямой линией.

      Parameters

      Returns Promise<boolean>

      true, если ребро прямое

      const straight = await bitbybit.occt.shapes.edge.isEdgeLinear({ shape: edge });
      
    • Сообщает, лежит ли ребро на окружности, будь то полная окружность или дуга.

      Parameters

      Returns Promise<boolean>

      true, если ребро круговое

      const round = await bitbybit.occt.shapes.edge.isEdgeCircular({ shape: edge });
      

    primitives

    • Делает прямое ребро между двумя точками, самое простое ребро из существующих.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Прямое ребро

      const edge = await bitbybit.occt.shapes.edge.line({ start: [0, 0, 0], end: [10, 0, 0] });
      
    • Делает дугу окружности, которая начинается в первой точке, проходит через среднюю и заканчивается в последней.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Ребро дуги

      const arc = await bitbybit.occt.shapes.edge.arcThroughThreePoints({ start: [0, 0, 0], middle: [5, 5, 0], end: [10, 0, 0] });
      
    • Делает дугу окружности от одной точки к другой, которая выходит из первой точки в заданном направлении.

      Касательная задает плоскость и радиус дуги.

      Parameters

      • inputs: ArcEdgeTwoPointsTangentDto

        Начальная точка, направление касательной в ней и конечная точка

      Returns Promise<TopoDSEdgePointer>

      Ребро дуги

      const arc = await bitbybit.occt.shapes.edge.arcThroughTwoPointsAndTangent({ start: [0, 0, 0], tangentVec: [0, 1, 0], end: [10, 0, 0] });
      
    • Вырезает дугу из ребра окружности между двумя точками на нем.

      sense выбирает, в какую сторону по окружности идет дуга от первой точки ко второй.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Ребро дуги

      const arc = await bitbybit.occt.shapes.edge.arcFromCircleAndTwoPoints({ circle, start: [10, 0, 0], end: [0, 0, 10], sense: true });
      
    • Вырезает дугу из ребра окружности между двумя углами, в градусах, отсчитываемыми по окружности от ее собственного начала.

      sense выбирает, в какую сторону по окружности идет дуга от первого угла ко второму.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Ребро дуги

      const quarter = await bitbybit.occt.shapes.edge.arcFromCircleAndTwoAngles({ circle, alphaAngle1: 0, alphaAngle2: 90, sense: true });
      
    • Вырезает дугу из ребра окружности, которая начинается в точке на окружности и охватывает заданный угол, в градусах.

      sense выбирает, в какую сторону по окружности идет дуга.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Ребро дуги

      const arc = await bitbybit.occt.shapes.edge.arcFromCirclePointAndAngle({ circle, point: [10, 0, 0], alphaAngle: 45, sense: true });
      
    • Делает полную окружность как одно замкнутое ребро, лежащее в плоскости, нормаль которой - direction.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Ребро окружности

      const circle = await bitbybit.occt.shapes.edge.createCircleEdge({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Делает полный эллипс как одно замкнутое ребро, лежащее в плоскости, нормаль которой - direction.

      radiusMajor не должен быть меньше radiusMinor, иначе ядро отвергает эллипс.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Ребро эллипса

      const ellipse = await bitbybit.occt.shapes.edge.createEllipseEdge({ center: [0, 0, 0], direction: [0, 1, 0], radiusMinor: 3, radiusMajor: 6 });
      

    rebuild

    • Перестраивает кривую ребра как B-spline заданной степени, в пределах допуска.

      Понижение степени упрощает кривую, повышение дает последующим операциям больше свободы; в любом случае новая кривая остается в пределах tolerance от старой.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Новое ребро с перестроенной кривой

      const simpler = await bitbybit.occt.shapes.edge.rebuildEdgeDegree({ shape: edge, degree: 3, tolerance: 1e-3 });
      

    seam

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

      Геометрия не меняется; меняется только то, где ребро считается начинающимся.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Новое ребро, начинающееся в шве

      const rotated = await bitbybit.occt.shapes.edge.moveEdgeSeamByParameter({ shape: circle, parameter: 1.57 });
      
    • Сдвигает шов замкнутого периодического ребра, точку, где оно начинается и заканчивается, на расстояние вдоль кривой от его текущего начала.

      Геометрия не меняется; меняется только то, где ребро считается начинающимся.

      Parameters

      Returns Promise<TopoDSEdgePointer>

      Новое ребро, начинающееся в шве

      const rotated = await bitbybit.occt.shapes.edge.moveEdgeSeamByLength({ shape: circle, length: 2.5 });
      

    shapes

    • Объединяет грани, лежащие на одной поверхности, и ребра на одной кривой, что убирает внутренние швы, которые оставляют булева операция или слияние.

      Это shapes.shape.unifySameDomain с объединением и ребер, и граней, и B-spline, оставленными как есть.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Форма без внутренних швов

      const clean = await bitbybit.occt.shapes.edge.removeInternalEdges({ shape: fused });