Это оказалось проще, чем могло показаться.
не с первой попытки я сделал праивльно, но все же.
Берем наш отвод с радиусами и удаляем в нем ТОР.
Хотелось бы, чтобы в 3D примитивы добавили сектор цилиндра.
Сначало у меня был колхозный вариант с цилиндром и его обрезанием двумя телами по круговому массиву. Потом мне подсказали в чате, что лучше было использовать тело вращения.
Пришлось переделать всю геометрию, но да это стало проще.
Вместо тора вставляем тело вращения.
Рядом рисуем прямоугольник и щелкаем правой кнопкой по тело вращению, выбираем 2D примитив-Выбрать 2DПрофиль. Выбираем наш прямоугольник.
У нас появились 4 линии в теле вращения.
В этом плане работа с телом вращения в Revit была проще, там мы могли визуально подвинуть как нам надо линии, чтобы получить нужную фигуру.
Здесь же надо фантазировать в голове.
Поворачиваем наше тело вращения по X, Y,Z, чтобы у нас получилось так:
Зеленым отметил наш прямоугольник, который мы и вращаем вокруг оси.
В свойствах "Revolve" редактируем параметры:
Угол:
child.[Angle]
Базовая точка. X координата
-1*child.[L1]
Базовая точка. Y координата
[PART_PIPE_RECT_DIMA]/2
Базовая точка. Z координата
1*[PART_PIPE_RECT_DIMB]/2
С помощью координат X, Y, Z мы выставляем тело вращения в угол поворота:
Теперь спустимся внутрь тела вращения и расставим параметры для линий.
0 это ось тела, помним как у нас расставлен наш прямоугольник и расставляем параметры для каждой линии?
1 линия.
Точка. Y координата:
[PART_PIPE_RECT_DIMA]
2 линия.
Точка. X координата:
[PART_PIPE_RECT_DIMB]
Точка. Y координата:
[PART_PIPE_RECT_DIMA]
3 линия.
Точка. X координата:
[PART_PIPE_RECT_DIMB]
Для понимания очень сложно, не понятно почему линия строится по двум координатам, но методом научного тыка мы направляем наш прямоугольник у в нужное русло. Хотелось, чтобы когда выделяешь линию, то она подсвечивалась на графике. Ну и хотелось бы, чтобы нам объяснили смысл построения по 2 координатам(как будто линия это точка).
Дальше займемся вырезанием нашего тела вращения.
Скопируйем тело вращения и вставим толщину стенки в параметры:
Базовая точка. Z координата
1*[PART_PIPE_RECT_DIMB]/2-[PART_VENT_THICKNESS]
В линиях поправляем:
1 линия.
Точка. Y координата:
[PART_PIPE_RECT_DIMA]-[PART_VENT_THICKNESS]*2
2 линия.
Точка. X координата:
[PART_PIPE_RECT_DIMB]-[PART_VENT_THICKNESS]*2
Точка. Y координата:
[PART_PIPE_RECT_DIMA]-[PART_VENT_THICKNESS]*2
3 линия.
Точка. X координата:
[PART_PIPE_RECT_DIMB]-[PART_VENT_THICKNESS]*2
Получается вот такая красота:
Дальше подредактируем теплоизоляцию:
Удалим все что у нас напоминает прошлый отвод.
Скопируем в группу первого слоя теплоизоляции наше тело вращения 2 раза. Один вычтем, а во втором поправим параметры:
Базовая точка. Z координата
1*[PART_PIPE_RECT_DIMB]/2+[PART_INSULATION_THICKNESS]
В линиях поправляем:
1 линия.
Точка. Y координата:
[PART_PIPE_RECT_DIMA]+[PART_INSULATION_THICKNESS]
2 линия.
Точка. X координата:
[PART_PIPE_RECT_DIMB]+[PART_INSULATION_THICKNESS]*2
Точка. Y координата:
[PART_PIPE_RECT_DIMA]+[PART_INSULATION_THICKNESS]
3 линия.
Точка. X координата:
[PART_PIPE_RECT_DIMB]+[PART_INSULATION_THICKNESS]*2
Аналогично поправим второй слой изоляции
Теперь уйдем в параметры объекта и подредактируем:
Площадь поверхности SURFACE_AREA
var А:=pi*sqr([PART_PIPE_RECT_DIMA]/1000)*[PART_VENT_ANGLE]/360; /*Площадь сектора круга*/
var Б:=pi*[PART_PIPE_RECT_DIMA]/1000*[PART_VENT_ANGLE]/180; /*Длина дуги окружности*/
var В:=Б*[PART_PIPE_RECT_DIMB]/1000; /*Площадь наружной поверхности отвода*/
var Г:=([PART_PIPE_RECT_DIMA]/1000+[PART_PIPE_RECT_DIMB]/1000)*2*[PART_VENT_LENGTH]/1000; /*Площадь прямого участков отвода*/
format("%0.2f", (А*2+В+Г*2)*1.1)
Формулу видоизменил, нашел косяк в расчетах. Пришлось формулу сделать более яснее и использовать "Пи" из формул. Так значение площади получается более точное.
Нашел второй косяк в расчетах. Ошибся в названии параметра угла отвода, должно быть PART_VENT_ANGLE, а не PART_PIPE_ELBOWANGLE. Все формулы заменил. Прихожу к мнению, что стандартную базу параметров надо чистить. Слишком много не нужных параметров. В Revit для этого выпустили файлик общих параметров к шаблонам документов и предложили пользователям использовать данные шаблоны.
Тип исполнения отвода TYPE_OF_DUCT_OUTLET
Прямоугольный с полками
Обозначение(модель) PART_TAG
"Отвод-2-"&[PART_VENT_ANGLE]&"-"&[PART_PIPE_RECT_DIMA]&"х"&[PART_PIPE_RECT_DIMB]&"-"&[PART_VENT_RADIUS]&"-"&
[PART_VENT_LENGTH]&"-"&[PART_VENT_LENGTH]&"-ОЦ-"&[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")
И тут я понял, что совершил ошибку в прошлом отводе и не добавил ему в обозначение тип отвода. Т.е. должно было быть у отвода с радиусом "Отвод-1-" в начале. Публикацию поправил и заменил файлик в папке.
Наименование PART_NAME
if([FIRST_LAYER_OF_INSULATION]="НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ"
or [SECOND_LAYER_OF_INSULATION]="НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
"НЕПРАВИЛЬНО ДОБАВЛЕНА ТЕПЛОИЗОЛЯЦИЯ. НЕСКОЛЬКО ПЕРВЫХ СЛОЕВ",
"Отвод прямоугольного сечения (Ширина х Высота) из оцинкованной стали по ГОСТ 14918-80, b="&[PART_VENT_THICKNESS]
&" мм.,угол "&[PART_VENT_ANGLE]&"°, без радиуса гиба,c прямыми участками с обеих сторон l="&
[PART_VENT_LENGTH]&" мм.,с шинореечным соединением")
Наименование по ВР PART_NAME_WORK
"Монтаж отвода прямоугольного сечения из оцинкованной стали по ГОСТ 14918-80, b="&[PART_VENT_THICKNESS]
&" мм., сечением(Ширина х Высота) "&[PART_VENT_SECTION_LABEL]&" мм.,угол "&[PART_VENT_ANGLE]&
"°, без радиуса гиба,c прямыми участками с обеих сторон l="&
[PART_VENT_LENGTH]&" мм., на отм. "&[MOUNTING_HEIGHT]&" м. от пола."
Отвод готов и поправим теперь формулу рассчета теплоизоляции в базе.
Нашел еще пару косяков поэтому поправил публикацию с теплоизоляцией.
Есть еще проблема с углом отвода, когда таскаешь угол несколько раз, он обратно не возвращается в 90 градусов.
Пока оставил на подумать этот вопрос. В будущем надеюсь MS это решит.