|
  |
ACAD MEP (ABS). С чем его едят и сьедобен ли он?, Внесите ясность, что эта программа даёт российскому "специалисту& |
|
|
|
5.10.2010, 17:35
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
Цитата А вот вопрос по поводу сумм труб по одинаковому диаметру и системе остается открытым что именно? у меня на страничке разве не нашлось примера? правда не для труб, а для профиля, сортировка по стилю и материалу http://www.vitalyf.by.ru/Sample/MemLenByStyleMat.rarГде-то ещё было... не могу пока найти...
|
|
|
|
Гость_Sergio_*
|
5.10.2010, 17:42
|
Guest Forum

|
я скачал все ваши примеры, у вас рабоает, а каогда переделвыю формулу под себя, так перестает ссумировать, вот в чем дело!
2011 rus
|
|
|
|
|
6.10.2010, 6:45
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
В конце формулы попробуй точку на запятую заменить, как в твоих формулах! Выложи файл...
|
|
|
|
Гость_Sergio_*
|
6.10.2010, 9:40
|
Guest Forum

|
Выкладываю файл с проблемой... Параллельно, попробую сделать как советует Виталий напомню, сделан в МЕП2011РУС
Прикрепленные файлы
pipes.dwg ( 208,66 килобайт )
Кол-во скачиваний: 26
|
|
|
|
|
6.10.2010, 13:08
|
Группа: Участники форума
Сообщений: 1000
Регистрация: 20.5.2008
Из: Москва
Пользователь №: 18901

|
может так?
Прикрепленные файлы
pipes.dwg ( 219,86 килобайт )
Кол-во скачиваний: 76
|
|
|
|
Гость_Sergio_*
|
6.10.2010, 14:09
|
Guest Forum

|
Дима, а что ты изменил в формуле?
|
|
|
|
|
6.10.2010, 14:15
|
Группа: Участники форума
Сообщений: 1000
Регистрация: 20.5.2008
Из: Москва
Пользователь №: 18901

|
Она так должна работать? Я просто долго понять не мог что ты хочешь? На самом деле взял "свою" формулу, взял твою, два значения поменял и все, даже сам не понял как это сделал. Причем два раза, я сделал сохранил и закрыл, а куда сохранил не посмотрел, искать не стал, скачал еще раз твой файл опять изменил, уже не смотря свою формулу и выложил сюда. Поменял три параметра, честно не скажу после какого она заработала ))) у тебя там первое что-то не то было я поменял это на ИМЯРАЗМЕРАЭЛЕМЕНТА, потом в теле кода это поменял, и _Трубы изменил на _ТРУБЫ.
А еще забыл, я убрал твой столбец Количество и добавил свой.
|
|
|
|
Гость_Sergio_*
|
6.10.2010, 15:09
|
Guest Forum

|
Спасибо!!! Работает!! Необходимо было заменить имя размера элемента и "_Трубы" на "_ТРУБЫ"
Продолжение обсуждения..
Такая спецификация находится в другом dwg.
Как заставить ее считать трубы в другом документе правильно?
В коде есть - For Each object in acadApp.Active Document.ModelSpace....
Не будучи программистом понимаю что это поиск объектов в модели активного документа, наверно здесь нужно чтонить поменять, чтобы такая задумка сработала??
|
|
|
|
|
6.10.2010, 15:24
|
Группа: Участники форума
Сообщений: 1000
Регистрация: 20.5.2008
Из: Москва
Пользователь №: 18901

