Цитата
А вот вопрос по поводу сумм труб по одинаковому диаметру и системе остается открытым
что именно?
у меня на страничке разве не нашлось примера?
правда не для труб, а для профиля, сортировка по стилю и материалу
http://www.vitalyf.by.ru/Sample/MemLenByStyleMat.rarГде-то ещё было... не могу пока найти...
я скачал все ваши примеры, у вас рабоает, а каогда переделвыю формулу под себя, так перестает ссумировать, вот в чем дело!
2011 rus
В конце формулы попробуй точку на запятую заменить, как в твоих формулах!
Выложи файл...
Выкладываю файл с проблемой...
Параллельно, попробую сделать как советует Виталий
напомню, сделан в МЕП2011РУС
дмитрий01
6.10.2010, 13:08
может так?
Дима, а что ты изменил в формуле?
дмитрий01
6.10.2010, 14:15
Она так должна работать? Я просто долго понять не мог что ты хочешь? На самом деле взял "свою" формулу, взял твою, два значения поменял и все, даже сам не понял как это сделал. Причем два раза, я сделал сохранил и закрыл, а куда сохранил не посмотрел, искать не стал, скачал еще раз твой файл опять изменил, уже не смотря свою формулу и выложил сюда. Поменял три параметра, честно не скажу после какого она заработала ))) у тебя там первое что-то не то было я поменял это на ИМЯРАЗМЕРАЭЛЕМЕНТА, потом в теле кода это поменял, и _Трубы изменил на _ТРУБЫ.
А еще забыл, я убрал твой столбец Количество и добавил свой.
Спасибо!!! Работает!!
Необходимо было заменить имя размера элемента и "_Трубы" на "_ТРУБЫ"
Продолжение обсуждения..
Такая спецификация находится в другом dwg.
Как заставить ее считать трубы в другом документе правильно?
В коде есть - For Each object in acadApp.Active Document.ModelSpace....
Не будучи программистом понимаю что это поиск объектов в модели активного документа, наверно здесь нужно чтонить поменять, чтобы такая задумка сработала??
дмитрий01
6.10.2010, 15:24
Сделай новую спецификацию в другом файле dwg и не парься, тем более уже разобрался с формулой
Цитата
наверно здесь нужно чтонить поменять, чтобы такая задумка сработала??
...поменять задумку, )) есть примеры (могу поделиться) подобного доступа к объектам через ссылку, при наличии времени разбираюсь...
Главное отличие см. выше применяется не хандлер объекта а его 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
и т.д....)))
cdholder
7.10.2010, 11:39
Простите, что я опять со своими баранами... Табличку, которую любезно предоставил Sergio, я поковырял и вот кое что обнаружил... Тип данных для PartType, ObjectType, PartSizeName - _Ноль, который, как я понял подставляет в формулы для расчетов ноль, если элемент не имеет параметра длинна как такового (например отвод). Есть ли еще, чтонибудь, на что я должен обратить внимание? Формула до сих пор пашет не до конца: по сортаменту сортирует, длину труб обсчитывает, а вот количество фиттингов - нет, но сами фиттинги выдает корректно.
Цитата
Формула до сих пор пашет не до конца:
на всякий случай выложите пример!
cdholder
7.10.2010, 12:31
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
cdholder
7.10.2010, 14:24
Цитата(cdholder @ 7.10.2010, 13:31)

If f = "Pipe fitting" Then RESULT = Replace( Round((Count + k)), ",", ",") End If
Я идиот... Просто клиника пипец... Pipe fitting меняем на Pipe
Fitting и о чудо! Да... Мне тока в программеры и идти...
Всем спасибо за конструктивную критику)))
дмитрий01
7.10.2010, 16:37
Такой вот вопрос еще назрел... Кто-нибудь сталкивался с необходимостью учитывать позиции КИПиА? Даже проще... Есть ли у MEP какой-то инструмент обозначать бобышки? Потому что, я тут сегодня наткнулся на AutoCAD P&ID, а MEP, как известно, может выдавать разрез в виде P&ID схемы. Кроме того MEP - это же не в последнюю очередь и Plumbing и инструменты для выполнения простых тех. схем в нем имеются.
дмитрий01
8.10.2010, 9:10
а что есть в AutoCAD P&ID того чего нет в Мепе?
Еще вот какая загвоздка... Где-то на 60-63 страницах обсуждалось, что такие свойства труб и фиттингов, как нормативный документ, единица изменения и материал удобнее хранить в свойствах стиля, а не в Property Definition Set. Возник вопрос как потом вызывать эти параметры в форме спецификации... В принципе я докопал до того момента, что в мой PDS под названием Pipes_fittings_set можно включить формульный параметр следующего вида:
If "PartType" = "pipe" then RESULT = "[Pipestyles:Нормативный_документ]"
Вопрос: я туда копаю, или это заведомо тупик?
Цитата
Есть ли у MEP какой-то инструмент обозначать бобышки?
бобышки? Что это такое?
Цитата(VitalyF @ 8.10.2010, 10:22)

