Bitbybit Docs
    Preparing search index...

    Class OCCTSolid

    Тела в OpenCascade: замкнутые формы, охватывающие объем. Постройте тело из примитива (createBox, createSphere, createCylinder, createCone, createTorus), из плоского профиля, выдавленного вперед и назад (звезда, n-угольник, сердце, балка и другие профильные тела), или из замкнутой оболочки через fromClosedShell; затем измерьте его геттерами объема, площади поверхности и центра масс и отфильтруйте точки по тому, лежат ли они внутри него. У вершин, ребер, контуров, граней, оболочек и компаундов есть собственные классы рядом с этим под shapes.

    Index

    Constructors

    beam

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

      extrusionLengthFront и extrusionLengthBack говорят, на сколько он растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      • inputs: IBeamProfileSolidDto

        Профиль двутавра и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const beam = await bitbybit.occt.shapes.solid.createIBeamProfileSolid({
      width: 10,
      height: 20,
      flangeThickness: 1,
      webThickness: 1,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 0, 1],
      extrusionLengthFront: 100,
      extrusionLengthBack: 0,
      });
    • Создает H-образную балку выдавливанием ее плоского профиля вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько она растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      • inputs: HBeamProfileSolidDto

        Профиль H-балки и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const beam = await bitbybit.occt.shapes.solid.createHBeamProfileSolid({
      width: 20,
      height: 20,
      flangeThickness: 1,
      webThickness: 1,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 0, 1],
      extrusionLengthFront: 100,
      extrusionLengthBack: 0,
      });
    • Создает тавр выдавливанием его плоского профиля вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько он растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      • inputs: TBeamProfileSolidDto

        Профиль тавра и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const beam = await bitbybit.occt.shapes.solid.createTBeamProfileSolid({
      width: 10,
      height: 20,
      flangeThickness: 1,
      webThickness: 1,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 0, 1],
      extrusionLengthFront: 100,
      extrusionLengthBack: 0,
      });
    • Создает швеллер выдавливанием его плоского профиля вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько он растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      • inputs: UBeamProfileSolidDto

        Профиль швеллера и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const beam = await bitbybit.occt.shapes.solid.createUBeamProfileSolid({
      width: 10,
      height: 20,
      flangeThickness: 1,
      webThickness: 1,
      flangeWidth: 3,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 0, 1],
      extrusionLengthFront: 100,
      extrusionLengthBack: 0,
      });

    debug

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

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

      Parameters

      Returns Promise<SolidDebugInfo>

      Отчет с количествами, площадью, объемом и по одной записи на грань

      const info = await bitbybit.occt.shapes.solid.debugInfo({ shape: box });
      console.log(info.nbFaces, info.volume);

    filter

    • Оставляет точки, лежащие внутри тела, на его поверхности или снаружи, как выбрано флагами keepIn, keepOn и keepOut.

      Точка считается лежащей на поверхности, когда она в пределах tolerance от нее. Точки, которые ядро не может классифицировать, сохраняются только при keepUnknown.

      Parameters

      Returns Promise<Point3[]>

      Прошедшие фильтр точки, в исходном порядке

      const inside = await bitbybit.occt.shapes.solid.filterSolidPoints({
      shape: box,
      points: [[0, 0, 0], [100, 0, 0]],
      tolerance: 1e-7,
      keepIn: true,
      keepOn: false,
      keepOut: false,
      keepUnknown: false,
      });

    from

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

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

      Parameters

      Returns Promise<TopoDSSolidPointer>

      Тело, ограниченное оболочкой

      const solid = await bitbybit.occt.shapes.solid.fromClosedShell({ shape: closedShell });
      

    get

    • Измеряет полную площадь всех граней тела.

      Parameters

      Returns Promise<number>

      Площадь поверхности в квадратных единицах модели

      const area = await bitbybit.occt.shapes.solid.getSolidSurfaceArea({ shape: box });
      
    • Измеряет объем, который охватывает тело, в кубических единицах модели.

      Parameters

      Returns Promise<number>

      Объем в кубических единицах модели

      const volume = await bitbybit.occt.shapes.solid.getSolidVolume({ shape: box });
      
    • Измеряет объем каждого тела в списке.

      Parameters

      Returns Promise<number[]>

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

      const volumes = await bitbybit.occt.shapes.solid.getSolidsVolumes({ shapes: [box, sphere] });
      
    • Находит центр масс тела, считая его заполненным материалом равномерной плотности.

      Parameters

      Returns Promise<Point3>

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

      const center = await bitbybit.occt.shapes.solid.getSolidCenterOfMass({ shape: box });
      
    • Находит центр масс каждого тела в списке, считая каждое заполненным материалом равномерной плотности.

      Parameters

      Returns Promise<Point3[]>

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

      const centers = await bitbybit.occt.shapes.solid.getSolidsCentersOfMass({ shapes: [box, sphere] });
      
    • Перечисляет тела внутри любой формы, такие как тела компаунда или результат булевой операции.

      Форма, которая сама является телом, дает список с этим одним телом.

      Parameters

      Returns Promise<TopoDSSolidPointer[]>

      Тела, найденные в форме

      const solids = await bitbybit.occt.shapes.solid.getSolids({ shape: compound });
      

    primitives

    • Создает тело бокса со сторонами, параллельными осям.

      width идет вдоль X, height вдоль Y (вверх) и length вдоль Z, все в единицах модели. По умолчанию бокс центрируется на center; при originOnCenter, установленном в false, он вместо этого стоит на этой точке, так что center становится серединой нижней грани.

      Parameters

      • inputs: BoxDto

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

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const box = await bitbybit.occt.shapes.solid.createBox({ width: 10, length: 20, height: 5, center: [0, 0, 0], originOnCenter: true });
      
    • Создает тело куба, бокс со всеми тремя сторонами одного размера, параллельными осям.

      По умолчанию куб центрируется на center; при originOnCenter, установленном в false, он вместо этого стоит на этой точке, так что center становится серединой нижней грани.

      Parameters

      • inputs: Bit.Inputs.OCCT.CubeDto

        Размер куба, точка, в которой он размещается, и центрируется ли он на ней или стоит на ней

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const cube = await bitbybit.occt.shapes.solid.createCube({ size: 10, center: [0, 0, 0], originOnCenter: true });
      
    • Создает тело бокса, которое начинается в угловой точке и продолжается вдоль положительных осей.

      Угол с наименьшими x, y и z находится в corner; бокс простирается оттуда на width вдоль X, height вдоль Y и length вдоль Z, все в единицах модели.

      Parameters

      • inputs: BoxFromCornerDto

        Размер параллелепипеда и угол, от которого он растет

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const box = await bitbybit.occt.shapes.solid.createBoxFromCorner({ width: 10, length: 20, height: 5, corner: [0, 0, 0] });
      
    • Создает тело цилиндра с круглым основанием в center, растущее на height вдоль direction.

      При включенном originOnCenter цилиндр сдвигается назад на половину своей высоты, так что center оказывается в его середине. angle, в градусах, вырезает клин из полного круга в 360 градусов, как кусок торта.

      Parameters

      • inputs: Bit.Inputs.OCCT.CylinderDto

        Радиус, высота, центр основания, направление, необязательный неполный угол и центрировать ли на точке

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const cylinder = await bitbybit.occt.shapes.solid.createCylinder({ radius: 5, height: 20, center: [0, 0, 0], direction: [0, 1, 0], angle: 360, originOnCenter: false });
      
    • Создает по одному телу цилиндра вдоль каждой линии, от ее начала до конца, все с одним радиусом.

      Высота каждого цилиндра - длина его линии.

      Parameters

      Returns Promise<TopoDSSolidPointer[]>

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

      const rods = await bitbybit.occt.shapes.solid.createCylindersOnLines({
      lines: [{ start: [0, 0, 0], end: [0, 10, 0] }, { start: [5, 0, 0], end: [5, 10, 0] }],
      radius: 0.5,
      });
    • Создает тело сферы заданного радиуса вокруг центральной точки.

      Parameters

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const sphere = await bitbybit.occt.shapes.solid.createSphere({ radius: 5, center: [0, 0, 0] });
      
    • Создает тело конуса, или усеченного конуса, когда оба радиуса больше 0, стоящее на круглом основании в center и растущее на height вдоль direction.

      radius1 - основание, а radius2 - вершина; верхний радиус 0 дает острый конус. angle, в градусах, вырезает клин из полного круга в 360 градусов.

      Parameters

      • inputs: Bit.Inputs.OCCT.ConeDto

        Радиусы основания и вершины, высота, центр основания, направление и необязательный неполный угол

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const cone = await bitbybit.occt.shapes.solid.createCone({ radius1: 5, radius2: 0, height: 10, center: [0, 0, 0], direction: [0, 1, 0], angle: 360 });
      
    • Создает тело тора, кольцо с круглым сечением, центрированное на center с осью вдоль direction.

      majorRadius - расстояние от центра до середины трубки, а minorRadius - собственный радиус трубки. angle, в градусах, дает частичное кольцо вместо полных 360 градусов.

      Parameters

      • inputs: Bit.Inputs.OCCT.TorusDto

        Большой и малый радиусы, центр, направление и необязательный неполный угол

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const ring = await bitbybit.occt.shapes.solid.createTorus({ majorRadius: 10, minorRadius: 2, center: [0, 0, 0], direction: [0, 1, 0], angle: 360 });
      
    • Создает звездообразное тело выдавливанием плоского профиля звезды вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько оно растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка. Сама звезда строится так, как ее строит shapes.wire.createStarWire.

      Parameters

      • inputs: StarSolidDto

        Профиль звезды и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const star = await bitbybit.occt.shapes.solid.createStarSolid({
      numRays: 5,
      outerRadius: 10,
      innerRadius: 5,
      half: false,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      extrusionLengthFront: 2,
      extrusionLengthBack: 0,
      });
    • Создает тело с сечением правильного многоугольника выдавливанием плоского профиля n-угольника вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько оно растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      • inputs: NGonSolidDto

        Профиль многоугольника и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const hexPrism = await bitbybit.occt.shapes.solid.createNGonSolid({
      nrCorners: 6,
      radius: 5,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      extrusionLengthFront: 10,
      extrusionLengthBack: 0,
      });
    • Создает тело с сечением параллелограмма выдавливанием плоского профиля параллелограмма вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько оно растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      • inputs: ParallelogramSolidDto

        Профиль параллелограмма и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const slab = await bitbybit.occt.shapes.solid.createParallelogramSolid({
      width: 10,
      height: 5,
      angle: 15,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      aroundCenter: true,
      extrusionLengthFront: 2,
      extrusionLengthBack: 0,
      });
    • Создает тело в форме сердца выдавливанием плоского профиля сердца вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько оно растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      • inputs: HeartSolidDto

        Профиль сердца и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const heart = await bitbybit.occt.shapes.solid.createHeartSolid({
      sizeApprox: 10,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      extrusionLengthFront: 2,
      extrusionLengthBack: 0,
      });
    • Создает тело в форме елки выдавливанием плоского профиля елки вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько оно растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const tree = await bitbybit.occt.shapes.solid.createChristmasTreeSolid({
      height: 10,
      innerDist: 1.5,
      outerDist: 3,
      nrSkirts: 5,
      trunkHeight: 1,
      trunkWidth: 1,
      half: false,
      rotation: 0,
      origin: [0, 0, 0],
      direction: [0, 1, 0],
      extrusionLengthFront: 2,
      extrusionLengthBack: 0,
      });
    • Создает L-образное тело выдавливанием плоского профиля L вперед и назад вдоль его собственной нормали.

      extrusionLengthFront и extrusionLengthBack говорят, на сколько оно растет в каждую сторону, в единицах модели; хотя бы одна должна быть больше 0, иначе выбрасывается ошибка.

      Parameters

      • inputs: LPolygonSolidDto

        L-образный профиль и две длины выдавливания

      Returns Promise<TopoDSSolidPointer>

      Новое тело

      const bracket = await bitbybit.occt.shapes.solid.createLPolygonSolid({
      widthFirst: 10,
      lengthFirst: 20,
      widthSecond: 10,
      lengthSecond: 15,
      align: Bit.Inputs.OCCT.directionEnum.outside,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      extrusionLengthFront: 2,
      extrusionLengthBack: 0,
      });