Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ACAD MEP (ABS). С чем его едят и сьедобен ли он?
Диалог специалистов АВОК > ФАЙЛОТЕКА СПЕЦИАЛИСТА > Программы, расчеты
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35
pavelP2009
Получилось довольно просто: Отрисовываешь трубу требуемой длины. Щелкаешь на точке, куда надо вставить фитинг. Вводишь в КС _PipeFittingAdd далее @0,0, потом выбираешь нужное направление. Конечно муторно, но все же ускоряет) (макрос на кнопку - ^C^C_PipeFittingAdd;@0,0 - далее выбираем направление мышкой).
Конечно шиком было бы выбирать трубу, щелкать кнопкой и автоматом на концах вылезал бы фланец, но...
Еще есть желание получить такую штуку - выбираешь одну трубу или другой примитив MEP-a, потом другую. Пишешь расстояние между ними. И труба занимает соответствующее положение на заданной плоскости. А то я заметил, что довольно много времени занимает простановка ненужных размеров, которые впоследствии мной удаляются и только потом, вручную, тянешь трубу.
Sergio
Опять про спецификации.

Просьба к знатокам!

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

Set acadApp = GetObject(, "AutoCAD.Application")
On Error Resume Next
totLength = 0
n="[_ХОЛОД-ТРУБЫ:Номинальныйдиаметрпокаталогу]"
h="[_ХОЛОД-ТРУБЫ:Обработка]"
s=[_ХОЛОД-ТРУБЫ:Длина]

For Each object In acadApp.ActiveDocument.ModelSpace
If object.ObjectName = "AecbDbPipe" Then
If object.Handle <> h Then
set dict=object.GetExtensionDictionary
Set subdict = Dict.Item("AEC_PROPERTY_SETS")
For Each sch_propset In subdict
If sch_propset.Name = "_ХОЛОД-ТРУБЫ" Then
For Each sch_prop In sch_propset.Properties
If sch_prop.Name = "Номинальныйдиаметрпокаталогу" Then
If sch_prop.Value= n then
totLength = totLength + object.Length
End If
End If
Next
End If
Next

End If
End If
Next

RESULT = Round(totLength + s, 2)/1000


ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО

cdholder
Здравствуйте, уважаемые коллеги.

Я к своему удовольствию набрел на ваш кружок любителей параметрического проектирования и если эта теме еще не померла - у меня назрел материал по поводу параметрических вещей и с чем их едят. Вот тут: http://forum.dwg.ru/showthread.php?p=629717#post629717 начало моих записей по теме. Задавайте вопросы - вместе мы сила.

Есть у меня пара недопониманий с MEPом, которые я хотел бы устранить с вашей помощью.

1) Я создаю разрез 3-D модели но получающаяся плоская картика меня крайне не устраивает, т.к. в чистом виде relistic visual style, а мне надо wire frame - стобы труба под трубой пунктирчиком, все трубы с осями и отводы с обрезами труб сверху не залитым кружком, а по-людски.

2) Я прочел практически все, что нашел в ветке про спецификации и вот чего так и не понял... Мне в разделе ТМ нужно выводить ведомость трубопроводов - т.е. это не просто возможность выделять все технологические трубопроводы, а иметь возможность разбить все трубопроводы по продуктам и каждый продуктовый трубопровод по участкам. В принципе это должно решаться по средством ключей и ключевых слоев, но набор поставляемых ключей я перенастроить под себя не смог (видимо они hard coded). Как бы мне это объехать?
Sergio
Привет cdholder.

по вопросу 2

спецификация действительно в мепе недоразвитая, над такой проблемой бьюсь уже полгода. Есть информация что нада ждать SP1.
Ключи слоев легко настраиваюся. Формат-Диспетчер стилей-универс. объекты.
а затем в настройках трубопроводов - системы - назначаеш нужный тебе ключ
Sergio
Коллеги, такая хрень вышла в mep2011.

Тянул себе трубы, настройки трассировки и система в норме. а тут бац, и перестало вообще соединяться.

Т.е. например, при повороте трассы отвод ставит, а вот не соединяет (воскл знаки).

