понедельник, 15 октября 2012 г.

Объем изоляции в AutoCAD MEP

И пришли сметчики к технологам, и просили они их выдавать в объемах информацию дополнительную, чтобы видно было, какой объем изоляции какой толщины на какой трубе в каком количестве...

А если серьезно, то сметчики от технологов просят выдавать объем изоляции трубопроводов по диаметрам трубопроводов и толщине изоляции. Видимо в сметных расчетах параметры используются раздельно.
Короче говоря, сперва я хотел объединить решение с ранее написанным, однако, оно было ориентировано на любые типы объектов, в том числе и на оборудование, и на твердые тела. В новой задаче, надо учитывать только трубы и детали трубопроводов, а остальное игнорировать. От идеи с объединением отказался.
В итоге, родилось приложение MEPInsulationVolume (для AutoCAD MEP 2012 и 2013). Использовать приложение можно командой mepinsvol. После запуска команды, достаточно выбрать необходимые трубопроводы и нажать Enter. Масштабный коэффициент позволяет выполнить расчет в нужном масштабе (например, 0.001 - перевод мм в м). Результат подсчета окажется в командной строке.
Например,
   114 [100] volume of insulation: 0.344311588650863
читается как,
   114 - диаметр трубы
   100 - толщина изоляции
   volume of insulation - объем изоляции
   0.344311588650863 - объем изоляции в соотв. единицах

Протокол работы из командной строки приведен ниже.


Command: MEPInsVol

Select objects: Specify opposite corner: 20 found

Select objects:
Enter scale factor <.001>:

114 [100] area: 1.93784403614583
114 [100] area with insulation: 5.85467812277572
114 [100] volume: 0.0510808069381083
114 [100] volume with insulation: 0.395392395588971
114 [100] volume of insulation: 0.344311588650863
--
219 [0] area: 3.97367290395443
219 [0] volume: 0.189742575013275
--
219 [50] area: 1.4149715740827
219 [50] area with insulation: 2.16346254318387
219 [50] volume: 0.0685477187627397
219 [50] volume with insulation: 0.146078389419359
219 [50] volume of insulation: 0.0775306706566197
--
219 [100] area: 4.18342184154917
219 [100] area with insulation: 8.06102141592883
219 [100] volume: 0.198259028808557
219 [100] volume with insulation: 0.670630689193647
219 [100] volume of insulation: 0.47237166038509

Вуаля!

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

пятница, 12 октября 2012 г.

Выравнивание объектов в AutoCAD MEP

В очередной раз обратились ко мне коллеги из технологического отдела с просьбой упростить им жизнь при выравнивании опор трубопроводов расположенных на одном основании. Не нашли готового инструмента и опять на помощь пришел OARX и C#.

В общем виде задача выглядит так: разместить выбранные объекты типа MvPart относительно их базовой точки на одной прямой, а вернее, плоскости.

В итоге, родилось приложение MEPMvPartAlign (для AutoCAD MEP 2012 и 2013). Немного поясню, что оно делает и как им пользоваться. Итак...

В модели присутствует некоторое количество опор, которые необходимо выровнять вдоль одной воображаемой прямой проходящей через середину основания.


Прежде всего, после вызова команды, необходимо выбрать объекты, подлежащие выравниванию.

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


Третью точку можно не указывать и нажать Enter, тогда ориентация плоскости в пространстве будет опираться на текущую систему координат. Если же очень надо указать третью точку образующую плоскость, нет проблем.

Как только определились с третьей точкой, команда сразу начнет выравнивать объекты. Протокол выравнивания будет отображаться в командной строке. Убедиться в успешном результате можно и на виде в плане.


Протокол работы из командной строки приведен ниже.


Command: MvPartAlign

Select objects: Specify opposite corner: 8 found

Select objects:

Specify first point of align line:
Specify second point of align line:
Third point for plane or none for current Z:

89 Т13.07 moved on 24.2327904682606
57 Т13.04 moved on 53.9367274744436
108 Т13.07 moved on 55.7566428608261
273 Т13.19 moved on 4.35665730945766
273 Т13.19 moved on 19.0338690225035
108 Т13.07 moved on 62.9153513084166
108 Т13.07 moved on 12.0487855602987
32 Т13.01 moved on 0.745859129354358
Success.

Вуаля!

среда, 3 октября 2012 г.

Подсчет сварных швов в AutoCAD MEP

AutoCAD MEP - великолепный продукт для прокладки технологических трубопроводов, но не хватает в нем некоторых мелких плюшек и фишек для полного счастья инженера-технолога. Очередной раз обратились ко мне с просьбой упростить жизнь в подсчете количества стыков, т.е. количества сварных швов для выдачи задания сметному отделу. Выбрать и перебрать трубы совершенно несложно. Возник вопрос только с отрезками труб, которые по разным причинам могут быть мизерной длины, например, меньше 1 мм. Было принято решение воспринимать их как отдельный шов и не мучиться с выяснением причин их появления.
В итоге, родилось приложение MEPJointCount.
Протокол работы из командной строки приведен ниже. При протоколировании предполагалось, что труба поставляется длиной 8 метров (8000мм).

Команда: MEPJOINTCOUNT

Выберите объекты: _all
найдено: 371

Выберите объекты:

selected objects count: 371
Enter pipe segment length <1000>: 8000

45x2: 4
57x6,0-20'С': 107
89x6,0-20'С': 25
114x6,0-20'С': 200
159x6,0-20'С': 159
219x8,0-20А: 255
273x8,0-20А: 9
325x8,0-20А: 107
720x9-09ГСФ: 4

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


понедельник, 1 октября 2012 г.

Площадь поверхности и объем в AutoCAD MEP

На прошлой неделе меня попросили изучить вопрос получения геометрических параметров труб, арматуры и оборудования в AutoCAD MEP 3D. В частности, площадь поверхности и объем выбранных примитивов. Такие параметры необходимы для формирования задания сметному отделу, где указывается площадь поверхности, которую надо красить или объем изоляции. Меня удивил тот факт, что в AutoCAD MEP 3D нет готовых встроенных функций для такой операции.
Опять пришлось засучить рукава и вооружиться OARX 2013 и C#. Оказалось, что написать приложение для получения геометрических параметров достаточно просто. В итоге, родилось приложение MEPGeomProps. Описывать, как оно работает, наверное нет смысла, просто приведу протокол работы из командной строки.


Command: MEPGEOMPROPS

Select objects: Specify opposite corner: 6 found

Select objects:
Enter scale factor <.001>:

Accepted entities: 6
Skiped entities: 0
Area of accepted entities: 116.347896918749
Area of accepted entities with insulation: 1.59315380862003
Volume of accepted entities: 49.9199242101251
Volume of accepted entities with insulation: 0.151828935367589

Линейный масштабный коэф. по-умолчанию равен 0.001, что соответствует кубическим и квадратным метрам.

В результате, расчет выдает:

  • площадь поверхности обработанных примитивов
  • площадь поверхности обработанных примитивов с учетом изоляции
  • объем обработанных примитивов
  • объем обработанных примитивов с учетом изоляции

Вот и все. Как всегда просто и элегантно.