(tg) Трубопроводы (часть 1)

Model Studio CS Трубопроводы предназначен для проектирования всех типов трубопроводных систем (марки TO, TM, TX, ПТ, ГС, ВК, НВК, ТС, ОВК, НПТ). Инженерный программный комплекс для трехмерного проектирования, компоновки и выпуска проектной/рабочей документации по технологическим установкам и трубопроводам на проектируемых или реконструируемых объектах.

Коллеги! кто знает как вытащить уклон трубопровода в параметр?

ну в параметрах трубы не работают формулы normalx y z. Так бы можно было через них. Другие варианты интересно узнать

А точка начала(object.pointstart) и конца(object.pointend) ? Если есть координаты начала и конца, то далее работаем как с вектором

Демонстрация работы формулы

Сама формула:
(1000/gTan(deg(acos((vector(object.PointStart)[1]-vector(object.pointend)[1])/child.[Length]))-90))/1000

Наверное, её еще как-то можно упростить)

Учитывая, что наклон может быть отрицательным, то правильнее, наверное, так:
=if(vector(object.PointStart)[2]>vector(object.Pointend)[2], -1*(1000/gTan(deg(acos((vector(object.PointStart)[1]-vector(object.pointend)[1])/child.[Length]))-90))/1000, (1000/gTan(deg(acos((vector(object.PointStart)[1]-vector(object.pointend)[1])/child.[Length]))-90))/1000)

Эта формула рабочая! но только для MS, еще бы понять как для кадлиба это сделать. Там есть свойства 3D, но пока не могу разобратся, можно ли их достать

А в кадлиб трубы не из MS пришли?

пришли из MS

Сообщение из Telegram.

в принципе можно наверно эту формулу задать всем трубам в кадлиб, а потом перепубликовать все файлы, но не хотелось бы

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

т.е. свойства 3D в параметр в Cadlib не вытащить?

Так, кажись не всё так просто. Формула не работает если труба ориентирована под углами относительно других осей.

Надо подумкать…

Сообщение из Telegram.

Исправил формулу. Теперь считает верно. Написал для градусов.
if(vector(object.PointStart)[2]>vector(object.Pointend)[2], -1*deg(asin(abs(vector(object.PointStart)[2]-vector(object.pointend)[2])/child.[Length])), deg(asin(abs(vector(object.PointStart)[2]-vector(object.pointend)[2])/child.[Length])))

Ошибка в предыдущей формуле была в том, что я искал угол между осью Y и трубопроводом. В исправленной формуле вычисляю по формуле угла между плоскостью XoY и трубой.