Bitbybit Docs
    Preparing search index...

    Class CrossSectionOperations

    Работа с сечениями Manifold за пределами булевых операций: превращение их в тела выдавливанием вдоль Z или вращением, смещение их очертаний, обертывание в выпуклую оболочку, упрощение, составление и разложение. Каждый метод возвращает новую форму.

    Index

    Constructors

    basic

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

      Parameters

      Returns Promise<CrossSectionPointer>

      Выпуклая оболочка

      const wrapped = await bitbybit.manifold.crossSection.operations.hull({ crossSection: outline });
      
    • Выдавливает сечение вдоль Z в тело заданной высоты.

      twistDegrees поворачивает верх относительно низа, scaleTopX и scaleTopY сжимают или растягивают его, а nDivisions добавляет промежуточные сечения, чтобы скручивания и сужения оставались гладкими; 0 для обоих верхних масштабов дает конус. center центрирует тело на плоскости XY вместо того, чтобы ставить его на нее.

      Parameters

      Returns Promise<ManifoldPointer>

      Выдавленное тело

      const twisted = await bitbybit.manifold.crossSection.operations.extrude({ crossSection: square, height: 20, nDivisions: 20, twistDegrees: 90, scaleTopX: 0.5, scaleTopY: 0.5, center: false });
      
    • Вращает сечение вокруг оси Y в тело, как токарный станок; используется только часть очертания на положительной стороне X.

      revolveDegrees ниже 360 дает частичный оборот, а circularSegments задает, насколько кругл результат. Ядро ставит результат вдоль Z; matchProfile, по умолчанию true, поворачивает его обратно в соответствие с профилем.

      Parameters

      Returns Promise<ManifoldPointer>

      Тело вращения

      const vase = await bitbybit.manifold.crossSection.operations.revolve({ crossSection: profile, revolveDegrees: 360, circularSegments: 64, matchProfile: true });
      
    • Сдвигает очертание сечения наружу на delta, или внутрь при отрицательной delta, так что внешний контур растет, а отверстие сжимается.

      joinType говорит, как обрабатываются углы: скругленные, срезанные, с острым соединением или с фаской; miterLimit ограничивает, как далеко может заходить острое соединение, а circularSegments - насколько кругл скругленный угол. simplify после этого очищает крошечные сегменты.

      Parameters

      Returns Promise<CrossSectionPointer>

      Смещенное сечение

      const bigger = await bitbybit.manifold.crossSection.operations.offset({ crossSection: outline, delta: 1, joinType: Bit.Inputs.Manifold.manifoldJoinTypeEnum.round, miterLimit: 2, circularSegments: 32 });
      
    • Удаляет точки сечения, лежащие в пределах epsilon от линии между их соседями, отбрасывая почти дубликаты и коллинеарные точки.

      Больший epsilon удаляет больше; выполните его после offset, чтобы очистить крошечные сегменты, которые оставляет смещение.

      Parameters

      Returns Promise<CrossSectionPointer>

      Упрощенное сечение

      const cleaner = await bitbybit.manifold.crossSection.operations.simplify({ crossSection: offsetOutline, epsilon: 1e-4 });
      

    composition

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

      Parameters

      Returns Promise<CrossSectionPointer>

      Одно сечение, содержащее все их

      const packed = await bitbybit.manifold.crossSection.operations.compose({ polygons: [square, disc] });
      
    • Разбивает сечение на его отдельные, несвязанные очертания, каждое со своими отверстиями, обратное к compose.

      Parameters

      Returns Promise<CrossSectionPointer[]>

      Отдельные очертания

      const pieces = await bitbybit.manifold.crossSection.operations.decompose({ crossSection: packed });