Было такое?
дмитрий01
cdholder по поводу, чтобы труба под трубой пунктирчиком ))) это можно сделать поменяв Экранное представление, я только так и делаю разрезы. Оси тоже настраиваются, а вот по вопросу вида обрезанной трубы сверху я не знаю...
cdholder
Цитата(Sergio @ 22.9.2010, 14:01) *
Привет cdholder.

по вопросу 2

спецификация действительно в мепе недоразвитая, над такой проблемой бьюсь уже полгода. Есть информация что нада ждать SP1.
Ключи слоев легко настраиваюся. Формат-Диспетчер стилей-универс. объекты.
а затем в настройках трубопроводов - системы - назначаеш нужный тебе ключ


Ненене. Давайте по-порядку и я заранее извиняюсь, у меня 11 английский МЕП.

Параметра трассировки трубопровода определяются параметрами трассировки, параметра отображения - стилем. Стиль ассоциируется с ключевым слоем. Ключевой слой имеет параметр Layer name, состоящий из 7 стрингов : Discipline, Element, Graphics, Level, Status, Scale Phase. Каждый из этих стрингов имеет некий предопределнный набор значений, закрепленный буквой или кодовым словом. Например мои технологические трубопроводвы будут Z-Pipng-G, т.е.Discipline: Z - general (nondisciplinary); Element: Piping; Graphics: G. И так будут маркироваться все трубы выполненные стилем Standart с ключевым слоем pipe.

Задача: Создать СВОЙ Layer Name, включающий 4-5 стригов: 1) ДУ, 2) Продукт 3) Участок 4) Подучасток (на всякий случай) 5) Подподучасток (на совсем крайняк).

Потом создается набор стилей по участкам трубы и класненько считается спецификация.



cdholder
Цитата(дмитрий01 @ 22.9.2010, 14:26) *
cdholder по поводу, чтобы труба под трубой пунктирчиком ))) это можно сделать поменяв Экранное представление, я только так и делаю разрезы. Оси тоже настраиваются, а вот по вопросу вида обрезанной трубы сверху я не знаю...


Эту проблему я решаю через назад. Я делаю, как правило 1-3 плана на разных отметках, пару видов/разрезов. Для этого я использую 3DCLIP и наношу размеры на Layout, а не на модели. Это - очень не технологично, особенно функции Verticalsection и Horizontalsection уже давно в MEP есть. Беда в том, что тот вид, который получается при генерации разреза - убогий и совсем не такой шоколадный как получается есть просто смотреть на чертеж сверху. Мне показалось, что проблема в том, что сам объект Section выполняется в стиле Relistic и если как-то поменять его на Wireframe.
avodo
2 cdholder
Последнее не очень понял, по оформлению чертежей треть темы исписано... если вам модель с заливкой надо - то это уже не чертежи, требований нет, как хотите так и лепите, тоже в теме обсуждалось.
По поводу ключей и слоев... какая то каша получилась. Если Вы говорите что ключевой слой имеет имя, то это самое имя может быть каким угодно! я например не разбиваю по Вашему принципу трубопроводы. Какой смысл ? я разбиваю по системам. Есть "подающий трубопровод Т1" (и соотв. ключ к нему)- значит там все и должно быть: трубы, отводы, переходы. Сделал только под арматуру свой слой. Такая классификация как "Z-Pipng-G" условная и может быть принята в каком то конкретном коллективе и не более того. Если я чего то не правильно понял - то приложите плиз скриншоты, о каких стрингах Вы говорите?
cdholder
Цитата(avodo @ 22.9.2010, 15:17) *
2 cdholder
Последнее не очень понял, по оформлению чертежей треть темы исписано... если вам модель с заливкой надо - то это уже не чертежи, требований нет, как хотите так и лепите, тоже в теме обсуждалось.
По поводу ключей и слоев... какая то каша получилась. Если Вы говорите что ключевой слой имеет имя, то это самое имя может быть каким угодно! я например не разбиваю по Вашему принципу трубопроводы. Какой смысл ? я разбиваю по системам. Есть "подающий трубопровод Т1" (и соотв. ключ к нему)- значит там все и должно быть: трубы, отводы, переходы. Сделал только под арматуру свой слой. Такая классификация как "Z-Pipng-G" условная и может быть принята в каком то конкретном коллективе и не более того. Если я чего то не правильно понял - то приложите плиз скриншоты, о каких стрингах Вы говорите?