бобышки? Что это такое?
25 мм отрезки трубы длиной 100-150 мм, заканчивающиеся пробкой, куда вставляются либо приборы полевого кипа, либо чувствительные элементы кипа. Грубо говоря дырки под градусники и манометры.
cdholder
8.10.2010, 10:35
В общем все заработало...
В приложении файл с формой под 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)
Получается спецификация для изделий и материалов в том виде, в которой выпускает ее монтажный отдел.
>cdholderЦитата
Грубо говоря дырки под градусники и манометры.
совсем грубо...))
1. Для всех MEP объектов есть возможность проставить номер позиции,
2. бобышки - реализованы в виде Mvparts-ов к-рые легко вставляются в трубы,
3. все Mvparts имеют кроме обычных видов(слева, справа, изометрия) ещё и схематик символ, что позволяет представить всё в виде схемы, поменяв экранные пресеты.
если я правильно понял... про обозначения
Цитата
2) Воруется следующий код:
а зачем для "ед. изм." и "материал" понадобились формулы?
Предлагаю ещё разобраться с номерами позиций!
на палитрах этот инструмент называется
Part Numbering Tag
cdholder
8.10.2010, 11:18
Цитата(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)
Т.е. насколько я понимаю, мне нужно насоздавать базу всех этих элементов, в месте подключения к линии ставить отвод не тройник, а врезку.
В общем давно есть задумки как облегчить себе жизнь с подобными мелочами и особенно - с опорами под трубопроводы. Додумаю - выложу)))
Цитата
Уже реализованы или мне нужно их накомбиноровать ввиде "Placeholder"?
К большому сожалению сборка не поддерживается!
Т.е. невозможно как-то создать собранный девайс и потом его составные части расписать в таблице. (хотя мы всё равно пытаемся...)
Цитата
в месте подключения к линии ставить отвод не тройник, а врезку.
да!
Цитата
...есть задумки как облегчить себе жизнь ... с опорами под трубопроводы.
А тут какие проблемы?
а зачем для "ед. изм." и "материал" понадобились формулы?
cdholder
8.10.2010, 13:09
Цитата(VitalyF @ 8.10.2010, 13:15)

а зачем для "ед. изм." и "материал" понадобились формулы?
Потому что я вот ВООБЩЕ не понял как вы это сделали классификацией. Я просто утонул в переходах между классификатором и PDS. Я не спорю, что с этим надо разбираться и как только я это сделаю - оптимизирую формулу)))
По поводу сборки... Я не ленивый и у меня не такие объемы, чтобы не вбивать параметры ручками. На всю схему - 20 датчиков, по 3-4 позиции на каждый. Если я просто создам 3-х мерный блок (цилиндр - бобышка, маленький цилиндр - прокладка под пробку, большой цилиндр - пробка, куб - отборное устройство) задам этому блоку текстовые параметры с дефолтными значениями и буду выводить их таблицей группируя и суммируя одинаковые.
Так пока... идея...
Цитата
Потому что я вот ВООБЩЕ не понял как вы это сделали классификацией.
Ваша формула хороша и наверняка её где-то можно использовать, но тут можно проще сделать - прямо в таблице
Код
If "[Pipes_fittings_set:ObjectType]" = "Pipe" Then RESULT = "м"Else RESULT ="шт."
Цитата
Если я просто создам 3-х мерный блок ...
... то это не будет MVparts и его невозможно буде вставить в трубу... тогда зачем он?
cdholder
8.10.2010, 14:15
Цитата(VitalyF @ 8.10.2010, 15:01)

