Найти тему
Model Studio Трубопроводы

Первая деталь. Заглушка вентиляционная. LOD400. Часть 2.

Мне нужно создать, что то похожее на это:

Заглушка вентиляционная
Заглушка вентиляционная

Все детали я буду создавать на основе детали из стандартной базы оборудования. Всех нюансов (а их много) я не знаю и поэтому возьмем заглушку для воздуховода 1000х1000 из базы:

-2
-3

Создаем воздуховод, размеры его нам сейчас не важны.

-4

Простым переносом из базы в модель вытаскиваем нашу заглушку и щелкаем по нужному терминатору. Заглушка создалась:

Создание воздуховода и заглушки
Создание воздуховода и заглушки

На вкладке ModelStudio CS выбираем "Редактирование оборудования" и заходим в редактор

Заходим в редактор
Заходим в редактор

Пока не удаляем существующую часть. Подходов к созданию заглушки очень много. Можно нарисовать ее выдавливанием каждой стороны отдельными фрагментами, вырезанием прямоугольника из прямоугольника и т.д. Я выбрал вырезание. Для этого создаем 2 параллелепипеда в одном месте. Принимаем размер 1000 мм для одного и для второго 1000-"Толщина стенки". Меняем направление и ориентацию, как показано на картинке ниже.

-7
-8
-9

На этом этапе мы можем удалить старую графику заглушки, оставив наши два параллелепипеда. Я также отвязал деталь от воздуховода, чтобы он пока нам не мешался. На вкладке "Трубопроводы"-"Редактирование"-"Деталь в оборудование".

-10

Займемся первым параллелепипедом и заполнением его параметров.

Высота.

Высота у нас выбирается в зависимости от применяемой шины. Местный производитель рекомендовал такие границы применения:

-11

Т.е при полупериметре менее 1000 мм и одной сторон менее 700 мм. используем шину 20, во всех других случаях шину 30.

Размеры шины:

-12

Соответственно высота заглушки должна быть 30 и 40 мм.

В редакторе параметрического оборудования напротив параметра высота кликаем по многоточию и заходим в мастер функций:

-13
-14

В мастере функций используются не сложные функции. Но то, что нам предлагает разработчик это не полный список. Есть еще скрытые от нас функции.

В мастере функций собираем функцию Если( Условие, Верно, Не верно):

if(
([PART_PIPE_RECT_DIMA]+[PART_PIPE_RECT_DIMB])>1000 and
(([PART_PIPE_RECT_DIMA]>700) or ([PART_PIPE_RECT_DIMB]>700)), 40, 30)

PART_PIPE_RECT_DIMA и PART_PIPE_RECT_DIMB соответственно ширина и длина.

Далее заполняем формулу для длины и ширины:

-15
-16

И координаты базовой точки:

-17

Теперь займемся вторым параллелепипедом.

Первым действием надо задать вычитание объекта:

-18

Далее все формулы аналогично, только добавляем вычитание толщины стенки. Если параметр "Толщина стенки" [PART_VENT_THICKNESS] отсутствует, то создаем его в базе. На начальном этапе задаемся толщиной стенки 0,7 мм., далее мы зададим зависимость.

-19

У нас должна получиться вот такая заглушка:

-20

LOD200 готов.

Далее мы добавим параметры, чтобы у нас был LOD300.

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

1. Ширина воздуховода PART_PIPE_RECT_DIMA

2. Высота воздуховода PART_PIPE_RECT_DIMB

3. Маркировка типоразмера PART_VENT_SECTION_LABEL

PART_PIPE_RECT_DIMA&"x"&PART_PIPE_RECT_DIMB

4. Длина воздуховода PART_VENT_LENGTH

if(
([PART_PIPE_RECT_DIMA]+[PART_PIPE_RECT_DIMB])>1000 and
(([PART_PIPE_RECT_DIMA]>700) or ([PART_PIPE_RECT_DIMB]>700)), 40, 30)

5. Площадь поверхности SURFACE_AREA