По первому понкту - смотри картинку. Слева - оттиск трехмерной модели, полученный при помощи команды Verticalsection, справа - приближеный вьюпорт того же примерно места в ориентации top view. Хочется, чтобы у труб были штрихпунктирные оси, невидимы фланцы пунктирчиком и т.п. как справа, но делалось это командой Verticalsection. Я пробовал настройки стиля представления разрезов поменять - но честно скажу - не осилил.

По поводу ключей слоев... Может у вас кошерная версия MEP, но мне MEP при создании нового стиля системы трубопроводов на второй вкладке в графе layer key дает возможность выбрать из длинного, но строго ограниченного списка, который формируется поп правилам, описанным в предыдущем посте, самим программистами автокада и изменению не подлежит.

Если вы знаете как создать Стиль трубопроводов "Подающий трубопровод" с условным Обозначением "Т1" (это как раз просто) и с ключом слоя "Подающий трубопроводов" (вот чтобы именно так назывался а не pipe) - расскажите, пожалуйста, а еще лучше - в картинках.
Sergio
Присоединяюсь к Avodo, проще сделать к каждой системе свой ключ, а выстраивть, через стандаты слоев, затрата времени.

именованные слои не помогут конфигурировать спецификацию

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

Формат, диспетчер стилей...
cdholder
Цитата(Sergio @ 22.9.2010, 16:00) *
Присоединяюсь к Avodo, проще сделать к каждой системе свой ключ, а выстраивть, через стандаты слоев, затрата времени.

именованные слои не помогут конфигурировать спецификацию

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

Формат, диспетчер стилей...


А ну да, я опять думаю быстрее чем пишу... Новые ключевые слои создавать я умею, а вот то, про что я писал в самом первом своем посте

Вот на картинке все видно. Этот классификатор всплывает, если нажать на троеточие в графе Layer. Насколько мне объяснили на CADTUTOR этот классификатор специально заточен, чтобы относить элементы к нужным доменам. Мне в голову не приходило, что его можно просто игнорировать))) Я то хотел по-взрослому - свою систему классификации и свои пунктики.
avodo
Sergio Все так, все так ... rolleyes.gif опередили, спасибо за оперативность clap.gif
картинки тут: #377
дело было два года назад, в новых версиях могли появится нюансы smile.gif

а я да, совсем не успеваю....
так, ну хорошо есть такая возможность добавления информации к слоям... что она может дать? единственно кажется что в спецификациях проще будет объекты формулами определять... Это может быть интересно когда десятки людей работают в одном файле/проекте, а в реальности даже архитектуры трехмерной никто не дает. В общем хорошо что есть такая возможность, МЕР ими изобилует, только вот тяжеловато их все использовать даже когда реальный смысл в этом есть

В окне этих стрингов в графу элементов можно от руки вписывать значения... В общем мое виденье такое: эта кнопочка существует для систематизации в именовании слоев, которая действительно является условной в рамках коллектива. Как бы сильно не было желание насоздавать своих стрингов, все равно имя слоя может быть элементарно перебито вручную в диспетчере слоев в свойствах ключа слоя...
Sergio
Спрашивайте-Отвечаем!!!!

cdholder

есть варианты назначить систему слов
- просто ключ слоя
- через конфигуратор, по каждой буквочке, по системе, типу компонента и т.п.

Но! результат получите один, просто имя слоя которое вы хотите, думаю не тсмысла тратить время....


Ребят, вопрос был у меня выше, делаю проект разводки труб, и не стого ни сего перестали соединятся трубы, настройки трассировки в норме, все работало, был у кого клюк такой?
cdholder
Прежде всего - огромное спасибо за совет. Просто игнорировать классификатор - это тока на нашем форуме могли подсказать, иностранцы уперлись рогом. Как это будет выглядеть на практике:
Есть документ, выпускаемый нашими технологами, называющийся "перечень линий". Это в чистом виде список стилей плюс дополнительный набор параметров, который конфигурируется в стиле набора параметров для труб и фиттингов, что в последствии служит основой для спецификации. Завтра попробую закомбинировать спецификацию.

