Bitbybit Docs
    Preparing search index...

    Class OCCTWire

    Контуры в OpenCascade: цепочки ребер, соединенных конец к концу, открытые как путь или замкнутые как очертание. Стройте их из точек и кривых (полилинии, B-spline, кривые Безье, интерполяции, винтовые линии, спирали), как готовые плоские очертания (окружности, прямоугольники, звезды, профили балок, текст), лежащие на плоскости основания, если direction не задает иное, или соединяя и разделяя существующие ребра и контуры; читайте их обратно как точки, касательные, длины и центры; отображайте их на грани или проецируйте на формы. Параметры вдоль контура идут от 0 в его начале до 1 в его конце и следуют собственному параметру каждого ребра, а не расстоянию. Замкнутый контур - это то, что shapes.face заполняет, чтобы получить грань.

    Index

    Constructors

    beam profiles

    build

    debug

    edit

    extract

    extract from wires

    from base

    get

    multiple

    place

    primitives

    rebuild

    seam

    via points

    via wires

    Constructors

    beam profiles

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

      width - ширина полки, height - полная высота, webThickness и flangeThickness - толщины стенок; alignment говорит, какая точка бокса профиля стоит на center, rotation поворачивает его в его плоскости, в градусах. Он лежит на земле, готовый к выдавливанию.

      Parameters

      • inputs: IBeamProfileDto

        Размер профиля, две толщины, выравнивание, поворот, центр и нормаль плоскости

      Returns Promise<TopoDSWirePointer>

      Контур профиля двутавра

      const profile = await bitbybit.occt.shapes.wire.createIBeamProfileWire({
      width: 10,
      height: 20,
      webThickness: 2,
      flangeThickness: 3,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • Делает замкнутое очертание сечения H-образной балки: две вертикальные полки, соединенные горизонтальной стенкой, двутавр на боку.

      width - полная ширина, height - высота полки, webThickness и flangeThickness - толщины стенок; alignment говорит, какая точка бокса профиля стоит на center, rotation поворачивает его в его плоскости, в градусах.

      Parameters

      • inputs: HBeamProfileDto

        Размер профиля, две толщины, выравнивание, поворот, центр и нормаль плоскости

      Returns Promise<TopoDSWirePointer>

      Контур профиля H-балки

      const profile = await bitbybit.occt.shapes.wire.createHBeamProfileWire({
      width: 20,
      height: 10,
      webThickness: 2,
      flangeThickness: 3,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • Делает замкнутое очертание сечения тавра: горизонтальная полка с вертикальной стенкой, свисающей из ее середины.

      width - ширина полки, height - полная высота, webThickness и flangeThickness - толщины стенок; alignment говорит, какая точка бокса профиля стоит на center, rotation поворачивает его в его плоскости, в градусах. Он лежит на земле.

      Parameters

      • inputs: TBeamProfileDto

        Размер профиля, две толщины, выравнивание, поворот, центр и нормаль плоскости

      Returns Promise<TopoDSWirePointer>

      Контур профиля тавра

      const profile = await bitbybit.occt.shapes.wire.createTBeamProfileWire({
      width: 10,
      height: 12,
      webThickness: 2,
      flangeThickness: 2,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • Делает замкнутое очертание сечения швеллера, канала: стенка с двумя полками шириной flangeWidth, поднимающимися от ее концов.

      width и height - полный размер, webThickness и flangeThickness - толщины стенок; alignment говорит, какая точка бокса профиля стоит на center, rotation поворачивает его в его плоскости, в градусах. Он лежит на земле.

      Parameters

      • inputs: UBeamProfileDto

        Размер профиля, толщины, ширина полки, выравнивание, поворот, центр и нормаль плоскости

      Returns Promise<TopoDSWirePointer>

      Контур профиля швеллера

      const profile = await bitbybit.occt.shapes.wire.createUBeamProfileWire({
      width: 10,
      height: 6,
      webThickness: 1,
      flangeThickness: 1,
      flangeWidth: 3,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });

    build

    • Соединяет ребра и контуры, касающиеся друг друга конец к концу, в один контур.

      Части должны соединяться; набор с разрывом или отдельной частью выбрасывает ошибку. Формы других типов в списке игнорируются.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Соединенный контур

      const outline = await bitbybit.occt.shapes.wire.combineEdgesAndWiresIntoAWire({ shapes: [arc, line1, line2] });
      
    • Оборачивает одиночное ребро в контур, чтобы его можно было передать туда, где ожидается контур.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур, содержащий это ребро

      const wire = await bitbybit.occt.shapes.wire.createWireFromEdge({ shape: edge });
      
    • Расширяет контур дополнительными ребрами и контурами, касающимися его конец к концу.

      Части должны соединяться с контуром или друг с другом; разрыв выбрасывает ошибку. Формы других типов в списке игнорируются.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Расширенный контур

      const longer = await bitbybit.occt.shapes.wire.addEdgesAndWiresToWire({ shape: wire, shapes: [nextEdge, nextWire] });
      

    debug

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

      Пустой или null контур дает отчет, помеченный недействительным, с нулевыми счетчиками.

      Parameters

      Returns Promise<WireDebugInfo>

      Отчет с числом ребер, флагом замкнутости, длиной и по одной записи на ребро

      const info = await bitbybit.occt.shapes.wire.debugInfo({ shape: wire });
      console.log(info.nbEdges, info.closed, info.totalLength);

    edit

    • Замыкает незамкнутый контур прямым ребром от его конечной точки обратно к начальной.

      Контур, концы которого уже сходятся, возвращается как есть.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Замкнутый контур

      const closedWire = await bitbybit.occt.shapes.wire.closeOpenWire({ shape: openWire });
      

    extract

    • Режет контур на части в заданных точках.

      Каждая точка перед разрезанием перемещается в ближайшее место на контуре, так что она не обязана лежать точно на нем; повторяющиеся точки игнорируются. Части возвращаются в порядке вдоль контура, от его начала к концу.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Части контура, по порядку

      const pieces = await bitbybit.occt.shapes.wire.splitOnPoints({ shape: wire, points: [[3, 0, 0], [7, 0, 0]] });
      
    • Превращает каждый контур формы в ряд точек, следующий его кривым достаточно близко, чтобы его нарисовать, по одному списку на контур.

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

      Parameters

      Returns Promise<Point3[][]>

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

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

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

      Parameters

      • inputs: DivideDto<TopoDSWirePointer>

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

      Returns Promise<Point3[]>

      Точки вдоль контура, по порядку

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

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

      Parameters

      • inputs: DivideDto<TopoDSWirePointer>

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

      Returns Promise<Point3[]>

      Точки вдоль контура, по порядку

      const points = await bitbybit.occt.shapes.wire.divideWireByEqualDistanceToPoints({ shape: wire, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • Находит точку на доле пути вдоль контура: 0 - начало, 1 - конец.

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

      Parameters

      Returns Promise<Point3>

      Точка на контуре

      const point = await bitbybit.occt.shapes.wire.pointOnWireAtParam({ shape: wire, param: 0.25 });
      
    • Находит точку на заданном расстоянии вдоль контура от его начала, измеренном вдоль его кривых в единицах модели.

      Parameters

      Returns Promise<Point3>

      Точка на контуре

      const point = await bitbybit.occt.shapes.wire.pointOnWireAtLength({ shape: wire, length: 2.5 });
      
    • Находит точки на нескольких расстояниях вдоль контура от его начала, измеренных вдоль его кривых в единицах модели.

      Parameters

      Returns Promise<Point3[]>

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

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtLengths({ shape: wire, lengths: [1, 2.5, 4] });
      
    • Расставляет точки вдоль контура через каждые length единиц модели от его начала, столько, сколько уместится.

      includeFirst сохраняет точку в начале, includeLast добавляет конечную точку независимо от шага, а tryNext запрашивает еще одну точку на шаг дальше последней уместившейся.

      Parameters

      Returns Promise<Point3[]>

      Точки вдоль контура, по порядку

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtEqualLength({ shape: wire, length: 2, tryNext: false, includeFirst: true, includeLast: false });
      
    • Расставляет точки вдоль контура по повторяющемуся шаблону промежутков, например 1, 3, 1, 3, пока контур не закончится.

      lengths - шаблон промежутков в единицах модели, повторяемый от начала; includeFirst сохраняет начальную точку, includeLast добавляет конечную точку, а tryNext запрашивает еще одну точку на следующем промежутке за последним.

      Parameters

      Returns Promise<Point3[]>

      Точки вдоль контура, по порядку

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtPatternOfLengths({ shape: wire, lengths: [1, 3], tryNext: false, includeFirst: true, includeLast: false });
      
    • Находит направление, в котором идет контур, на доле пути вдоль него, от 0 в начале до 1 в конце.

      Доля следует параметрам ребер, а не расстоянию.

      Parameters

      Returns Promise<Vector3>

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

      const tangent = await bitbybit.occt.shapes.wire.tangentOnWireAtParam({ shape: wire, param: 0.5 });
      
    • Находит направление, в котором идет контур, на заданном расстоянии от его начала, измеренном вдоль его кривых в единицах модели.

      Parameters

      Returns Promise<Vector3>

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

      const tangent = await bitbybit.occt.shapes.wire.tangentOnWireAtLength({ shape: wire, length: 2.5 });
      
    • Вычисляет первую, вторую и третью производные кривой контура на заданном расстоянии от его начала.

      Первая производная - касательная с ее скоростью, вторая говорит, как кривая изгибается, третья - как этот изгиб меняется; все по параметру кривой. Расстояние измеряется вдоль кривых в единицах модели.

      Parameters

      Returns Promise<[Vector3, Vector3, Vector3]>

      Три вектора производных, с первой по третью

      const [first, second, third] = await bitbybit.occt.shapes.wire.derivativesOnWireAtLength({ shape: wire, length: 2.5 });
      
    • Вычисляет первую, вторую и третью производные кривой контура на доле пути вдоль него, от 0 в начале до 1 в конце.

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

      Parameters

      Returns Promise<[Vector3, Vector3, Vector3]>

      Три вектора производных, с первой по третью

      const [first, second, third] = await bitbybit.occt.shapes.wire.derivativesOnWireAtParam({ shape: wire, param: 0.5 });
      
    • Читает точку, где контур начинается, в собственном направлении контура.

      Parameters

      Returns Promise<Point3>

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

      const start = await bitbybit.occt.shapes.wire.startPointOnWire({ shape: wire });
      
    • Находит точку на середине диапазона параметра контура.

      Параметр следует собственным кривым ребер, а не расстоянию, так что на контуре из неравных ребер это не всегда середина по длине; pointOnWireAtLength с половиной getWireLength дает ее.

      Parameters

      Returns Promise<Point3>

      Точка при параметре 0.5

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

      Parameters

      Returns Promise<Point3>

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

      const end = await bitbybit.occt.shapes.wire.endPointOnWire({ shape: wire });
      

    extract from wires

    • Выполняет divideWireByParamsToPoints на нескольких контурах с одними и теми же настройками.

      Parameters

      Returns Promise<Point3[][]>

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

      const lists = await bitbybit.occt.shapes.wire.divideWiresByParamsToPoints({ shapes: wires, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • Выполняет divideWireByEqualDistanceToPoints на нескольких контурах с одними и теми же настройками.

      Parameters

      Returns Promise<Point3[][]>

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

      const lists = await bitbybit.occt.shapes.wire.divideWiresByEqualDistanceToPoints({ shapes: wires, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      

    from base

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      Прямой контур

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

      Parameters

      Returns Promise<TopoDSWirePointer[]>

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

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      Прямой контур

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

      Parameters

      Returns Promise<TopoDSWirePointer[]>

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

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

      Меньше двух точек выбрасывают ошибку. Когда последняя точка повторяет первую, повтор отбрасывается, и контур замыкается обратно на первую точку; иначе контур остается незамкнутым. Для замкнутого очертания без повторения точки используйте createPolygonWire.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур через точки

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      Замкнутый контур

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

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

      Parameters

      • inputs: MeshBaseDto

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

      Returns Promise<TopoDSWirePointer[]>

      По одному контуру на каждый треугольник, который удалось построить

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

    get

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

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур с этим индексом

      const outer = await bitbybit.occt.shapes.wire.getWire({ shape: face, index: 0 });
      
    • Перечисляет каждый контур формы в порядке обхода ядром.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Контуры, найденные в форме

      const wires = await bitbybit.occt.shapes.wire.getWires({ shape: face });
      
    • Находит центр масс контура, точку равновесия его кривых; для окружности это ее центр, вне самого контура.

      Parameters

      Returns Promise<Point3>

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

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

      Parameters

      Returns Promise<Point3[]>

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

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

      Ребра сохраняют свой порядок и флаги направления; контур в целом помечается обращенным, что читает большинство операций. reversedWireFromReversedEdges вместо этого перестраивает контур ребро за ребром.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Новый контур, идущий в обратную сторону

      const back = await bitbybit.occt.shapes.wire.reversedWire({ shape: wire });
      
    • Переворачивает направление контура, обращая каждое ребро и соединяя их снова в обратном порядке.

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      Новый контур, идущий в обратную сторону

      const back = await bitbybit.occt.shapes.wire.reversedWireFromReversedEdges({ shape: wire });
      
    • Сообщает, замкнут ли контур, то есть совпадают ли его начальная и конечная точки в пределах малого допуска.

      Parameters

      Returns Promise<boolean>

      true, если концы сходятся

      const wireIsClosed = await bitbybit.occt.shapes.wire.isWireClosed({ shape: wire });
      
    • Измеряет длину контура вдоль его кривых, в единицах модели.

      Parameters

      Returns Promise<number>

      Длина

      const len = await bitbybit.occt.shapes.wire.getWireLength({ shape: wire });
      
    • Измеряет длину каждого контура в списке вдоль его кривых, в единицах модели.

      Parameters

      Returns Promise<number[]>

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

      const lengths = await bitbybit.occt.shapes.wire.getWiresLengths({ shapes: wires });
      

    multiple

    • Делает по одному замкнутому многоугольному контуру на список точек, как createPolygonWire.

      При returnCompound равном true контуры упаковываются в одну форму-компаунд вместо списка.

      Parameters

      • inputs: PolygonsDto

        Многоугольники и упаковывать ли их в компаунд

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Контуры по порядку или один компаунд, содержащий их

      const outlines = await bitbybit.occt.shapes.wire.createPolygons({
      polygons: [{ points: [[0, 0, 0], [5, 0, 0], [5, 0, 5]] }, { points: [[10, 0, 0], [15, 0, 0], [15, 0, 5]] }],
      returnCompound: false,
      });
    • Делает по одному прямому контуру из одного ребра на определение линии.

      При returnCompound равном true контуры упаковываются в одну форму-компаунд вместо списка.

      Parameters

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Контуры по порядку или один компаунд, содержащий их

      const lines = await bitbybit.occt.shapes.wire.createLines({
      lines: [{ start: [0, 0, 0], end: [10, 0, 0] }, { start: [0, 0, 5], end: [10, 0, 5] }],
      returnCompound: false,
      });
    • Делает по одному незамкнутому контуру-полилинии на список точек, как createPolylineWire.

      При returnCompound равном true контуры упаковываются в одну форму-компаунд вместо списка.

      Parameters

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Контуры по порядку или один компаунд, содержащий их

      const paths = await bitbybit.occt.shapes.wire.createPolylines({
      polylines: [{ points: [[0, 0, 0], [5, 0, 0], [5, 0, 5]] }, { points: [[10, 0, 0], [15, 0, 0]] }],
      returnCompound: false,
      });
    • Делает по одному контуру Безье на определение, как createBezier.

      При returnCompound равном true контуры упаковываются в одну форму-компаунд вместо списка.

      Parameters

      • inputs: BezierWiresDto

        Определения кривых Безье и упаковывать ли их в компаунд

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Контуры по порядку или один компаунд, содержащий их

      const curves = await bitbybit.occt.shapes.wire.createBezierWires({
      bezierWires: [{ points: [[0, 0, 0], [5, 0, 10], [10, 0, 0]], closed: false }, { points: [[0, 0, 5], [5, 0, 15], [10, 0, 5]], closed: false }],
      returnCompound: false,
      });
    • Делает по одному интерполированному контуру B-spline на определение, как interpolatePoints.

      При returnCompound равном true контуры упаковываются в одну форму-компаунд вместо списка.

      Parameters

      • inputs: InterpolateWiresDto

        Определения интерполяций и упаковывать ли их в компаунд

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Контуры по порядку или один компаунд, содержащий их

      const curves = await bitbybit.occt.shapes.wire.interpolateWires({
      interpolations: [{ points: [[0, 0, 0], [5, 0, 5], [10, 0, 0]], periodic: false, tolerance: 1e-7 }, { points: [[0, 0, 5], [5, 0, 10], [10, 0, 5]], periodic: false, tolerance: 1e-7 }],
      returnCompound: false,
      });
    • Делает по одному аппроксимирующему контуру B-spline на определение, как createBSpline.

      При returnCompound равном true контуры упаковываются в одну форму-компаунд вместо списка.

      Parameters

      • inputs: BSplinesDto

        Определения B-spline и упаковывать ли их в компаунд

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Контуры по порядку или один компаунд, содержащий их

      const curves = await bitbybit.occt.shapes.wire.createBSplines({
      bSplines: [{ points: [[0, 0, 0], [5, 0, 5], [10, 0, 0]], closed: false }, { points: [[0, 0, 5], [5, 0, 10], [10, 0, 5]], closed: false }],
      returnCompound: false,
      });

    place

    • Отображает плоский контур, нарисованный на плоскости земли, на поверхность грани, как если бы рисунок был обернут вокруг нее.

      Координата Z контура читается как U, а координата X как V, в настоящих значениях UV грани, которые сообщают shapes.face.getUMinBound и его собратья; рисунок, умещающийся в этих границах, попадает на грань.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур, лежащий на поверхности грани

      const onSurface = await bitbybit.occt.shapes.wire.placeWireOnFace({ wire: flatWire, face: cylinderFace });
      
    • Отображает несколько плоских контуров, нарисованных на плоскости земли, на поверхность грани, как placeWireOnFace для одного.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Контуры, лежащие на поверхности грани, в том же порядке

      const onSurface = await bitbybit.occt.shapes.wire.placeWiresOnFace({ wires: flatWires, face: cylinderFace });
      
    • Проецирует контур на форму вдоль направления, как отбрасывая его тень на поверхность.

      Результат - компаунд кривых там, где проекция встречает грани формы, что может быть и на ее ближней, и на дальней стороне. Вырежьте им грань через shapes.face.createFaceFromWireOnFace или используйте как путь.

      Parameters

      Returns Promise<TopoDSCompoundPointer>

      Компаунд спроецированных кривых

      const shadow = await bitbybit.occt.shapes.wire.project({ wire: circle, shape: sphere, direction: [0, -1, 0] });
      
    • Проецирует несколько контуров на форму вдоль одного направления, как project для одного.

      Parameters

      Returns Promise<TopoDSCompoundPointer[]>

      По одному компаунду спроецированных кривых на контур, в том же порядке

      const shadows = await bitbybit.occt.shapes.wire.projectWires({ wires: [circle, square], shape: sphere, direction: [0, -1, 0] });
      

    primitives

    • Делает полную окружность как замкнутый контур из одного ребра, лежащий в плоскости, нормаль которой - direction; значение по умолчанию [0, 1, 0] кладет ее плоско на землю.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур окружности

      const circle = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Заполняет прямоугольник на плоскости земли сеткой замкнутых шестиугольных контуров, центрированной на начале координат.

      Шестиугольники масштабируются так, чтобы nrHexagonsInWidth умещались по width, а nrHexagonsInHeight по height. Шаблоны масштаба, скругления и включения читаются шестиугольник за шестиугольником и повторяются; флаги растяжения вытягивают внешние ряды за края, чтобы покрыть прямоугольник.

      Parameters

      • inputs: HexagonsInGridDto

        Размер прямоугольника, число шестиугольников, флаги расширения и необязательные шаблоны

      Returns Promise<TopoDSWirePointer[]>

      По одному контуру на шестиугольник, ряд за рядом

      const cells = await bitbybit.occt.shapes.wire.hexagonsInGrid({
      width: 20,
      height: 10,
      nrHexagonsInWidth: 8,
      nrHexagonsInHeight: 4,
      flatTop: false,
      scalePatternWidth: [0.9],
      scalePatternHeight: [0.9],
      });
    • Делает замкнутый квадратный контур, центрированный на center.

      direction - нормаль его плоскости: значение по умолчанию [0, 1, 0] кладет его плоско на землю.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур квадрата

      const square = await bitbybit.occt.shapes.wire.createSquareWire({ size: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Делает замкнутый звездообразный контур с numRays лучами.

      Лучи достигают outerRadius, а впадины между ними innerRadius; offsetOuterEdges поднимает вершины лучей из плоскости на это расстояние, создавая 3D-звезду, а half оставляет первую половину лучей как незамкнутый контур. Он лежит плоско на земле, если direction не говорит иначе.

      Parameters

      • inputs: Bit.Inputs.OCCT.StarDto

        Два радиуса, число лучей, центр, нормаль плоскости и параметры

      Returns Promise<TopoDSWirePointer>

      Контур звезды

      const star = await bitbybit.occt.shapes.wire.createStarWire({ outerRadius: 5, innerRadius: 2, numRays: 5, center: [0, 0, 0], direction: [0, 1, 0], offsetOuterEdges: 0, half: false });
      
    • Делает замкнутый контур в форме стилизованной елки: nrSkirts слоев ветвей, сужающихся от outerDist до innerDist от линии ствола, на стволе trunkHeight и trunkWidth.

      В отличие от других плоских форм здесь она стоит вертикально в плоскости XY, верхушкой вдоль Y; direction - направление от ствола к верхушке, rotation поворачивает ее вокруг этой оси, в градусах.

      Parameters

      • inputs: ChristmasTreeDto

        Пропорции елки, размер ствола, параметры, начало координат и направление от ствола к верхушке

      Returns Promise<TopoDSWirePointer>

      Контур елки

      const tree = await bitbybit.occt.shapes.wire.createChristmasTreeWire({
      height: 10,
      innerDist: 1.5,
      outerDist: 4,
      nrSkirts: 4,
      trunkHeight: 1.5,
      trunkWidth: 1,
      half: false,
      rotation: 0,
      origin: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • Делает замкнутый контур правильного многоугольника с nrCorners углами, все на окружности радиуса radius.

      direction - нормаль плоскости; значение по умолчанию [0, 1, 0] кладет его плоско на землю.

      Parameters

      • inputs: NGonWireDto

        Число углов, радиус, центр и нормаль плоскости

      Returns Promise<TopoDSWirePointer>

      Контур многоугольника

      const hexagon = await bitbybit.occt.shapes.wire.createNGonWire({ nrCorners: 6, radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Делает замкнутый контур параллелограмма: прямоугольник width на height, стороны которого наклонены на angle градусов.

      При aroundCenter равном true форма центрируется на center; иначе она начинается там и продолжается в положительных направлениях. direction - нормаль плоскости; значение по умолчанию [0, 1, 0] кладет ее плоско на землю.

      Parameters

      • inputs: ParallelogramDto

        Ширина, высота, угол наклона, центрировать ли его, центр и нормаль плоскости

      Returns Promise<TopoDSWirePointer>

      Контур параллелограмма

      const shape = await bitbybit.occt.shapes.wire.createParallelogramWire({ width: 10, height: 5, angle: 30, aroundCenter: true, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Делает замкнутый контур в форме сердца из двух гладких половин, который примерно вписывается в квадрат sizeApprox.

      rotation поворачивает его в его плоскости, в градусах. direction - нормаль плоскости; значение по умолчанию [0, 1, 0] кладет его плоско на землю.

      Parameters

      • inputs: Heart2DDto

        Приблизительный размер, поворот, центр и нормаль плоскости

      Returns Promise<TopoDSWirePointer>

      Контур сердца

      const heart = await bitbybit.occt.shapes.wire.createHeartWire({ sizeApprox: 10, rotation: 0, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Делает замкнутый прямоугольный контур, центрированный на center.

      На плоскости земли width идет вдоль X, а length вдоль Z; direction - нормаль плоскости, и значение по умолчанию [0, 1, 0] оставляет контур плоско на земле.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур прямоугольника

      const rectangle = await bitbybit.occt.shapes.wire.createRectangleWire({ width: 20, length: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Делает замкнутый L-образный контур: две прямоугольные полки, соединенные в углу.

      У первой полки widthFirst и lengthFirst, у второй widthSecond и lengthSecond; align ставит угол снаружи, внутри или посередине полок, а rotation поворачивает форму в ее плоскости, в градусах. Он лежит плоско на земле, если direction не говорит иначе.

      Parameters

      • inputs: LPolygonDto

        Размеры двух полок, выравнивание, поворот, центр и нормаль плоскости

      Returns Promise<TopoDSWirePointer>

      L-образный контур

      const outline = await bitbybit.occt.shapes.wire.createLPolygonWire({
      widthFirst: 2,
      lengthFirst: 10,
      widthSecond: 2,
      lengthSecond: 6,
      align: Bit.Inputs.OCCT.directionEnum.outside,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • Делает полный эллипс как замкнутый контур из одного ребра, лежащий в плоскости, нормаль которой - direction.

      radiusMajor не должен быть меньше radiusMinor, иначе ядро отвергает эллипс; направление по умолчанию [0, 1, 0] кладет его плоско на землю.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Контур эллипса

      const ellipse = await bitbybit.occt.shapes.wire.createEllipseWire({ center: [0, 0, 0], direction: [0, 1, 0], radiusMinor: 3, radiusMajor: 6 });
      
    • Делает контур спирали, виток постоянного радиуса radius, который поднимается на pitch единиц модели за оборот, пока не достигнет height.

      Он начинается рядом с center и поднимается вдоль direction; clockwise обращает закрутку. Спираль аппроксимируется гладкой кривой в пределах tolerance. Радиус, шаг или высота 0 или меньше дают null контур.

      Parameters

      • inputs: HelixWireDto

        Радиус, шаг, высота, центр основания, направление оси, направление намотки и допуск

      Returns Promise<TopoDSWirePointer>

      Контур винтовой линии

      const spring = await bitbybit.occt.shapes.wire.createHelixWire({ radius: 2, pitch: 1, height: 10, center: [0, 0, 0], direction: [0, 1, 0], clockwise: false, tolerance: 1e-4 });
      
    • Делает контур спирали, как createHelixWire, но заданный числом numTurns вместо высоты: виток поднимается на pitch единиц модели за оборот, numTurns раз.

      Parameters

      • inputs: HelixWireByTurnsDto

        Радиус, шаг, число витков, центр основания, направление оси, направление намотки и допуск

      Returns Promise<TopoDSWirePointer>

      Контур винтовой линии

      const spring = await bitbybit.occt.shapes.wire.createHelixWireByTurns({ radius: 2, pitch: 1, numTurns: 5, center: [0, 0, 0], direction: [0, 1, 0], clockwise: false, tolerance: 1e-4 });
      
    • Делает контур конической спирали, радиус которой равномерно меняется от startRadius в основании до endRadius на вершине, поднимаясь на pitch единиц модели за оборот, пока не достигнет height.

      Она начинается рядом с center и поднимается вдоль direction; clockwise обращает закрутку. Кривая аппроксимируется в пределах tolerance.

      Parameters

      • inputs: TaperedHelixWireDto

        Начальный и конечный радиусы, шаг, высота, центр основания, направление оси, направление намотки и допуск

      Returns Promise<TopoDSWirePointer>

      Контур конической винтовой линии

      const cone = await bitbybit.occt.shapes.wire.createTaperedHelixWire({ startRadius: 3, endRadius: 0.5, pitch: 1, height: 8, center: [0, 0, 0], direction: [0, 1, 0], clockwise: false, tolerance: 1e-4 });
      
    • Делает контур плоской спирали в плоскости, нормаль которой - direction: numTurns витков, радиус которых равномерно растет от startRadius до endRadius.

      Направление по умолчанию [0, 1, 0] кладет ее плоско на землю; clockwise обращает закрутку, а кривая аппроксимируется в пределах tolerance.

      Parameters

      • inputs: FlatSpiralWireDto

        Начальный и конечный радиусы, число витков, центр, нормаль плоскости, направление намотки и допуск

      Returns Promise<TopoDSWirePointer>

      Контур спирали

      const spiral = await bitbybit.occt.shapes.wire.createFlatSpiralWire({ startRadius: 0.5, endRadius: 5, numTurns: 4, center: [0, 0, 0], direction: [0, 1, 0], clockwise: false, tolerance: 1e-4 });
      
    • Пишет текст штриховыми контурами на плоскости земли однолинейным шрифтом Hershey simplex, по одному незамкнутому контуру-полилинии на штрих пера.

      height - высота заглавной буквы в единицах модели, lineSpacing и letterSpacing - ее кратные, align выравнивает строки разной длины, а centerOnOrigin перемещает блок в начало координат.

      Parameters

      • inputs: TextWiresDto

        Текст, его размер и интервалы, выравнивание и параметры размещения

      Returns Promise<TopoDSWirePointer[]>

      По одному контуру на штрих, в порядке написания

      const strokes = await bitbybit.occt.shapes.wire.textWires({
      text: "Hello",
      height: 5,
      lineSpacing: 1.5,
      letterSpacing: 0,
      align: Bit.Inputs.Base.horizontalAlignEnum.left,
      centerOnOrigin: true,
      });
    • Пишет текст штриховыми контурами, как textWires, и упаковывает их в компаунды, с размером блока рядом.

      Результат несет compound со всем текстом, characters с одним компаундом на символ в порядке письма, width и height как протяженность блока вдоль X и вдоль Z, а также center как середину блока.

      Parameters

      • inputs: TextWiresDto

        Текст, его размер и интервалы, выравнивание и параметры размещения

      Returns Promise<TextWiresDataDto<TopoDSCompoundPointer>>

      Компаунд текста, компаунды символов и измеренный размер

      const text = await bitbybit.occt.shapes.wire.textWiresWithData({
      text: "Hi",
      height: 5,
      lineSpacing: 1.5,
      letterSpacing: 0,
      align: Bit.Inputs.Base.horizontalAlignEnum.left,
      centerOnOrigin: false,
      });
      console.log(text.width, text.height, text.characters.length);

    rebuild

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

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      Новый контур с перестроенными ребрами

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

    seam

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

      Геометрия не меняется; меняется только то, где контур считается начинающимся. Предназначено для контуров из одного ребра, таких как окружности: каждое периодическое ребро сдвигается, непериодические ребра остаются как есть.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Новый контур, начинающийся в шве

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

      Геометрия не меняется; меняется только то, где контур считается начинающимся. Предназначено для контуров из одного ребра, таких как окружности: каждое периодическое ребро сдвигается, непериодические ребра остаются как есть.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Новый контур, начинающийся в шве

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

    via points

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

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

      Parameters

      • inputs: PolygonDto

        Угловые точки, по порядку

      Returns Promise<TopoDSWirePointer>

      Замкнутый контур

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      Прямой контур

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

      extensionStart и extensionEnd - расстояния в единицах модели, добавляемые за началом и концом вдоль линии; две точки должны различаться, иначе выбрасывается ошибка.

      Parameters

      • inputs: LineWithExtensionsDto

        Начальная и конечная точки и две длины удлинения

      Returns Promise<TopoDSWirePointer>

      Удлиненный прямой контур

      const longer = await bitbybit.occt.shapes.wire.createLineWireWithExtensions({ start: [0, 0, 0], end: [10, 0, 0], extensionStart: 2, extensionEnd: 5 });
      
    • Делает незамкнутый контур из прямых ребер через список точек, по порядку.

      Контур не замыкается; createPolygonWire добавляет ребро обратно к первой точке.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Открытый контур

      const path = await bitbybit.occt.shapes.wire.createPolylineWire({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10]] });
      
    • Делает гладкий контур Безье, управляемый контрольными точками: он начинается в первой точке, заканчивается в последней и притягивается к промежуточным, не проходя через них.

      closed добавляет первую точку еще раз, чтобы концы сошлись; periodic вместо этого строит замкнутую кривую, гладкую через шов. degree ограничивает, сколько соседей формируют каждую часть.

      Parameters

      • inputs: BezierDto

        Контрольные точки и параметры замыкания и степени

      Returns Promise<TopoDSWirePointer>

      Контур Безье

      const curve = await bitbybit.occt.shapes.wire.createBezier({ points: [[0, 0, 0], [5, 0, 10], [10, 0, -10], [15, 0, 0]], closed: false, periodic: false });
      
    • Делает контур Безье, как createBezier, с весом на каждую контрольную точку, который говорит, насколько сильно она тянет кривую.

      Вес больше 1 притягивает кривую к своей точке, меньше 1 отпускает ее. Веса должны соответствовать точкам: то же число, или на один больше, когда closed равно true, а periodic false, так как первая точка повторяется.

      Parameters

      • inputs: BezierWeightsDto

        Контрольные точки, их веса и параметры замыкания и степени

      Returns Promise<TopoDSWirePointer>

      Взвешенный контур Безье

      const curve = await bitbybit.occt.shapes.wire.createBezierWeights({
      points: [[0, 0, 0], [5, 0, 10], [10, 0, 0]],
      weights: [1, 3, 1],
      closed: false,
      periodic: false,
      });
    • Делает гладкий контур B-spline, проходящий через каждую точку по порядку.

      periodic замыкает кривую так, что она гладкая через шов, что дает красиво оформленные петли. parametrization управляет распределением между точками: centripetal противостоит изломам и выбросам, когда точки неравномерны. startTangent и endTangent, или по одной записи tangents на точку, задают направление кривой там.

      Parameters

      • inputs: InterpolationDto

        Точки, замыкать ли кривую, допуск, параметризация и необязательные касательные

      Returns Promise<TopoDSWirePointer>

      Контур B-spline через точки

      const loop = await bitbybit.occt.shapes.wire.interpolatePoints({
      points: [[0, 0, 0], [10, 0, 5], [10, 0, 15], [0, 0, 10]],
      periodic: true,
      tolerance: 1e-7,
      parametrization: Bit.Inputs.OCCT.bSplineParametrizationEnum.centripetal,
      });
    • Делает замкнутый гладкий контур B-spline через точки, форма которого зеркально-симметрична всегда, когда симметричны точки, без странно выглядящей начальной или конечной точки.

      Обычный периодический interpolatePoints может выглядеть перекошенным на своем шве для симметричных входов, таких как квадрат или треугольник; этот вариант - нет. Он завершается ошибкой, если точки нельзя интерполировать.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Замкнутый симметричный контур B-spline

      const rounded = await bitbybit.occt.shapes.wire.interpolatePointsSymmetric({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]], tolerance: 1e-7 });
      
    • Делает гладкий контур B-spline, аппроксимирующий список точек: он следует им близко, но не обязан проходить через каждую точно.

      closed добавляет первую точку еще раз, чтобы концы сошлись. Подгонка использует степень от 3 до 8 и допуск 0.001 единиц модели; используйте interpolatePoints, когда кривая должна проходить через точки.

      Parameters

      • inputs: BSplineDto

        Точки и замыкать ли кривую

      Returns Promise<TopoDSWirePointer>

      Контур B-spline

      const curve = await bitbybit.occt.shapes.wire.createBSpline({ points: [[0, 0, 0], [5, 0, 5], [10, 0, 0], [15, 0, 5]], closed: false });
      

    via wires

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

      nrZigZags задает число скачков; inverse начинает со второго контура; divideByEqualDistance расставляет точки по длине, а не по параметру; при zigZagsPerEdge равном true каждое ребро получает свой зигзаг, так что числа ребер должны совпадать.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Зигзагообразный контур

      const zigzag = await bitbybit.occt.shapes.wire.createZigZagBetweenTwoWires({ wire1: lower, wire2: upper, nrZigZags: 20, inverse: false, divideByEqualDistance: true, zigZagsPerEdge: false });
      
    • Соединяет начальные точки нескольких контуров или ребер в один новый контур, а их конечные точки в другой.

      wireType делает их полилиниями или гладкими интерполированными кривыми, closed соединяет последнюю точку обратно с первой, а tolerance используется для интерполяции. Меньше двух форм выбрасывают ошибку.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Два контура: один через начальные точки, другой через конечные точки

      const [starts, ends] = await bitbybit.occt.shapes.wire.createWiresBetweenStartEndPointsOfWiresAndEdges({
      shapes: [wireA, wireB, wireC],
      wireType: Bit.Inputs.OCCT.wireFromPointsTypeEnum.interpolated,
      closed: false,
      tolerance: 1e-7,
      });
    • Делит несколько контуров или ребер на одинаковое число точек и соединяет точки на каждой позиции в новый контур, как перекладины лестницы.

      nrOfDivisions шагов дают на одну перекладину больше; divideByEqualDistance расставляет точки по длине, а не по параметру; wireType делает перекладины полилиниями или гладкими кривыми, closed замыкает каждую в петлю.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

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

      const rungs = await bitbybit.occt.shapes.wire.createWiresBetweenSubdividedPointsOfWiresAndEdges({
      shapes: [rail1, rail2],
      nrOfDivisions: 10,
      divideByEqualDistance: true,
      wireType: Bit.Inputs.OCCT.wireFromPointsTypeEnum.polyline,
      closed: false,
      tolerance: 1e-7,
      });
    • Рисует замкнутое очертание вокруг двух окружностей, лежащих в одной плоскости, соединяя их касательными линиями: форму ремня или капсулы.

      keepLines выбирает внешние касательные линии (ремень) или пересекающиеся внутренние; circleRemainders выбирает, какая дуга каждой окружности остается в очертании. Каждый контур окружности должен состоять из одного ребра.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Замкнутый контур очертания

      const belt = await bitbybit.occt.shapes.wire.createWireFromTwoCirclesTan({
      circle1,
      circle2,
      keepLines: Bit.Inputs.OCCT.twoSidesStrictEnum.outside,
      circleRemainders: Bit.Inputs.OCCT.fourSidesStrictEnum.outside,
      tolerance: 1e-7,
      });