|
Сделай новую спецификацию в другом файле dwg и не парься, тем более уже разобрался с формулой
|
|
|
|
|
6.10.2010, 15:52
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
Цитата наверно здесь нужно чтонить поменять, чтобы такая задумка сработала?? ...поменять задумку, )) есть примеры (могу поделиться) подобного доступа к объектам через ссылку, при наличии времени разбираюсь... Главное отличие см. выше применяется не хандлер объекта а его ObjectID. Нужно найти в словарях соответствующие переменные с помощь каких-то инструментов и применить их в формулах! Или задать на форуме Autodesk конкретный вопрос для доступа к ним... Например >>>> Количество объектов >>>>>> Код Set acadApp = GetObject(,"AutoCAD.Application.18.1") Set AecBaseApplication = acadApp.GetInterfaceObject("AecX.AecArchBaseApplication.6.5") Set ActiveDoc =AecBaseApplication.ActiveDocument Set ObjectCollection = ActiveDoc.ModelSpace
count = 0
For Each Object In ObjectCollection Set SpaceObject = Object If SpaceObject.ObjectName = "AecbDbPipe" Then count = count + 1 End If Next
RESULT = count сохранили промежуточный результат Setvar >>>>>>> Код RESULT = "--" On Error Resume Next Set acadApp = GetObject(,"AutoCAD.Application.18.1") Set AecBaseApplication = acadApp.GetInterfaceObject("AecX.AecArchBaseApplication.6.5") Set ActiveDoc = AecBaseApplication.ActiveDocument
ActiveDoc.SetVariable ("USERR1"), "[TotLength]" В другой колонке таблицы извлекли его Getvar >>>>>>> Код RESULT = "--" On Error Resume Next Set acadApp = GetObject(,"AutoCAD.Application.18.1") Set AecBaseApplication = acadApp.GetInterfaceObject("AecX.AecArchBaseApplication.6.5") Set ActiveDoc = AecBaseApplication.ActiveDocument
RESULT = ActiveDoc.GetVariable ("USERR1") суммирование >>>>> Код RESULT = "--" On Error Resume Next Set acadApp = GetObject(,"AutoCAD.Application.18.1") Set adtApp = acadApp.GetInterfaceObject("AecX.AecArchBaseApplication.6.5")
Set ActiveDoc =adtApp.ActiveDocument Set ObjectCollection = ActiveDoc.ModelSpace
h = "[ObjectID]" TotalLength = 0
For Each Object In ObjectCollection Set objid = ActiveDoc.ObjectIDToObject( "[ObjectID]" ) If objid.Handle = "AecbDbPipe" Then If object.ObjectID <> h Then TotalLength = TotalLength + objid.Length End If End If Next
RESULT = TotalLength и т.д....)))
Сообщение отредактировал VitalyF - 6.10.2010, 16:09
|
|
|
|
|
7.10.2010, 11:39
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
Простите, что я опять со своими баранами... Табличку, которую любезно предоставил Sergio, я поковырял и вот кое что обнаружил... Тип данных для PartType, ObjectType, PartSizeName - _Ноль, который, как я понял подставляет в формулы для расчетов ноль, если элемент не имеет параметра длинна как такового (например отвод). Есть ли еще, чтонибудь, на что я должен обратить внимание? Формула до сих пор пашет не до конца: по сортаменту сортирует, длину труб обсчитывает, а вот количество фиттингов - нет, но сами фиттинги выдает корректно.
|
|
|
|
|
7.10.2010, 11:59
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
Цитата Формула до сих пор пашет не до конца: на всякий случай выложите пример!
|
|
|
|
|
7.10.2010, 12:31
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
RESULT = "--" Set acadApp = GetObject(,"AutoCAD.Application") Length=0 Count = 0 s="[Pipes_fittings_set:PartSizeName]" f="[Pipes_fittings_set:ObjectType]" h="[Pipes_fittings_set:Handle]" a="[Pipes_fittings_set:PartType]" k="[QUANTITY]" L=[Pipes_fittings_set:Length] For Each object In acadApp.ActiveDocument.ModelSpace If object.ObjectName = "AecbDbPipe" Then If object.Handle <> h Then If f = "Pipe" Then set dict=object.GetExtensionDictionary Set subdict = Dict.Item("AEC_PROPERTY_SETS") For Each sch_propset In subdict If sch_propset.Name = "Pipes_fittings_set" Then For Each sch_prop In sch_propset.Properties If sch_prop.Name = "PartSizeName" Then If sch_prop.Value= s Then Length = Length + object.Length End If End If Next End If Next End If If f="Pipe fitting" Then set dict=object.GetExtensionDictionary Set subdict = Dict.Item("AEC_PROPERTY_SETS") For Each sch_propset In subdict If sch_propset.Name = "Pipes_fittings_set" Then For Each sch_prop In sch_propset.Properties If sch_prop.Name = "PartType" Then If sch_prop.Value= a Then Count = Count+object.Count End If End If Next End If Next End If End If End If Next
If f = "Pipe" Then RESULT = Replace( Round((Length + L)/1000,2), ",", ",") End If
If f = "Pipe fitting" Then RESULT = Replace( Round((Count + k)), ",", ",") End If
|
|
|
|
|
7.10.2010, 14:24
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
Цитата(cdholder @ 7.10.2010, 13:31)  If f = "Pipe fitting" Then RESULT = Replace( Round((Count + k)), ",", ",") End If Я идиот... Просто клиника пипец... Pipe fitting меняем на Pipe Fitting и о чудо! Да... Мне тока в программеры и идти... Всем спасибо за конструктивную критику)))
|
|
|
|
|
7.10.2010, 16:37
|
Группа: Участники форума
Сообщений: 1000
Регистрация: 20.5.2008
Из: Москва
Пользователь №: 18901