Цитата(Sergio @ 22.9.2010, 16:27) *
Ребят, вопрос был у меня выше, делаю проект разводки труб, и не стого ни сего перестали соединятся трубы, настройки трассировки в норме, все работало, был у кого клюк такой?


Глюк был. Были глюки и похуже с переколбашиванием ВООБЩЕ ВСЕЙ автоматической трассировки. Вылечилось просто - сохранил текущий проект, вообще закрыл MEP и пошел курить. Пришел - все в норме. Все-таки если можно - закиньте картинку. Есть еще пара мыслишек. Еще один глюк, но уже с моей стороны был, когда я наделал отечественных фиттингов и стал ставить их на нерусские трубы. При автоматической трассировке у MEP есть забавная, но вполне обоснованная особенность: он анализирует параметр "DN" соединения, к которому подсоединяется элемент и ищет среди элементов, указанных в правилах трассировки фиттинг с ТОЧНО таким же DN. Если не находит - происходит 3 вещи: орет и предлагает поставить нестандартный переход чтобы выйти на DN фиттинга; проваливает это проверку, оставляет трубу с вопросом и начинает новую линию; сходит с ума и предлает завязать трубы узлом (дословно). Если вылазит какая-нибудь ошибка - тоже прошу скрин - авось разберемся.
Sergio
Такое ощущение, что после того как в 2011 реализовали "мама-папа" в трубах и уклоны, то оттуда и растут ноги.

теперь то соединяет то не хочет.

"DN" - не путаеш с параметром "ND"???

cdholder
Цитата(Sergio @ 22.9.2010, 17:14) *
Такое ощущение, что после того как в 2011 реализовали "мама-папа" в трубах и уклоны, то оттуда и растут ноги.

теперь то соединяет то не хочет.

"DN" - не путаеш с параметром "ND"???


Да, именно ND - я машинально))). Значит на счет уклонов... Кjгда я трассирую свою трубу с уклоном, а ще ене дай боже там где-нибудь вертикальный тройник - мне MEP всегда предлагает сделать пользовательскую вставку, как это в реале при монтаже происходит. Обычно меня эти коллизии не парили (я только не давно честно говоря вернулся к MEP и еще не одной спецификации не выпустил, так что может и должны парить). Если парили - удалял весь участок и перерисовывал весь прогон в плане.
avodo
В продолжении темы о стрингах...
продолжаю не понимать о чем речь. Ну скажем нет в списке стрингов такого какой подойдет под мою трубу. Что ж мне теперь делать? если и есть такое желание видеть в имени слоя какую то систематизацию - так она все равно кем то задана! Та что задана программистами из Автодеска не очень подходит - так можно создать свою и вписать руками. Все равно это будет такая же локальная систематизация как и если бы удалось создать новый стринг. То есть, существует два пути решения, второй из которых не известен, но результат одинаковый с сомнительной полезностью... Никто не настаивает что дают правильный совет как создать стринг, здесь всего лишь приводятся варианты решения проблемы и обсуждение самой проблемы в процессе которого и проблема то отпадает...

Про технологов не понял тоже... Они в МЕР работают ? и что надо преследовать ? соответствие с документом "перечень линий" , автодесковские стринги или стили спецификаций? В любом случае при имеющейся систематизации забить названия в слои кажется проще руками...
Sergio
Стринги неудобно, попу режет, лучше семейные....

Забудьте про эти стринги и стандарты именования слоев..
Простой способ - назначить ключи в ручную.
cdholder
Цитата(avodo @ 22.9.2010, 17:33) *
В продолжении темы о стрингах...
продолжаю не понимать о чем речь. Ну скажем нет в списке стрингов такого какой подойдет под мою трубу. Что ж мне теперь делать? если и есть такое желание видеть в имени слоя какую то систематизацию - так она все равно кем то задана! Та что задана программистами из Автодеска не очень подходит - так можно создать свою и вписать руками. Все равно это будет такая же локальная систематизация как и если бы удалось создать новый стринг. То есть, существует два пути решения, второй из которых не известен, но результат одинаковый с сомнительной полезностью... Никто не настаивает что дают правильный совет как создать стринг, здесь всего лишь приводятся варианты решения проблемы и обсуждение самой проблемы в процессе которого и проблема то отпадает...

