Остов изоляции¶
Начиная с версии Renga 8.9 и новее появилась возможность создавать техническую изоляцию на инженерном оборудовании для следующих типов объектов:
Аксессуар трубопровода
Деталь трубопровода
Аксессуар воздуховода
Деталь воздуховода
Чтобы проектировщик мог выполнить изоляцию, шаблон стиля необходимого оборудования должен содержать описание остова изоляции. Данное описание формирует каркас, по которому (если понадобится) будет выстроена изоляция из многослойного материала в проекте Renga.
Описание остова изоляции задается для стиля с помощью функции SetInsulationSkeleton пространства имён Style.
Остов изоляции может состоять из нескольких участков, каждый из которых задается таблицей.
parts = { startpart = {}, nextpart = {}, ... , endpart = {} }
Участок изоляции¶
Каждый участок задается массивом параметров.
- {{contours}, {placements}, guideCurve, capTypeStart, capTypeEnd}
- Parameters:
{contours} (table of Curves2D) – Задает таблицу плоских контуров сечений изоляции.
{placements} (table of Placements3D) – Задает таблицу координатных плоскостей в 3D пространстве, в плоскости XY которых располагаются контура сечений.
guideCurve (Curve3D) – Задает направляющую трёхмерную кривую.
capTypeStart (
Enum) – Тип заглушки в начале направляющей кривой. По умолчанию - InsulationCapType.NonecapTypeEnd (
Enum) – Тип заглушки в конце направляющей кривой. По умолчанию - InsulationCapType.None
Примечание
Контур сечения должен быть замкнут.
Размер массива contours должен быть равен размеру массива placements
идентификатор |
описание |
|---|---|
None |
без изоляции |
Flat |
закрыта плоской изоляцией |
1-- Получаем таблицу параметров из текущего стиля
2local parameters = Style.GetParameterValues()
3-- Получаем таблицу Dimensions, содержащую геометрические параметры
4local dimensions = parameters.Dimensions
5
6-- Создаем остов изоляции для основной части крестовины
7-- Круглый контур, т.к. это деталь трубопровода
8local mainBodyContour = CreateCircle2D(Point2D(0, 0),
9 dimensions.CrossOutsideDiameter / 2)
10-- 3-х мерная система координат по умолчанию
11local mainBodyPlacement = Placement3D(Point3D(0, 0, 0),
12 Vector3D(1, 0, 0), Vector3D(0, 0, -1))
13-- Направляющая кривая
14local mainBodyGuideCurve = CreateLineSegment3D(Point3D(-dimensions.InletToCenterDistance, 0, 0),
15 Point3D(dimensions.InletToCenterDistance, 0, 0))
16-- Таблица основного участка остова изоляции
17local mainBodySkeletonPart = {
18 {mainBodyContour, mainBodyContour},
19 {mainBodyPlacement:Clone():Shift(-dimensions.InletToCenterDistance, 0, 0),
20 mainBodyPlacement:Clone():Shift(dimensions.InletToCenterDistance, 0, 0)},
21 mainBodyGuideCurve,
22 InsulationCapType.None, -- По умолчанию None, поэтому можно не указывать
23 InsulationCapType.None -- По умолчанию None, поэтому можно не указывать
24}
25
26-- Создаем остов изоляции для первого ответвления крестовины
27local branch1Contour = CreateCircle2D(Point2D(0, 0),
28 dimensions.Branch1OutsideDiameter / 2)
29local branch1Placement = mainBodyPlacement
30local branch1GuideCurve = CreateLineSegment3D(Point3D(0, 0, 0),
31 Point3D(dimensions.CenterToBranch1Distance, 0, 0))
32-- Таблица участка остова изоляции для первого ответвления
33local branch1SkeletonPart = {
34 {branch1Contour, branch1Contour},
35 {branch1Placement:Clone():Transform(branch1Rotator),
36 branch1Placement:Clone():Shift(dimensions.CenterToBranch1Distance, 0, 0):Transform(branch1Rotator)},
37 branch1GuideCurve
38 -- Если оба конца части не заглушаются изоляцией, то можно не указывать InsulationCapType
39}
40
41-- Создаем остов изоляции для второго ответвления крестовины
42local branch2Contour = CreateCircle2D(Point2D(0, 0),
43 dimensions.Branch2OutsideDiameter / 2)
44local branch2Placement = mainBodyPlacement
45local branch2GuideCurve = CreateLineSegment3D(Point3D(0, 0, 0),
46 Point3D(dimensions.CenterToBranch2Distance, 0, 0))
47-- Таблица участка остова изоляции для второго ответвления
48local branch2SkeletonPart = {
49 {branch2Contour, branch2Contour},
50 {branch2Placement:Clone():Transform(branch2Rotator),
51 branch2Placement:Clone():Shift(dimensions.CenterToBranch2Distance, 0, 0):Transform(branch2Rotator)},
52 branch2GuideCurve
53}
54
55-- Задаем остов изоляции стиля
56
57Style.SetInsulationSkeleton({mainBodySkeletonPart, branch1SkeletonPart, branch2SkeletonPart})