За основу создания воздуховода возьмем нашу заглушку, которую мы сделали до этого.
После того как открыли на редактирование нашу заглушку-будущий воздуховод нам надо скопировать из существующих воздуховодов из базы пару элементов:
Это параметризация и порт1, порт2.
Переходим в редактор блока и начинаем превращать заглушку в воздуховод
Исправим в ней наши 2 бокса:
Первый бокс это наша наружняя часть воздуховода.
Для него поправим формулы:
Высота
child(1).[Length]
Приравниваем его к длине, которая указана в объекте "Параметризация".
Y координата
([PART_PIPE_RECT_DIMA]/2)
Z координата
-([PART_PIPE_RECT_DIMB]/2)
У второго бокса редактируем теже параметры с учетом толщины стенки металла
Длина
[PART_PIPE_RECT_DIMB]-[PART_VENT_THICKNESS]*2
Ширина
[PART_PIPE_RECT_DIMA]-[PART_VENT_THICKNESS]*2
Y координата
(([PART_PIPE_RECT_DIMA]-[PART_VENT_THICKNESS]*2)/2)
Z координата
-(([PART_PIPE_RECT_DIMB]-[PART_VENT_THICKNESS]*2)/2)
И у нас получается красивый вырезанный воздуховод:
Далее аналогично отредактируем теплоизоляцию, удалим лишние боксы и поправим формулы длины и положения. Описывать это не буду.
И переходим к размножению фланцев.
Создаем прямоугольный массив и переносим туда всю сборку фланцев.
Вставляем формулы:
Базовая точка. X координата:
[PART_VENT_LENGTH_DISTRICT]
Количество столбцов:
format("%0.f", [PART_VENT_LENGTH]/[PART_VENT_LENGTH_DISTRICT]-0.5)
Расстояние между столбцами
[PART_VENT_LENGTH_DISTRICT]
Воздуховод готов и теперь мы можем проверить его на работоспособность.
И определяем что MS не готов к такой детализации. Воздуховод очень долго думает при построении, работать с ним не возможно.
Ответ техподдержки: "Зачем нам такая деталировка". Видимо в этой программе положено рисовать только укрупненные квадратики.
Пытаемся исправлять это уменьшением LOD
Я сделал 3 вариана:
LOD500 это полностью детализированный фланец.
В LOD300 я убрал скобы, прокладки, уголки. Оставил только сами фланцы.
В LOD100 я убрал полностью все.
Воздуховод строится оптимально только в LOD100 и это печально.
Переходим в "Параметры объекта" и начинаем редактировать:
Длина воздуховода:
child(1).[Length]
Добавляем новый параметр "Длина участка воздуховода" PART_VENT_LENGTH_DISTRICT:
1500
Площадь поверхности
([PART_PIPE_RECT_DIMA]/1000+[PART_PIPE_RECT_DIMB]/1000)*2*
([PART_VENT_LENGTH]/1000)
Обозначение (модель):
"Воздуховод-"&[PART_VENT_SECTION_LABEL]&"-1500-AlMg3-"&[PART_VENT_THICKNESS]&if(
(parent.[PART_PIPE_RECT_DIMA]+parent.[PART_PIPE_RECT_DIMB])>1000 and
((parent.[PART_PIPE_RECT_DIMA]>700) or (parent.[PART_PIPE_RECT_DIMB]>700)), "-Ш20.Ш20", "-Ш30.Ш30")
Наименование
if([FIRST_LAYER_OF_INSULATION]="НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ"
or [SECOND_LAYER_OF_INSULATION]="НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
"НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
"Воздуховод прямоугольного сечения(Высота х Ширина) из алюминиевого листа AlMg3 по ГОСТ 17232-99, b="&[PART_VENT_THICKNESS]
&" мм., с шинореечным соединением")
Тип изделия
Воздуховод (прямоугольное сечение)
Наименование по ВР
"Монтаж воздуховода прямоугольного сечения из алюминиевого листа AlMg3 по ГОСТ 17232-99, b="&[PART_VENT_THICKNESS]
&" мм., сечением(Высота х Ширина) "&[PART_VENT_SECTION_LABEL]&" мм."&" на отм. "&[MOUNTING_HEIGHT]&" м. от пола."
Все остальные параметры остаются как в заглушке.
Единица измерения по специфкации
м./м2
Количество по спецификации
format("%0.2f", PART_VENT_LENGTH/1000)
Тип компонента трубопровода
Воздуховод
Тип сечения
Прямоугольное
В объектах порт1 и порт2 высоту и ширину приравниваем к Высоте воздуховода и Ширине воздуховода.
В объекте Гайка шестигранная с фланцем ГОСТ Р ИСО 4161-М8-8-A1U, ГОСТ Р ИСО 4161-2013 исправим параметр:
Количество по спецификации
4*format("%0.f", [PART_VENT_LENGTH]/[PART_VENT_LENGTH_DISTRICT]-0.5)
Мы добавили информацию о количестве наших фланцев по длине.
Аналогично исправим формулы остальных болтов, гаек, шины, уголка, герметика, ленты и скобы
У нас получился красивый воздуховод, который никому нельзя показывать.
Незабываем про исправление формул теплоизоляции в базе.
В каждую теплоизоляцию нам надо добавить информацию о расчете площади воздуховода
Площадь изоляции:
if(root.[PART_TYPE]="Заглушка",
format("%0.2f", ((((((root.[PART_PIPE_RECT_DIMA]+[PART_INSULATION_THICKNESS]*2)/1000)*
((root.[PART_PIPE_RECT_DIMB]+[PART_INSULATION_THICKNESS]*2)/1000)+
(((if(
(root.[PART_PIPE_RECT_DIMA]+root.[PART_PIPE_RECT_DIMB])>1000 and
((root.[PART_PIPE_RECT_DIMA]>700) or (root.[PART_PIPE_RECT_DIMB]>700)), 40, 30)+7.55)/1000)
*(root.[PART_PIPE_RECT_DIMA]/1000))*2+
(((if(
(root.[PART_PIPE_RECT_DIMA]+root.[PART_PIPE_RECT_DIMB])>1000 and
((root.[PART_PIPE_RECT_DIMA]>700) or (root.[PART_PIPE_RECT_DIMB]>700)), 40, 30)+7.55)/1000)*
((root.[PART_PIPE_RECT_DIMB]+[PART_INSULATION_THICKNESS]*2)/1000))*2))*1.1)+0.005)),
if(root.[PART_TYPE]="Воздуховод (прямоугольное сечение)", format("%0.2f", (((root.[PART_PIPE_RECT_DIMA]+[PART_INSULATION_THICKNESS])*2)/1000)+
(((root.[PART_PIPE_RECT_DIMB]+[PART_INSULATION_THICKNESS])*2)/1000))*(root.[PART_VENT_LENGTH]/1000)*1.1,
"Неизвестный тип изделия, добавьте формулу в расчет изоляции"))
Теперь теплоизоляция определяет к какому объекту она добавлена и расчитывает свою формулу. Если не понимает, что за объект, то выводит информацию об этом.
Аналогично исправляем формулы для остальных объектов.
Воздуховод сложил в папочку:
Воздуховод это самая легкая часть этой работы, следующим будут отводы.