Про технологов не понял тоже... Они в МЕР работают ? и что надо преследовать ? соответствие с документом "перечень линий" , автодесковские стринги или стили спецификаций? В любом случае при имеющейся систематизации забить названия в слои кажется проще руками...

Я согласен с вами всецело насчет перебивания ключей вручную. Насчет стрингов (я не знаю нормального русского слова описывающего переменную пробегающую оперделенные заданные значения) поясняю:
Трубы в нашем технологическом отделе маркируют на тех схеме следующим образом: 300.М.02.1. Интуитивно понятно, что первая цифра (стринг или переменная как угодно) - Ду трубы, вторая - продукт (М - мазут, Дт - дизель и т.д.), третья - участок, четвертая подучасток в случае ответвления. Я хочу иметь возможность создать собственный массив ключей, где первый стлобец - все Ду, второй - мои продукты и т.д. Короче раз это не кастомайзится - пофигу. Для небольших установок - руками вбивать объективно быстрее, но когда у меня 8 листов линий, т.е. где-то 120-160 участков, становится трудновато)))
avodo
То есть у вас будет 8 листов слоев ? blink.gif Интересная оптимизация! я бы на Вашем месте сделал слои только для продуктов. По поводу того что в выносках не будет отображены подучастки - также можно вручную добавлять... Ну или да, создавайте 8 листов слоев для каждого продукта и участка. Для диаметров не стоит - просто незачем.
cdholder
Цитата(avodo @ 23.9.2010, 10:12) *
То есть у вас будет 8 листов слоев ? blink.gif Интересная оптимизация! я бы на Вашем месте сделал слои только для продуктов. По поводу того что в выносках не будет отображены подучастки - также можно вручную добавлять... Ну или да, создавайте 8 листов слоев для каждого продукта и участка. Для диаметров не стоит - просто незачем.

Варианта нет - технологи люди принципиальными и упаси меня господь лезть в их раздел. Меня вся эта ситуация напрягает только в плане автоматической генерации документов. По сути мы выдает 2 документа, дублирующих друг друга: BT (ведомость трубопроводов) и С (спецификация). ВТ описывает количество труб, фиттингов, опор, арматуры и приборов КИПиА на участке (скажем от насоса до резервуара). С - это сумма по всем трубам по всей арматуре - просто тупа количество, т.е. если сложить все длины труб, кол-во отводов и все все все из каждой ведомости мы получим С. Нужда в такой дифференциации возникает из-зи того, что на объекте может до 10 разных категорий трубопроводов. Именно поэтому я хотел все это каталогизировать, засистематизировать и при создании нового проекта использовать этот каталог для быстрой генерации ключевых слоев.
avodo
Ну Вы же можете ОДИН раз создать все ключи слоев так как надо... В последствии Вам уже не нужно создавать их снова - просто копируете в диспетчере стилей ВЕСЬ набор ключей в новый файл/проект. при необходимости можно отредактировать или создать новые необходимые ключи - хоть в исходнике, хоть в новом файле.
Sergio
ну если cdholder так хочет,

и я правильно понимаю вопрос, типа как это сделать, и какие кнопки нажимать то вот:

слои - стандарты именования слоев (левая верхняя сверху) - создать новый, ну и дерзай!

Толька должен сказать что прописывать там придется много.
а для начала советую всю структуру слоев сформировать в таблице (напр excel) и внимательно ее изучить.




а вообще я поступил как Avodo, сделал свои ключи слоев и копирую их из собственного шаблона.

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

мож какие файлы подменить типа dll и пр. в акаде?

просто этот глюк уже достал sad.gif
cdholder
Так с системами я разобрался - автоматически все обзывается, всем спасибо за советы.