([PART_VENT_LENGTH]/1000)*([PART_PIPE_RECT_DIMA]/1000+
[PART_PIPE_RECT_DIMB]/1000)*2+
([PART_PIPE_RECT_DIMA]/1000)*([PART_PIPE_RECT_DIMB]/1000)

6. Толщина стенки PART_VENT_THICKNESS (По СП 60) с учетом наличия теплоизоляции/огнезащиты. По СП7 у нас есть ограничение в толщину стенки 0,8 мм. +допуски. Поэтому при наличии теплоизоляции мы ставим толщину 0,9 мм.

Если в будущем понадобится толщина стенки отличная от СП60, то это проще поправить в базе, чем учитывать возможные варианты.

if((if (real([PART_PIPE_RECT_DIMA])>real([PART_PIPE_RECT_DIMB]),
if (real([PART_PIPE_RECT_DIMA])<=250, 0.5,
if (real([PART_PIPE_RECT_DIMA])<=1000, 0.7,
if (real([PART_PIPE_RECT_DIMA])<=2000, 0.9, 1.2))),
if (real([PART_PIPE_RECT_DIMB])<=250, 0.5,
if (real([PART_PIPE_RECT_DIMB])<=1000, 0.7,
if (real([PART_PIPE_RECT_DIMB])<=2000, 0.9, 1.2)))))<0.9 and [PART_INSULATION_THICKNESS]>0, 0.9, if (real([PART_PIPE_RECT_DIMA])>=real([PART_PIPE_RECT_DIMB]),
if (real([PART_PIPE_RECT_DIMA])<=250, 0.5,
if (real([PART_PIPE_RECT_DIMA])<=1000, 0.7,
if (real([PART_PIPE_RECT_DIMA])<=2000, 0.9, 1.2))),
if (real([PART_PIPE_RECT_DIMB])<=250, 0.5,
if (real([PART_PIPE_RECT_DIMB])<=1000, 0.7,
if (real([PART_PIPE_RECT_DIMB])<=2000, 0.9, 1.2)))))

7. Обозначение(модель) PART_TAG

"Заглушка-ОЦ-"&[PART_VENT_SECTION_LABEL]&"-"&[PART_VENT_THICKNESS]

8.Класс материала PART_MATERIAL_CLASS

Сталь листовая оцинкованная

9. Материал PART_MATERIAL

Оцинкованная(08пс)

10. Нормативный документ на материал PART_MATERIAL_STANDARD

ГОСТ 14918-80

По видам материалов мы будем задавать вариативность уже в базе.

11. Идентификатор PART_TAGNUMBER

Заглушка

12. Вес PART_WEIGHT

format("%0.2f", (if([PART_VENT_THICKNESS]=0.5, [SURFACE_AREA]*4.637,
if([PART_VENT_THICKNESS]=0.7, [SURFACE_AREA]*6.207,
if([PART_VENT_THICKNESS]=0.9, [SURFACE_AREA]*7.777,
if([PART_VENT_THICKNESS]=1.2, [SURFACE_AREA]*10.132, 0)+0.005))))
)

13. Наименование PART_NAME

if([FIRST_LAYER_OF_INSULATION]="НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ"
or [SECOND_LAYER_OF_INSULATION]="НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
"НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
"Заглушка прямоугольного сечения из оцинкованной стали по ГОСТ 14918-80, b="&[PART_VENT_THICKNESS]
&" мм., l="&if(
([PART_PIPE_RECT_DIMA]+[PART_PIPE_RECT_DIMB])>1000 and
(([PART_PIPE_RECT_DIMA]>700) or ([PART_PIPE_RECT_DIMB]>700)), 40, 30)&" мм.")

14. Толщина изоляции первого слоя PART_INSULATION_THICKNESS

if((sum(object.Element.SubElements.item("Список работ").SubElements, item.Parameters["INSULATION_LAYER_NUMBER"],
item.Parameters["INSULATION_LAYER_NUMBER"]=1))>1,
"НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
(strSum(object.element.SubElements.item("Список работ").SubElements, item.Parameters["PART_INSULATION_THICKNESS"],
item.Parameters["INSULATION_LAYER_NUMBER"]=1)))

15. Первый слой изоляции FIRST_LAYER_OF_INSULATION

