|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
14.12.2011, 09:45 | #1 | |
AutoCad MEP 2012 Rus, как настроить отображение трубопровода в плане?
Проектировщик
Регистрация: 06.07.2011
Сообщений: 29
|
||
Просмотров: 29926
|
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,224
|
Цитата:
Проверьте отображение осевой в новом файле, созданного из стандартного шаблона, если всё нормально, то настройте у себя так же в рабочем файле. Настроить масштаб линии можно в стиле объекта (трубы, воздуховода и т.д.) или в палитре свойств объекта. Только всегда нужно помнить одно правило! Правило приоритетов. Оно заключается в том, чтобы гибко настраивать отображение объектов тремя способами. 1. Из дисплейных настроек - самый низкий приоритет, для всех объектов данного типа, например для всех труб. 2. Из стиля объекта - средний приоритет, для всех объектов данного стиля 3. Из свойств объекта - высший приоритет, только для данного объекта Исходя из этого правила настраивайте шаблон. Ps Тогда получается настройка отображения всех труб из менеджера экранных представлений, если какой-то отдельный стиль трубы нуждается в особых настройках, то редактируем стиль этой трубы, а если в этом стиле есть какая-то особая труба, которая бы отображалась не так как остальные трубы данного стиля и вообще все трубы, то настраиваем дисплейные настройки этого объекта! Т.е. в самом простом случае достаточно настроить по п.1 Это правило распространяется для всех MEP и АА объектов! Последний раз редактировалось VitalyAF, 14.12.2011 в 11:15. |
|||
|
||||
Регистрация: 27.05.2009
Сообщений: 135
|
Вместо тысячи слов и 6 месяцев работы... Кушайте на здоровье, а то я так думаю, я никогда не сяду написать инструкцию как это все с самого начала делать. В темплейте содержатся все наработки по автоматическим спецификациям, которые мы с Уважаемым Виталием Филином в муках рожали на АВОКе.
Хозяйке на заметку: отображение линий в section plane управляется параметром масштаба аннотации, но нужно регенерировать разрез. |
|||
|
||||
Регистрация: 27.05.2009
Сообщений: 135
|
Если из далека заходить - залезайте в Display manager и разбирайтесь, какие лампочки для какого представления включить. Если короче - используйте, таки, мой шаблон и сэкономите себе полгода исследований, я же не зря его всем дарю. Там уже все огонь в плане труб.
|
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,224
|
>cdholder
Здравствуйте! Посмотрел таблицы и формулы, что вы предлагаете в шаблоне и хочу сделать несколько замечаний. 1. используйте стандартные имена свойств на соответствующих языках, это упрощает их адаптацию к проектам и способствует распространению 2.чтобы посчитать количество не нужна формула, а для того чтобы проставить ед.изм. достаточно такого простого выражения > Цитата:
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 if f = "Multi-View Part" Then RESULT = "[QUANTITY]" end if Set app = GetObject (,"AutoCAD.Application") On Error Resume Next RESULT = "--" Set baseApp = app.GetInterfaceObject("AecX.AecArchBaseApplication.7.0") Set ActiveDoc =baseApp.ActiveDocument Set ObjectCollection = ActiveDoc.ModelSpace totLength = 0 n = "[ОбъектТруба:Имяразмераэлемента]" f = "[ОбъектТруба:Типобъекта]" s = "[ОбъектТруба:Система]" q = "[QUANTITY]" For Each Object In ObjectCollection If Object.ObjectName = "AecbDbPipe" Then If Object.SizeName = n Then totLength = totLength + Object.Length End if End If Next If f = "Труба" Then RESULT = Replace( Round((totLength)/1000,2), ",", ",") End If If f = "Фитинг трубопровода" Then RESULT = q End If PS если есть интерес, то могу предложить несколько задачек, позволяющих продвинуть скрипт на более высокий уровень. Мой 2013MEP оказался совсем не готов к этому, но он мне нужен по работе. Последний раз редактировалось VitalyAF, 02.07.2012 в 13:17. |
|||
|
||||
Регистрация: 27.05.2009
Сообщений: 135
|
Виталий Александрович, я если честно, давно забил на оптимизацию MEP - познаю пока Plant 3d, т.к. на него выделили финансирование. Так чисто по старой памяти иногда чего скажу. Насчет того, что obeject.arx язык гибкий - это конечно очень хорошо, в планте пригодится. Так вот и не могу решить вопрос с курсами по Autocad.NET и jbject.arx, может, к стати, подскажет кто в Питере такие?
|
|||
|
||||
Регистрация: 27.05.2009
Сообщений: 135
|
Ну тогда возвращаюсь к старому вопросу - где вы так здорово набрались знаний какие словари, какие объекты и какие методы использовать? Подозреваю, что вас есть хороший друг-программист, а вы, соответственно, хорошо можете поставить задачу и вместе у вас рождается красивый простой код. Дело не в професии - просто нужно знать какие переменные и как объявлять, чтобы все работало. Вот для этих знаний нужны курсы. Или просто повнимательнее прочитать object.arx SDK с официального сайта?
|
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,224
|
Цитата:
Видать моей заднице уже много лет, вот и всё...)) В отличие от Revit по MEP действительно тяжело что либо найти, закрыто по каким-то причинам. Курсы не помогут, они для приложений, а здесь всего лишь скрипт. Задачи возникают по ходу работы над проектом. Знание имён переменных без механизма их взаимодействия тоже ничего не даёт. Например, Object.SizeName - [Имяразмераэлемента] для трубы и Object.FittingSizeName - для отвода. Зная это можно обойтись без чтения свойств, сократив формулу. По аналогии Object.PipeSystemDef уже не хочет работать. Возможно в 2012-ой версии будет, попробуйте. |
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,224
|
Есть хороший повод продолжить тему,
т.к. удалось найти новые методы VBScript применяемые в формулах, например таблица сортирует трубы и отводы по 3-м признакам: 1. - имяразмераэлемента 2. - система 3. - толщина изоляции ФИТИНГИ_ТРУБЫ_ДЛЯ_MEP2014_RUS.DWG Фитинги_Трубы_для_MEP2013_RUS.dwg Фитинги_Трубы_для_MEP2012_RUS.dwg Для MEP2012RUS в формуле нужно изменить в строке Set baseApp = app.GetInterfaceObject("AecX.AecArchBaseApplication.7.0") 7.0 на 6.7 для других версий соответственно на 5.0, 4.7, 4.5 Для внесения изменений в работающую формулу нужно открыть файл не как обычно, а из менеджера стилей, в этом случае формула не активна!!! Вот сама формула Код:
В итоге: Заменён файл и текст формулы Проверено. Work-ает! У кого есть вопросы, задавайте! )) Последний раз редактировалось VitalyAF, 18.11.2013 в 11:34. |
|||
|
||||
Регистрация: 27.05.2009
Сообщений: 135
|
Уважаемый Виталий Александрович, скажите, пожалуйста, а вот эта строчка кода что делает?
Ps = Object.SystemName Ps = Split(Ps," (",-1,1)(0) И можно ли как то в этом сегменте Set baseApp = app.GetInterfaceObject("AecX.AecArchBaseApplication.7.0") Set ActiveDoc =baseApp.ActiveDocument Set ObjectCollection = ActiveDoc.ModelSpace Object collection задать не для ActiveDocunemt, а для конкретных чертежей внутри диспетчера проекта? А то я то в свое время с чем столкнулся: нужна спецификация в отдельном файле на один конкретный construct и на определенные указанные construct или element. Хочется, чтобы графика отдельно, спецификации отдельно как в Планте... Может, с другой стороны, очень уж много хочется?))) |
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,224
|
Здравствуйте!
Цитата:
Например Ps = Object.SystemName RESULT = Ps - даёт System + (Abbriviation) например CHILLED WATER - SUPPLY (CHS) Цитата:
Вынести таблицы на лист можно и др. стандартным способом... PS можно добавить п.6 Цитата:
PS Есть команды позволяющие выбирать объекты не в текущем чертеже (в ссылках), только не получается сделать это в цикле, поиск решения в сети тоже не увенчался успехом. Последний раз редактировалось VitalyAF, 15.08.2012 в 09:33. |
|||
|
||||
инженер Регистрация: 06.11.2012
Санкт-Петербург
Сообщений: 52
|
Вопрос такой же, как у alexius_sev: как отобразить осевые линии на разрезах при использовании выложенного cdholder-ом шаблоном? Может, какое-то конкретное укранное представление при формировании разреза использовать надо?
|
|||
|
||||
Регистрация: 27.05.2009
Сообщений: 135
|
ВООООООООООООТ!!! Вот тот кто ответит на этот вопрос сразу получит +1000 в карму и переродится коровой без разговоров и дополнительных условий...
|
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,224
|
Цитата:
DispCenHid_Lines.swf Последний раз редактировалось VitalyAF, 06.11.2012 в 15:39. |
|||
|
||||
инженер Регистрация: 06.11.2012
Санкт-Петербург
Сообщений: 52
|
VitalyAF, спасибо!
Оказывается, что при формировании разреза мною неправильно был выбран тип экранного представления. При том же, что у Вас в ролике, оси отображаются! Ура! А как сделать спецификацию? иду на вкладку Аннотации-Спецификации-Спецификация труб и фитингов. Пишет, "не удалось найти инструмент в данном рабочем пространстве". У меня выбрано Трубопроводы. В чем моя ошибка?? |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Видеоуроки AutoCAD | kosmax | AutoCAD | 173 | 17.02.2017 15:08 |
Отображение осей трубопроводов на разрезах AutoCAD MEP 2009 | mishad | Вертикальные решения на базе AutoCAD | 2 | 10.06.2009 11:32 |
AutoCAD MEP 2009RUS – некорректное отображение переходов в горизонтальном сечении | Nasandr | Вертикальные решения на базе AutoCAD | 2 | 14.05.2009 19:09 |
AutoCAD 2000 rus и Windows XP | Briz06 | AutoCAD | 12 | 06.11.2006 10:40 |
AutoCad 2004 RUS или AutoCad LT 2004 RUS | DEN | AutoCAD | 7 | 23.01.2004 22:23 |