Вопрос к людям, которые выдают документацию (судя по всему в разделе отопление) - как вы все в бумаге выводите? Конкретно: планы, виды, разрезы плоские с размерами и позициями оборудования. В принципе интуитивно понятно, что используется инструмент section (либо архитектурный, либо меповский), но вот как, к примеру, заставить на плане показывать позиции оборудования или эту часть все ручками делают. С размерами все понятно - на плоской картинке их ручками элементарно проставить.
Klaus
Кто нибудь замарачивался с марками в МЕПЕ если замарачивались подскажите как их делать, а то я что то не могу разобраться посмотрел на форуме об этом 2-а слова, но пример выставлен на 63 странице Vlad сделал спецификацию которая понимает поставленные на оборудовании марки. Подскажите пожалуйста как это делать.
cdholder
Если с английским проблем нет - то http://www.youtube.com/watch?v=QfgesH1dJr0...=1&index=11. Там вообще пара полезных оформительских вещей про MEP. Мне тоже скоро предстоит попробовать пообзывать свои задвижки, так что отпишусь что и как.
VitalyF
Привет всем! )))
Поздравляю с выходом Autocad MEP2011 eng SP1

http://usa.autodesk.com/adsk/servlet/ps/dl...;linkID=9240938
cdholder
Цитата(VitalyF @ 29.9.2010, 7:09) *
Привет всем! )))
Поздравляю с выходом Autocad MEP2011 eng SP1

http://usa.autodesk.com/adsk/servlet/ps/dl...;linkID=9240938


For certain custom multi-view parts with flange connector, the flange is not created as expected.

Вот это выбешивало вообще! Делаешь из солида масс-элемент, назначаешь коннекторы, а фланец не рисуется - и погнали ручками через конструктор фигачить(
Sergio
Спасибо Виталий за новость!!!

Возвращаюсь к наболевшему

Суммарная Спецификация труб, фильтрация по системе, слою или любому дргуому свойству

Прошу помочь!!!!
VitalyF
Цитата
Суммарная Спецификация труб, фильтрация по системе, слою или любому дргуому свойству

Вы ссылки смотрели, к-рые я давал? Там есть похожие примеры!

http://www.vitalyf.by.ru/Sample/
Sergio
Смотрел, переделал под свои наборы характеристик!

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

вы говорил что SP1 сможет решить эту проблему!
Sergio
Выкладываю проблемный файл

дмитрий01
У меня такая формула рабочая:

Set acApp = GetObject(, "AutoCAD.Application")
On Error Resume Next
totLength = 0
n="[ОбъектТрубы:Имяразмераэлемента]"
h="[ОбъектТрубы:Обработка]"
s= [ОбъектТрубы:Длина]

For Each object In acApp.ActiveDocument.ModelSpace
If object.ObjectName = "AecbDbPipe" Then
If object.Handle <> h Then
set dict=object.GetExtensionDictionary
Set subdict = Dict.Item("AEC_PROPERTY_SETS")
For Each sch_propset In subdict
If sch_propset.Name = "ОбъектТрубы" Then
For Each sch_prop In sch_propset.Properties
If sch_prop.Name = "Имяразмераэлемента" Then
If sch_prop.Value= n then
totLength = totLength + object.Length
End If
End If
Next
End If
Next

End If
End If
Next

RESULT = Round(totLength + s, 2)/1000

Кстати я у тебя не заметил графы Количество, вроде в свойствах она есть, а не видно. Без этой графы даже если формула правильно, то все-равно складывать не будет
VitalyF
Sergio
А мои файлы ты открывал? Они работают?
С RUSS версией были проблемы, формула не работала, хотя всё вроде бы было правильно!
Причина в том, что перевели на русский имена внутренних переменных MEP.
Рабочая ENG версия формулы может не работать в RUSS версии...!!!
cdholder
Цитата(VitalyF @ 1.10.2010, 18:16) *
Sergio
А мои файлы ты открывал? Они работают?
С RUSS версией были проблемы, формула не работала, хотя всё вроде бы было правильно!
Причина в том, что перевели на русский имена внутренних переменных MEP.
Рабочая ENG версия формулы может не работать в RUSS версии...!!!


Забавная вешь происходит у меня. Я скачал ваш пример, Виталий, и в вашем файле все работает чудесно, у меня в файле выдает список труб не суммируя. Понятно, что проблема в моей криворукости, вопрос на каком этапе? Parameter set я создал (не стал выпендриваться - взял ваше название), к трубам его прикрепил (к стати, как делать так, чтобы этот прикрепленный сет шел по всем трубам которые я рисую в один заход, а то как-то не солидно каждый раз все выделить и прикреплять), создал шаблон спецификации, в котором есть столбец типа формула, куда и записал вашу формулу. Вроде делать-то больше нечего, а не идеть(

P.S. Очень мне к стати интересно, что делает системная переменная Handle (Обработка).
VitalyF
cdholder
Цитата
Забавная вешь происходит у меня.
на версии...??? Rus, Eng?
Цитата
Parameter set я создал...

где пример?
Цитата
...как делать так, чтобы этот прикрепленный сет шел по всем трубам...

в свойствах таблицы поставить автообновление
Цитата
P.S. Очень мне к стати интересно, что делает системная переменная Handle (Обработка).


Handle (Обработка) - это перевод наших пакистанских братьев, на самом деле это уникальный идентификатор объекта. Более новый его аналог ObjectID
часто применяется в подобных скриптах для поиска нужного объекта даже через ссылку...
cdholder
Версия 2011 ENG

Parameter set выложу по-позже, может сам разберусь

Про handle - понятно, спасибо за разъяснение)))

