Модельная геометрия (класс ModelGeometry)

Общий класс ModelGeometry не имеет конструктора. Это произвольный набор геометрических объектов, который может быть ассоциирован с каким-то уровнем детализации стиля.

В зависимости от того, сколько уровней детализации будет использоваться шаблоном стиля, столько экземпляров класса ModelGeometry необходимо создать в скрипте.

Пример 1. Создание 3-х экземпляров ModelGeometry для 3-х различных уровней детализации стиля:
1local detailedGeometry = ModelGeometry()    --детальная геометрия
2local symbolicGeometry = ModelGeometry()    --условная геометрия
3local symbolGeometry = ModelGeometry()      --символьная геометрия

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

Для условного и символьного уровня детализации это может быть плоская 2D-геометрия.

Методы класса

Добавление твёрдотельной 3D-геометрии

:AddSolid(solid)
Parameters:

solid (Solid) – Задается твердотельная 3D-геометрия.

Добавление плоской геометрии

:AddGeometrySet2D(geometrySet, placement)
Parameters:
  • geometrySet (GeometrySet2D) – Задается плоская геометрия.

  • placement (Placement3D) – (optional) Задает локальную систему координат, в которой строится плоская геометрия. Если не задана, то для построения используется глобальная система координат.

Примеры

Создание детального уровня детализации стиля

Пример 2. Создание 3D-геометрии в форме куба с размером грани size:
1local detailedGeometry = ModelGeometry()
2local solid = CreateBlock(size, size, size, placement)
3
4detailedGeometry:AddSolid(solid)
5Style.SetDetailedGeometry(detailedGeometry)

Создание детального уровня детализации стиля со вспомогательной геометрией

Важно

Вспомогательная геометрия — дополнительная плоская геометрия. Обычно используется для создания не существующей в реальном объекте геометрии (направление потока, условное обозначение). Не специфицируется.

Пример 3. Создание 3D-геометрии в форме куба и дополнительно вспомогательной геометрии с размещением в ЛСК placement:
1local detailedGeometry = ModelGeometry()
2local solid = CreateBlock(size, size, size, placement)
3local auxGeometry = GeometrySet2D()
4local region = FillArea({contours})
5
6auxGeometry:AddMaterialColorSolidArea(region)
7detailedGeometry:AddSolid(solid)
8detailedGeometry:AddGeometrySet2D(auxGeometry, placement))
9Style.SetDetailedGeometry(detailedGeometry)

Создание условного уровня детализации стиля

Пример 4. Создание условного уровня детализации в виде квадрата с размером грани size:
1local symbolicGeometry = ModelGeometry()
2local planeGeometry = GeometrySet2D()
3local curve2D = CreateRectangle2D(centerPoint, angle, size, size)
4
5planeGeometry:AddCurve(curve2D)
6symbolicGeometry:AddGeometrySet2D(planeGeometry, placement)
7Style.SetSymbolicGeometry(symbolicGeometry)

Создание символьного уровня детализации стиля

Символьная геометрия, в отличии от условной геометрии, не масштабируется. С помощью символьного уровня детализации создаются условно-графические отображения (УГО) с заданными размерами (указанных в стандартах по выполнению чертежей).

Пример 5. Создание символьного уровня детализации в виде квадрата с размером грани size:
1local symbolGeometry = ModelGeometry()
2local planeGeometry = GeometrySet2D()
3local curve2D = CreateRectangle2D(centerPoint, angle, size, size)
4
5planeGeometry:AddCurve(curve2D)
6symbolGeometry:AddGeometrySet2D(planeGeometry)
7Style.SetSymbolGeometry(symbolGeometry)