|
|
|
|
|
|
8.10.2010, 8:30
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
Такой вот вопрос еще назрел... Кто-нибудь сталкивался с необходимостью учитывать позиции КИПиА? Даже проще... Есть ли у MEP какой-то инструмент обозначать бобышки? Потому что, я тут сегодня наткнулся на AutoCAD P&ID, а MEP, как известно, может выдавать разрез в виде P&ID схемы. Кроме того MEP - это же не в последнюю очередь и Plumbing и инструменты для выполнения простых тех. схем в нем имеются.
|
|
|
|
|
8.10.2010, 9:10
|
Группа: Участники форума
Сообщений: 1000
Регистрация: 20.5.2008
Из: Москва
Пользователь №: 18901

|
а что есть в AutoCAD P&ID того чего нет в Мепе?
|
|
|
|
|
8.10.2010, 9:22
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
Еще вот какая загвоздка... Где-то на 60-63 страницах обсуждалось, что такие свойства труб и фиттингов, как нормативный документ, единица изменения и материал удобнее хранить в свойствах стиля, а не в Property Definition Set. Возник вопрос как потом вызывать эти параметры в форме спецификации... В принципе я докопал до того момента, что в мой PDS под названием Pipes_fittings_set можно включить формульный параметр следующего вида:
If "PartType" = "pipe" then RESULT = "[Pipestyles:Нормативный_документ]"
Вопрос: я туда копаю, или это заведомо тупик?
|
|
|
|
|
8.10.2010, 9:22
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
Цитата Есть ли у MEP какой-то инструмент обозначать бобышки? бобышки? Что это такое?
|
|
|
|
|
8.10.2010, 9:37
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
Цитата(VitalyF @ 8.10.2010, 10:22)  бобышки? Что это такое? 25 мм отрезки трубы длиной 100-150 мм, заканчивающиеся пробкой, куда вставляются либо приборы полевого кипа, либо чувствительные элементы кипа. Грубо говоря дырки под градусники и манометры.
|
|
|
|
|
8.10.2010, 10:35
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
В общем все заработало... В приложении файл с формой под MEP 2011 Eng Смысл решения в следующем: 1) Для всех деталюшек (трубы, отводы, переходы, тройники) параметры материала, нормативного документа и единицы измерения задаются в качестве custom data в конструкторе элементов. 2) Воруется следующий код: Цитата(Nasandr @ 3.7.2009, 14:28)  ' Elem - массив значений масс для разных элементов Elem = Array ( "[PipeFittingElbowStyles:Масса]", "[PipeFittingTransitionStyles:Масса]", "[PipeFittingTeeStyles:Масса]")
' Подрядряд просматривваем значения в массиве For Each Val In Elem Val = Trim(Val) ' Удаление пробелов ' Если значение не равно "" (пусто) и не равно "?" If (Val <> "" AND Val<>"?") Then ' то переменной `r` дается текущее значение r = Val End If Next
RESULT = r В него забиваются нужные нам свойства стиля (это собственно и есть та самая custom data) Получается спецификация для изделий и материалов в том виде, в которой выпускает ее монтажный отдел.
|
|
|
|
|
8.10.2010, 10:58
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
>cdholderЦитата Грубо говоря дырки под градусники и манометры. совсем грубо...)) 1. Для всех MEP объектов есть возможность проставить номер позиции, 2. бобышки - реализованы в виде Mvparts-ов к-рые легко вставляются в трубы, 3. все Mvparts имеют кроме обычных видов(слева, справа, изометрия) ещё и схематик символ, что позволяет представить всё в виде схемы, поменяв экранные пресеты. если я правильно понял... про обозначения Цитата 2) Воруется следующий код: а зачем для "ед. изм." и "материал" понадобились формулы? Предлагаю ещё разобраться с номерами позиций! на палитрах этот инструмент называется Part Numbering Tag
Сообщение отредактировал VitalyF - 8.10.2010, 11:14
|
|
|
|
|
8.10.2010, 11:18
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
Цитата(VitalyF @ 8.10.2010, 11:58)  2. бобышки - реализованы в виде Mvparts-ов Уже реализованы или мне нужно их накомбиноровать ввиде "Placeholder"? Насчет их идентификации, я разберусь, раз уж с трубами разобрался. У меня в спецификации это все должно фигурировать так: 1) Бобышка БП01-М20х1,5-50УХЛ 2) Прокладка 27 3) Пробка П-М20х1,5 У3 4) Отборное устройство 1,6-70-ст.20-МП-(ВИЛН 491712002-01) Т.е. насколько я понимаю, мне нужно насоздавать базу всех этих элементов, в месте подключения к линии ставить отвод не тройник, а врезку. В общем давно есть задумки как облегчить себе жизнь с подобными мелочами и особенно - с опорами под трубопроводы. Додумаю - выложу)))
|
|
|
|
|
8.10.2010, 11:53
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
Цитата Уже реализованы или мне нужно их накомбиноровать ввиде "Placeholder"? К большому сожалению сборка не поддерживается! Т.е. невозможно как-то создать собранный девайс и потом его составные части расписать в таблице. (хотя мы всё равно пытаемся...) Цитата в месте подключения к линии ставить отвод не тройник, а врезку. да! Цитата ...есть задумки как облегчить себе жизнь ... с опорами под трубопроводы. А тут какие проблемы?
|
|
|
|
|
8.10.2010, 12:15
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
а зачем для "ед. изм." и "материал" понадобились формулы?
|
|
|
|
|
8.10.2010, 13:09
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
Цитата(VitalyF @ 8.10.2010, 13:15)  а зачем для "ед. изм." и "материал" понадобились формулы? Потому что я вот ВООБЩЕ не понял как вы это сделали классификацией. Я просто утонул в переходах между классификатором и PDS. Я не спорю, что с этим надо разбираться и как только я это сделаю - оптимизирую формулу))) По поводу сборки... Я не ленивый и у меня не такие объемы, чтобы не вбивать параметры ручками. На всю схему - 20 датчиков, по 3-4 позиции на каждый. Если я просто создам 3-х мерный блок (цилиндр - бобышка, маленький цилиндр - прокладка под пробку, большой цилиндр - пробка, куб - отборное устройство) задам этому блоку текстовые параметры с дефолтными значениями и буду выводить их таблицей группируя и суммируя одинаковые. Так пока... идея...
|
|
|
|
|
8.10.2010, 14:01
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
Цитата Потому что я вот ВООБЩЕ не понял как вы это сделали классификацией. Ваша формула хороша и наверняка её где-то можно использовать, но тут можно проще сделать - прямо в таблице Код If "[Pipes_fittings_set:ObjectType]" = "Pipe" Then RESULT = "м"Else RESULT ="шт." Цитата Если я просто создам 3-х мерный блок ... ... то это не будет MVparts и его невозможно буде вставить в трубу... тогда зачем он?
Сообщение отредактировал VitalyF - 8.10.2010, 14:02
|
|
|
|
|
8.10.2010, 14:15
|
Группа: Участники форума
Сообщений: 60
Регистрация: 20.9.2010
Пользователь №: 72822