Upd: Ага... Хитро ваша табличка работает))) Если в выходную спецификацию не включать колонку количество (Quantity) то таблица выходит в следующем виде: количество строк соответствует количеству участков трубопроводов; в графе "длина" - считается полная длина всех участков и дублируется в каждой строке. Если добавить колонку "количество" - все становится на свои места))) В принципе, колонку "количество" можно "hide", но мне скоро понадобится свобная спецификация на трубы и фиттинги, где мне вместо длины нужно количество)

Еще такой вопрос на ход ноги - что за язык используется в формулах? Сильно напопинает VB, если это свой язык - есть ли какие-нибудь книги с описанием синтаксиса?
дмитрий01
Цитата(cdholder @ 4.10.2010, 0:47) *
в графе "длина" - считается полная длина всех участков и дублируется в каждой строке. Если добавить колонку "количество" - все становится на свои места)))

Читаем внимательно ответы, я про это уже писал

Цитата(дмитрий01 @ 1.10.2010, 17:19) *
Кстати я у тебя не заметил графы Количество, вроде в свойствах она есть, а не видно. Без этой графы даже если формула правильно, то все-равно складывать не будет

cdholder
Цитата(дмитрий01 @ 4.10.2010, 9:57) *
Читаем внимательно ответы, я про это уже писал


Да да, я просто вчера полусонный уже тыкался))) Тем не менее вопрос про сводную спецификацию труб и фиттингов насущный.

К стати, в рамках оффтопа... Я тут на dwg.ru выложил кое-что из наработок: http://forum.dwg.ru/showthread.php?p=633957#post633957. Берите, тестите, давайте feedback)))
VitalyF
Цитата
...в графе "длина" - считается полная длина всех участков и дублируется в каждой строке.
- для данного стиля!
Есть и другие формулы, где объекты группируются по номеру позиции, т.е. объекты с одинаковой длиной, диаметром и проч. характеристиками.
А в данном случае нас интересовала общая длина объекта определённого стиля, диаметра, формы, материала или др. параметрам
Цитата
Еще такой вопрос на ход ноги - что за язык используется в формулах?
??? какие такие ход ноги?
это VBScript с AEC и MEP Object спецификой.

Цитата
но мне скоро понадобится свобная спецификация на трубы и фиттинги, где мне вместо длины нужно количество)

А уж как нам нужны были ещё 10-ть лет тому назад эти таблицы! )))
...но к сожалению длины и кол-ва невозможно подружить в одной таблице Schedule Table
Нужна таблица с возможностью multi total, этого хотят многие и давно. Даже мы года два тому назад постили такое пожелание.
Есть др. способ поиметь желаемое - добавить стилям!(не объектам) новое свойство - кол-во, длина ))
Но видимо есть какая-то причина, почему этого нет долгие годы, возможно мешает наличие других программных продуктов
предназначенных как раз для просчёта длин и кол-ва и всего остального. Покупайте и считайте на здоровье!!! )) я т.д.
Sergio
У меня MEP2011rus.

Та же история, у Виталия все работает, напмоню, суммарная длина труб одинакового диаметра и мтериала (неважно какой 2-й признак).

Я брал формулу из его спецификации и вставлял в свою. Естественно с переработко

