AutoCad MEP. Применение Virtual Basic в сметах.
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > AutoCad MEP. Применение Virtual Basic в сметах.

AutoCad MEP. Применение Virtual Basic в сметах.

Ответ
Поиск в этой теме
Непрочитано 06.09.2010, 13:36 #1
AutoCad MEP. Применение Virtual Basic в сметах.
Argon
 
Регистрация: 02.06.2010
Сообщений: 14

Добрый день, Уважаемые форумчане!

Пытаясь создать автоматическую смету для подсчета общего веса воздуховодов (Duct Schedule) для Autocad MEP 2009, столкнулся с интересной проблемой.

В случае, если прямоугольный воздуховод делает поворот, к примеру, на 90 градусов, образуется "локоть". Подробнее на картинке. Необходимо получить значения ширины и высоты воздуховода. Но т.к. подключения два, то, как вы видите, значения дублируются.

[IMG]http://s42.***********/i095/1009/b7/56c1c8367152.png[/IMG]

т.е. если размер воздуховода 600х500, то функция определения высоты воздуховода (Rectangular Connection Height) выдает "500;500", а функция определения ширины воздуховода (Rectangular Connection Width) дает значение "600;600".

Чтобы я мог использовать данные значение в дальнейших формулах, мне необходимо каким то образом отсеч 2-ое (дублирующие) значение.

Были предприняты различные шаги, опробованы различные методы. Почти отчаялся, но после звонка в Autodesk выяснилось, что возможно получение результата путем нехитрого програмирование, но помочь нам отказались

В итоге, вопрос:
Как избавится от второго значения, включая цифру и знак препинания перед дней (";500" и ";600")?
Возможно ли добиться желаемого результата, создав скрипт и добавив его к формуле? Тут нужно мнение эксперта

Для облегчения задачи вот картинка с окошком, в котором ведется програмирование и пояснение, почему формула в текущем виде не работает.

[IMG]http://s51.***********/i134/1009/d3/d1a076f3d5bb.jpg[/IMG]

P.S. Была идея использовать If then функцию, т.е. if 500;500 then 500 и т.д. Но не сработало, т.к. оба значения переменые и сначала нужно перевести их в текст. А это уже другая проблема для неискушеного пользователя

Последний раз редактировалось Argon, 07.09.2010 в 14:20. Причина: уточнение
Просмотров: 3775
 
Непрочитано 07.09.2010, 12:20
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Попробуй использовать преобразование значений... CLng, CDbl, CInt и т.п.
---
ДОбавлено: я бы не стал делать одну переменную со значением "1000; 1000", а сделал бы 2. РЕзультат, который надо будет выводить в качестве суммирующей строки, намного проще сделать как CStr(1000) + "; " + CStr(1000).
---
Добавлено 2:
Как правило, информацию намного проще суммировать, чем дробить...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 07.09.2010 в 13:24.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.09.2010, 14:15
#3
Argon


 
Регистрация: 02.06.2010
Сообщений: 14


Спасибо за помощь.

Дело в том, что я не програмировал функцию (Rectangular Connection Height), она уже заранее задана в Automatic Property Sets, и состоит из двух переменных, в моем случе с одинаковым значением.

Отредактировать автоматическую функцию средствами автокада не удается, системный файл отвечающий за функцию выявить и отредактировать тоже не удалось. (Есть подозрения, что за них отвечает файл C:\ProgramData\Autodesk\ACD-MEP 2009\enu\Styles\Global\System Definitions (Global).dwg Но для меня непонятно, где именно он содержит информацию - файл "тяжелый", а на модели информaции нет...)

Я подумал, что возможно написание скрипта в окошке формулы, которая или
1) Уберёт 2-ое значение включая знак;
или
2) Преобразует оба значения в текст (вариант не самый лучший, но заставить его работать я смогу)

Вопрос, легко ли это сделать?! как может выглядеть скрипт?
RESULT =[DuctFittingElbowStyles:RectangularConnectionHeight]...
Argon вне форума  
 
Непрочитано 07.09.2010, 14:40
#4
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


>Argon
A - первый вариант
1)
RESULT = Split("[RectangularConnectionHeight]", ";", -1, 0) (0)
- даст результат - левую часть списка
2)
RESULT = Split("[RectangularConnectionWidth]", ";", -1, 0) (1)
- даст результат - правую часть списка
где - ";" - разделитель

Пример 600;500
1) RESULT = 600
2) RESULT = 500