Ваша формула хороша и наверняка её где-то можно использовать, но тут можно проще сделать - прямо в таблице
Код
If "[Pipes_fittings_set:ObjectType]" = "Pipe" Then RESULT = "м"Else RESULT ="шт."
... то это не будет MVparts и его невозможно буде вставить в трубу... тогда зачем он?
Вы правы, я видимо думаю слишком много и учитываю невозможные варианты)))
По поводу MVparts... Блок действительно не годится... Надо подумать... Все скатывается к необходимости выпадающего списка (это я так понимаю и есть тот самый multiselect)
Цитата
Все скатывается к необходимости выпадающего списка
не понял, расшифруйте пожалуйста. ))
А если под таким углом посмотреть?
Что имеем? Pipe, fitting и mvparts. У них есть наборы свойств, к-рые мы можем читать из таблицы, пробегая по всем объектам и свойствам.
Причём таблицу Shedule table можно представить след. образом - строки - это объекты, а колонки это свойства.
Вопрос: можно ли как-то извлечь из объекта свойства, образовав несколько дополнительных строк в таблице?
И ещё хотел спросить, какие проблемы с опорами для труб?
cdholder
8.10.2010, 15:15
Цитата(VitalyF @ 8.10.2010, 16:04)

И ещё хотел спросить, какие проблемы с опорами для труб?
Проблема в том, что вы научили меня пользоваться инструментом "подвеска" еще где-то полгода назад на dwg.ru, но мне они не подходят... Возьмем корпусно-приварную опору. Для нее конструктивно нет такой вещи как hanger channel и hanger rod, можно посмотреть на
http://www.ural-tp.ru/?id_page=opory. Ну то есть, можно попробовать закомбинировать какой-нибудь параллелипипед и как-то сделать hanger rod нулевой высоты, но я пока забросил это дело...
так что за идея с выпадающими списками?
cdholder
8.10.2010, 15:20
Цитата(VitalyF @ 8.10.2010, 16:17)

так что за идея с выпадающими списками?
Да есть такой тип данных в парметрических элементах под названием List. Как им пользоваться я не знаю, но смысл в том, что в строке типоразмера он представляется выпадающим списком. Как-то так...
Цитата(cdholder @ 8.10.2010, 16:15)

Проблема в том, что вы научили меня пользоваться инструментом "подвеска" еще где-то полгода назад на dwg.ru, но мне они не подходят... Возьмем корпусно-приварную опору. Для нее конструктивно нет такой вещи как hanger channel и hanger rod, можно посмотреть на
http://www.ural-tp.ru/?id_page=opory. Ну то есть, можно попробовать закомбинировать какой-нибудь параллелипипед и как-то сделать hanger rod нулевой высоты, но я пока забросил это дело...
Мы с опорами поступили следующим образом. Сделали MVParts, занесли в каталоги, добавили необходимые свойства. В спецификацию извлекаем необходимые свойства. Дорабатываем спецификацию в Excel. МЕР2011RUS
Добрый день,
перечитал практически все сообщения форума,
а также руководство и учебгые пособия.
Работаю в МЕП 2011 рус. периодически -
не совсем мой профиль, но приходится сейчас делать работу
за всех.
Проблема в экранных представлениях - никак не могу добиться
нормального - для печати вывода чертежа на экране. Разрез делать не хочеться.
Вроде скрытых линий не видно, но вот так называемые соединения
на тройниках и отводах видны (они у меня клееные из ПВХ).
Вот единственное что добился пока - убрал в экранном компоненте все линии - скрыл всё, кроме изоляции.
А потом добавил толщину изоляции - 1.
Но мне кажется это всё это как-то неправильно.
Есть ли более верный путь?
А вот на виде сверху у овтодов и тройников - дополнительных линий, соеденителей, нет.
>zyxer
Для правильного отображения нужно выполнить несколько условий:
1. использовать соответствующий шаблон MEP
2. загрузить workspace MEP design!
3. в setup (настройках) MEP Display Control при необходимости установить галки
Да нет, не получается, я уже всё перепробовал. Видимо отвод клеенный состоит из трёх частей - дуги самого овтода (контур) и двух прямоугольников по краям (соеденители), ширина которых задаётся. Я создал базу из стандартных клееных отводов под производителя с нужными размерами. Всё бы ничего, но при подоготвке чертежа эти прямоугольные соеденители остаются, т.е. отвод в видах (кроме вида сверху План) не цельный получается а с линиями по краям, что есть не правильно.
Цитата(cdholder @ 8.10.2010, 15:15)