|
Цитата(VitalyF @ 8.10.2010, 15:01)  Ваша формула хороша и наверняка её где-то можно использовать, но тут можно проще сделать - прямо в таблице Код If "[Pipes_fittings_set:ObjectType]" = "Pipe" Then RESULT = "м"Else RESULT ="шт." ... то это не будет MVparts и его невозможно буде вставить в трубу... тогда зачем он? Вы правы, я видимо думаю слишком много и учитываю невозможные варианты))) По поводу MVparts... Блок действительно не годится... Надо подумать... Все скатывается к необходимости выпадающего списка (это я так понимаю и есть тот самый multiselect)
|
|
|
|
|
8.10.2010, 14:41
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
Цитата Все скатывается к необходимости выпадающего списка не понял, расшифруйте пожалуйста. )) А если под таким углом посмотреть? Что имеем? Pipe, fitting и mvparts. У них есть наборы свойств, к-рые мы можем читать из таблицы, пробегая по всем объектам и свойствам. Причём таблицу Shedule table можно представить след. образом - строки - это объекты, а колонки это свойства. Вопрос: можно ли как-то извлечь из объекта свойства, образовав несколько дополнительных строк в таблице?
Сообщение отредактировал VitalyF - 8.10.2010, 14:57
|
|
|
|
|
8.10.2010, 15:04
|
Группа: Участники форума
Сообщений: 296
Регистрация: 30.5.2008
Пользователь №: 19258

|
И ещё хотел спросить, какие проблемы с опорами для труб?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvWgxEU
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvybpdW
Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума
|