так что проблема остается нерешенной.

Кстатти поставил SP1, а в в пункте "о программе" ниче такого не написано.
cdholder
Цитата(VitalyF @ 4.10.2010, 10:38) *
Есть др. способ поиметь желаемое - добавить стилям!(не объектам) новое свойство - кол-во, длина ))


Это имеется ввиду custom data для элементов каталога? А разве custom data может быть формулой?
Sergio
cdholder, ты хочеш в одном столбце и кол и длину?

общая спецификация, рабочая

RESULT = "--"
Set acadApp = GetObject(,"AutoCAD.Application")
Length=0
Count = 0
s="[_Х:Имяразмераэлемента]"
f="[_Х:Типобъекта]"
h="[_Х:Обработка]"
a="[_Х:Типэлемента]"
k="[КОЛИЧЕСТВО]"
L=[_Х:Длина]
For Each object In acadApp.ActiveDocument.ModelSpace
If object.ObjectName = "AecbDbPipe" Then
If object.Handle <> h Then
If f = "Труба" Then
set dict=object.GetExtensionDictionary
Set subdict = Dict.Item("AEC_PROPERTY_SETS")
For Each sch_propset In subdict
If sch_propset.Name = "_Х" Then
For Each sch_prop In sch_propset.Properties
If sch_prop.Name = "Имяразмераэлемента" Then
If sch_prop.Value= s Then
Length = Length + object.Length
End If
End If
Next
End If
Next
End If
If f="Фитинг трубопровода" Then
set dict=object.GetExtensionDictionary
Set subdict = Dict.Item("AEC_PROPERTY_SETS")
For Each sch_propset In subdict
If sch_propset.Name = "_Х" Then
For Each sch_prop In sch_propset.Properties
If sch_prop.Name = "Типэлемента" 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 = "Труба" Then RESULT = Replace( Round((Length + L)/1000,2), ".", ",") End If

If f = "Фитинг трубопровода" Then RESULT = Replace( Round((Count + k)), ".", ",") End If

If f = "Многовидовой элемент" Then RESULT = [КОЛИЧЕСТВО] End If
cdholder
ВО! Вот приятно общаться с человеком, который сразу выдает результат! Код не тестил, но у меня такой же точно алгоритм к голове зрел.

Я, к своему стыду, совсем никакой программист и программировал последний раз на паскале в школе( Есть ли какая-нибудь литература-то с чего начать. Не фундаментально с 3-х томника Кнута, а так - натаскаться писать неоптимизированный код. Или это как с художниками и математиками: ты либо родился художником или математиком или нет?)
Sergio
программирование закончилось в школе бейсиком)))

а здесь CTRL+C и CTRL+V


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

Странное поведение, то русский шрифт не видит то аглицкий blink.gif
cdholder
Цитата(Sergio @ 4.10.2010, 11:37) *
cdholder, ты хочеш в одном столбце и кол и длину?

общая спецификация, рабочая

Сочный код


Вот какая проблема у меня тут... Сумму труб считает и сортирует - эта часть работает чудесно. С фиттингами - беда. Количество, вроде, считает правильно, но выдавать отказывается. Выкладываю скрин с кодом ошибки.

Заодно выкладываю код:
RESULT = "--"
Set acadApp = GetObject(,"AutoCAD.Application")
On error resume next
Length = 0
Count = 0
s="[Piping:PartSizeName]"
f="[Piping:ObjectType]"
h="[Piping:Handle]"
a="[Piping:PartType]"
k="[QUANTITY]"
L=[Piping: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 = "Piping" 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 = "Piping" 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

If f = "Multiview part" Then RESULT = [QUANTITY] End If

Смысл в том, что по-видимому параметр "length" не считывается для фиттинга, так его, блин, и в наборе параметров нету((
Sergio
нет времени искать ошибку у тебя

поковыряй спецификацию в этом файле
VitalyF
Sergio
...молодец, работает!
Осталось номера позиций прикрутить. ))
Sergio
Позиции там так для приличия))) просто не стал изобретать велосипед и сделал гостовскую спецификацию.

А вот вопрос по поводу сумм труб по одинаковому диаметру и системе остается открытым bang.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.