Б- второй вариант
Все свойства DUCT видимые на палитре берутся из каталога DUCT,
Каталог редактируется, например создаются пользовательские свойства к-рые ссылаются на системные H и W, но имеют текстовый формат, а заодно могут там же, в каталоге обрабатываться формулами,
Эти пользовательские с-ва появятся в данном стиле DUCT и могут использоваться в формулах! ))

Последний раз редактировалось VitalyAF, 07.09.2010 в 15:11.
VitalyAF вне форума  
 
Автор темы   Непрочитано 07.09.2010, 15:38
#5
Argon


 
Регистрация: 02.06.2010
Сообщений: 14


Огромное Спасибо, Виталий. Уже который раз меня выручаешь
Если не секрет, откуда такие глубокие знания по Автокаду?
Сейчас буду проверять, работает ли как надо.

Цитата:
Эти пользовательские с-ва появятся в данном стиле DUCT и могут использоваться в формулах! ))
т.е. возможно, я не совсем понял, но ты хочешь, что можно создать свой Property Set Definition в этом каталоге?

В данный момент я имею Automatic Property Set Definition, который определяет высоту воздуховода как "RH1;RH2" Если бы я мог создать 2 отдельных определения "RH1" и "RH2", то это был бы идеальный результат.
Возможно ли это?
Argon вне форума  
 
Непрочитано 07.09.2010, 15:57
#6
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


Цитата:
"RH1;RH2" Если бы я мог создать 2 отдельных определения "RH1" и "RH2", то это был бы идеальный результат.
Возможно ли это?
Возможно! Они уже существуют в таком виде, но формат их таков, что он не может отображаться на палитрах, поэтому создаём свои свойства в к-рых приблизительно пишем H = RH1 W = RW1
где -
Н - польз. свойство высоты
W - польз. свойство ширины

В новых каталогах придётся прописывать это и в DUCT и в локтях )),
что не очень удобно. ДРУГОЕ ДЕЛО ЕСЛИ Вы пользуетесь собственными каталогами и не обновляетесь часто системными каталогами!

Цитата:
Сейчас буду проверять, работает ли как надо.
можешь быть спокойным фирма гарантирует

Цитата:
Если не секрет, откуда такие глубокие знания по Автокаду?
...дык поживёшь с моё и тоже научишься ))))

Последний раз редактировалось VitalyAF, 07.09.2010 в 16:09.
VitalyAF вне форума  
 
Автор темы   Непрочитано 07.09.2010, 16:42
#7
Argon


 
Регистрация: 02.06.2010
Сообщений: 14


Нет, AutoCAD MEP у нас не так давно, свой системный каталог еще не завели. Хотя я создал с десяток MultiViewParts, и теперь думаю, как импортировать на другие компьютеры Копирование файлов в те же папки на другом компьютере и последующая регенерация каталога не помогают

Цитата:
Возможно! Они уже существуют в таком виде, но формат их таков, что он не может отображаться на палитрах, поэтому создаём свои свойства в к-рых приблизительно пишем H = RH1 W = RW1
Можно чуть поподробней в этом месте, Свойства должны создавать в Modelling или Size Parameters Для оттображения на палитрах (что это, Вы имеете в виду Property Sets Definition? т.е. значения, которые появляются в Property\Extended Data?) Какие значения должны стоять в таблице? Или это непринципиально?

P.S.
На данный момент решили создать 2 версии сметы, одна для текущих проектов, где будем использовать вашу формулу. Она работает, инженеры счастливы!
Для будущих проектов создадим свой каталог.

Цитата:
...дык поживёшь с моё и тоже научишься ))))
А то и быстрее получиться Если что кому надо, все идут ко мне, сделай чтобы было так и так, и чтобы работало Я в офисе единственный "спец" по MEP. Ага, спец

Последний раз редактировалось Argon, 07.09.2010 в 18:24.
Argon вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > AutoCad MEP. Применение Virtual Basic в сметах.

Реклама i
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
книги по VBA AutoCAD DY Программирование 30 15.02.2013 16:16
Текст в AutoCAD VBA? Zaraza_1m Программирование 1 16.06.2010 00:06
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. hwd Баги и пожелания в Autodesk 21 21.04.2010 20:27
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk KSI AutoCAD 1 14.09.2009 15:59
AutoCAD LT 2005 и VBA Macros Vidas Программирование 10 03.05.2005 11:00