Проблема в том, что вы научили меня пользоваться инструментом "подвеска" еще где-то полгода назад на dwg.ru, но мне они не подходят... Возьмем корпусно-приварную опору. Для нее конструктивно нет такой вещи как hanger channel и hanger rod, можно посмотреть на
http://www.ural-tp.ru/?id_page=opory. Ну то есть, можно попробовать закомбинировать какой-нибудь параллелипипед и как-то сделать hanger rod нулевой высоты, но я пока забросил это дело...
Да я тоже мучался, чтобы убрать шпильки и оставить одну.
А Вы поробуйте колонны ставить, там можно задавать различные виды колонны. Они вертикально пойдут под трубопроводом. А чтобы удобней было вдоль трубопровода ставить можно сетку положить под него.
VitalyF
11.10.2010, 10:21
Цитата
Да нет, не получается, я уже всё перепробовал.
так пример выложите, что там можно на пальцах объяснить?
Господа, мое почтение!
Вопрос немного не в тему, касательно архитектруры. Отверстия в стенах делатоь легко. А вот как сделать ответстие в полу, приямок, штробу????
Цитата(VitalyF @ 11.10.2010, 10:21)

так пример выложите, что там можно на пальцах объяснить?
В прилагаемом файле пример. Проблема в изображении отводов и тройников.
VitalyF
11.10.2010, 12:16
где тут что не так?
На виде сверху (режим План на видовых экранах) всё как раз подходит,
Но на боковых проекциях отводы не цельные получаются. Вот если бы так на боковых.
VitalyF
11.10.2010, 13:44
Цитата
Вот если бы так на боковых.
На боковых проекциях этих представлений нет!
Нужно обязательно строить проекции!!!
см. >>>>>>>
cdholder
11.10.2010, 14:26
Вопрос на ход ноги... Вот у меня есть отрисованная обвязка с system label и position tag (для труб и арматуры соответственно). Есть ли возможность сделать такое представление разреза, чтобы были видны все эти штучки. Или по сути создавая каждый раз новый разрез я обзывать и образмеривать (про это - черт с ним) должен по новой?
VitalyF
11.10.2010, 14:59
cdholder
11.10.2010, 15:47
Цитата(VitalyF @ 11.10.2010, 15:59)

Виталий! Да что же вы за человек-то такой волшебный! Самая геморная вещь заработала!!! СПА-СИ-БО!!!
Здравствуйте!!!!!! Решил создать метку для трубопроводов создал ее, но получилось чуть чуть не то )))) Я хотел создать метку которая бы мне автоматически ставила диаметр трубопровода т.е Ду50 например, а получилось что она ставит Ду 50 мм труба водогазопроводная, если кто-либо сталкивался с этой проблемой подскажите как мне избавиться от этой надписи "мм труба водогазопроводная". Для понимания проблемы прикрепляю пример
cdholder
11.10.2010, 16:36
Цитата(Klaus @ 11.10.2010, 17:11)

Здравствуйте!!!!!! Решил создать метку для трубопроводов создал ее, но получилось чуть чуть не то )))) Я хотел создать метку которая бы мне автоматически ставила диаметр трубопровода т.е Ду50 например, а получилось что она ставит Ду 50 мм труба водогазопроводная, если кто-либо сталкивался с этой проблемой подскажите как мне избавиться от этой надписи "мм труба водогазопроводная". Для понимания проблемы прикрепляю пример
Честно говоря на ум приходит следующее - нужно покопаться как работает формульный параметр "Метка"... Он состоит из 2-х параметров: текстового "Ду" (вашего) и "номера по каталогу" (системный). Вот ы этом номере по каталогу и есть корень проблемы. Для того чтобы его изменить (ну вот лично я бы так делал) надо зайти в конструктор элементов и поправить там название ручками, а именно. Слово "водогазопроводная" сделать custom parameter. В названии трубы оставить только значение Dn, максимум Dn x толщина стенки (либо руками вбивать, либо еще один custom paramater сделать). Тогда "номер по каталогу" станет просто 50 в вашем примере. И если вам захочется указать тип трубы, формула для метки будет выглядеть так: [Ду]-[CatalogNominalSize]-[Custom1].
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.