|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
AutoCAD MEP 2012 RUS. Проблема со спецификациями труб и их фитингов
инженер-программист
Иваново
Регистрация: 12.02.2009
Сообщений: 41
|
||
Просмотров: 49555
|
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,083
|
На этом форуме выкладывали готовую таблицу.
http://forum.abok.ru/index.php?showt...660&start=1660 там 84 стр. Не поленитесь, обязательно найдёте, где-то ближе к середине! Цитата:
2- формулы написаны неправильно( т.е. Они допускают некоторые погрешности, но до определённого предела) |
|||
![]() |
|
||||
инженер-программист Регистрация: 12.02.2009
Иваново
Сообщений: 41
|
Цитата:
И там тоже под RUS версию, правда 2011. Что значит "погрешности до определенного предела?" |
|||
![]() |
|
||||
инженер-программист Регистрация: 12.02.2009
Иваново
Сообщений: 41
|
Прошу прощения, но файлы Пример1 и Пример2 выложенные мной ранее не совсем правильные.
Выкладываю нужные файлы: Пример3_1 и Пример4_1. Все тоже самое, как и в первом посте. Отдельно формула для подсчета штук и метров: RESULT = "0" On error resume next Set acadApp = GetObject(,"AutoCAD.Application") Length=0 Count = 0 s="[Z31_Specification:НаименованиеП]" f="[Z31_Specification:Типобъекта]" h="[Z31_Specification:Обработка]" a="[Z31_Specification:Типэлемента]" k="[КОЛИЧЕСТВО]" 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 = "Z31_Specification" 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 = "Z31_Specification" 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)/1000,2), ".", ",") End If If f = "Фитинг трубопровода" Then RESULT = Replace( Round((Count + k)), ".", ",") End If |
|||
![]() |
|
||||
инженер-программист Регистрация: 12.02.2009
Иваново
Сообщений: 41
|
Вот эта К меня тоже смущает, но ведь штуки считаются правильно.
Я бы так написал: If f = "Фитинг трубопровода" Then RESULT = k End If где k="[КОЛИЧЕСТВО]" так логичней сейчас попробую И все равно результат такой же: при открытии чертежа вылетает. И что еще заметил: вылетает только тогда, когда совсем MEP закрываю, а потом заново открываю. Ели просто чертеж закрыть - открыть, то все работает. Последний раз редактировалось lex0101, 12.01.2012 в 17:06. |
|||
![]() |
|
||||
инженер-программист Регистрация: 12.02.2009
Иваново
Сообщений: 41
|
В Count число и в k число, точнее в k значение из колонки "Кол." для данной строки.
Формула Код:
И еще странное заметил, если из этой формулы убрать строку определения переменной k="[КОЛИЧЕСТВО]", то еще и суммарная длина труб не получается, т.е. сколько труб, столько и записей в спецификации (но с длинами). Как этот MEP работает!!!))) Последний раз редактировалось Кулик Алексей aka kpblc, 13.01.2012 в 09:24. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
Попробуй заменить строку
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,083
|
k - здесь не нужен! Формула и так пробегает по всем объектам кроме первого If object.Handle <> h Then
вместо k здесь просто надо добавить единицу. Это во-первых, во-вторых не понятно как вообще всё это у вас работает, т.к. в начале цикла стоит проверка на тип объекта If object.ObjectName = "AecbDbPipe" Then В третьих Count = Count+object.Count - что это? ) Если вы хотите суммировать отводы, то д.б. Count = Count+1 Потом у вас путаница Тип объекта, Тип элемента! Вы ищете Труба If f = "Труба" Then Когда там Pipe Style На том сайте, что я показывал была где-то рабочая, готовая таблица, может быть её лучше найти?!!! PS Иногда таблица разворачивается по строкам, ( т.е. сколько труб, столько и записей в спецификации )в этом случае её надо просто обновить... PS Вот вам и ответ на то, почему сбоит! Кроме того 2012RUS как никогда неустойчиво работает с формулами!!! Еле-еле проект перетащил на неё с ENG версии и поклялся никогда больше этого не делать! )) Потерпите немного... Скоро всё это не нужно будет... Последний раз редактировалось VitalyAF, 13.01.2012 в 11:10. |
|||
![]() |
|
||||
инженер-программист Регистрация: 12.02.2009
Иваново
Сообщений: 41
|
Цитата:
Меняю используемый набор характеристик - применение его только к Стилю труб, соответственно все характеристики переделываю. Меняю формулу: Код:
1. Нет суммарной длины труб (3 трубы - 3 позиции), длина у каждой прописалась 2. После открытия чертежа Fatal Error ![]() 3. Пойду повешусь, ![]() Намыливая веревку))) я поискал: 1.http://forum.abok.ru/index.php?showtopic=8638&st=1500 посты №1513 и №1514 2.http://forum.dwg.ru/showthread.php?t=76463 последний пост При всем уважении к господину "cdholder", но у него в обеих темах (если я не слепой конечно) именно так, как у меня было вначале (ну за исключением "адаптированности" к каталогу) Что делать то(((((((?????????? хелп ми, плиз |
|||
![]() |
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,083
|
И да и нет!
Появилась возможность группировать строки таблицы по стилям и вставлять промежуточные итоги - субтотал. И, как я понял, скрывать промежуточные значения, оставляя только субтотал. Группировка работает, субтотал тоже, осталось скрыть промежуточные значения. Если их удастся скрыть, то значит решение есть, иначе снова половинчатое решение. Пробуйте! Но хотелось бы настоящего решения, типа Roombook, например MEPbook! )) PS Помните, "Сказка о золотой рыбке"? Последний раз редактировалось VitalyAF, 01.06.2012 в 08:07. |
|||
![]() |
|
||||
Регистрация: 15.05.2010
Сообщений: 2
|
Скачал пробник MEP 2013 и даже русифицировал. Опробовал массу вариантов, но получить приемлемый вид спецификации так и не удалось.
Мне интересно, бог с ней, с гостовской спецификацией, а как же господа забугорные инженеры подсчитывают длины труб по диаметрам? Вот я, скажем, черчу технологический трубопровод переменного диаметра и сложной конфигурации как в плане, так и по вертикали. Выделяю эту систему и по сути никакой полезной информации про нее получить не могу. Тут было бы полезно добавить хотя бы длину трубопровода по оси... Этот параметр, насколько я понимаю, вообще получить невозможно. В общем, много еще остается вопросов к разработчикам. |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать чтобы чертеж по умолчанию открывался в версии 2009 Autocad, а не 2012? | _olga_ | AutoCAD | 14 | 19.06.2013 18:48 |
Настройки AutoCAD 2011 в AutoCAD 2012 | Fedorino | AutoCAD | 1 | 09.11.2011 09:11 |
AutoCAD 2009: создание массива по траектории как AutoCAD 2012 | Dimitriy | AutoCAD | 8 | 05.11.2011 21:41 |
Проблема с загрузкой AutoCad 2005 | pers2 | AutoCAD | 9 | 20.08.2006 19:16 |
AutoCad 2004 RUS или AutoCad LT 2004 RUS | DEN | AutoCAD | 7 | 23.01.2004 22:23 |