if((sum(object.element.SubElements.item("Список работ").SubElements, item.Parameters["INSULATION_LAYER_NUMBER"],
item.Parameters["INSULATION_LAYER_NUMBER"]=1))>1,
"НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
(strSum(object.element.SubElements.item("Список работ").SubElements, item.Parameters["PART_TAG"],
item.Parameters["INSULATION_LAYER_NUMBER"]=1)))

16. Толщина изоляции второго слоя PART_INSULATION_THIKNESS_2

=if((sum(object.Element.SubElements.item("Список работ").SubElements, item.Parameters["INSULATION_LAYER_NUMBER"],
item.Parameters["INSULATION_LAYER_NUMBER"]=2))>2,
"НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ВТОРЫХ СЛОЕВ",
(strSum(object.element.SubElements.item("Список работ").SubElements, item.Parameters["PART_INSULATION_THIKNESS_2"],
item.Parameters["INSULATION_LAYER_NUMBER"]=2)))

17. Второй слой изоляции SECOND_LAYER_OF_INSULATION

if((sum(object.element.SubElements.item("Список работ").SubElements, item.Parameters["INSULATION_LAYER_NUMBER"],
item.Parameters["INSULATION_LAYER_NUMBER"]=2))>2,
"НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
(strSum(object.element.SubElements.item("Список работ").SubElements, item.Parameters["PART_TAG"],
item.Parameters["INSULATION_LAYER_NUMBER"]=2)))

Изоляция выполнена в виде работ. Это единственная возможность, когда ее вполне легко можно удалять и изменять. Все формулы учитывают только 2 слоя теплоизоляции. Если количество первых слоев будет больше, то все формулы уйдут в ошибку, потребуется корректировка формул. Если нам например понадобится 2 слоя минеральной ваты с 1 слоем покрывным, то надо будет добавлять 3 слой в расчет. Но т.к. это редкий случай, то выполнять я его пока не стал.

Выполнение объектов теплоизоляции я покажу позднее.

18. Специализация PART_SPECIALITY

Вентиляция

19. Группа изделий PART_GROUP

Детали вентиляционные

20. Тип изделия PART_TYPE

Заглушка

21. Стандарт LINE_SYSTEM_STANDARD

ГОСТ

22. Код группы BOM_SORT_ID

450

23. Диаметр крепежных отверстий FLANGE_BOLT_DIAMETER

if(([PART_PIPE_RECT_DIMA]+[PART_PIPE_RECT_DIMB])<=1000 , 6, if(([PART_PIPE_RECT_DIMA]+[PART_PIPE_RECT_DIMB])<=1500, 8, if(([PART_PIPE_RECT_DIMA]+[PART_PIPE_RECT_DIMB])<=2500, 10,12
)))

Этот параметр нам понадобится для определения графики болтов.

24. Включить в спецификацию BOM_INCLUDE

1

25. Единица измерения спецификации BOM_ITEMUNITS

шт./м2

26. Группа по спецификации BOM_GROUP

Детали вентиляционные

27. Тип компонента трубопровода PART_PIPE_CLASS

Терминатор

28. Тип сечения PIPE_PROFILE_TYPE

Прямоугольное

Большинство параметров без описательной части взяты со стандартной заглушки и влияют на какие-либо функции программы. Т.е. программа по ним поймет что это именно заглушка, определит ее место в спецификации и т.д. Для меня большинство из этих параметров пока не раскрыты, поэтому я оставляю как есть.

Объект параметризация не трогаем, а вот в объекте порт1 нам нужно задать:

Высота:

root.[PART_PIPE_RECT_DIMB]

Ширина:

root.[PART_PIPE_RECT_DIMA]

Тип сечения

Rectangle

На этом создание заглушки LOD300 может быть закончено.

Параметров много. Плюс бывает, что параметры выставлены в нескольких категориях и в списке параметров повторяются. Это можно исправить в настройках параметров, исключив не нужные категории. На данном этапе работы это не критично и производитель ПО зачем то так сделал, поэтому оставим как есть.

В итоге должно выйти вот так:

-21

В части 3 мы будем создавать уже LOD400.