Re: ADT, MEP Общая Длина элементов по стилям
PS Благодаря формуле я могу применить для всех устройств одну марку!
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Autodesk → Architecture → ADT, MEP Общая Длина элементов по стилям
PS Благодаря формуле я могу применить для всех устройств одну марку!
Возможное появление (2), если выбрать элемент Двутавр 10 - нажать пр.кн.мыши (конт.меню) - выбрать "Копировать стиль элемента и назначить..." - ОК!, то получится стиль с именем Двутавр 10(2).
Значит, имя стиля не надо использовать.
Виталий, подскажи как правильно сделать, у меня не работает.
Set acadApp = GetObject(, "AutoCAD.Application")
On Error Resume Next
totLength = 0
temp = 0
n="[НесущийМеталл:Имя_Профиля]"
m="[Марка_Стали]"
w="[Марка_Арматуры]"
e="[Позиция2]"
r="[НесущийМеталл:Примечанияизстиля]"
h="[Handle]"
s= [Length]
For Each object In acadApp.ActiveDocument.ModelSpace
If object.ObjectName = "AecsDbMember" Then
temp = 0
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 = "MemObjLenth" Then
For Each sch_prop In sch_propset.Properties
If sch_prop.Name = "НесущийМеталл:Имя_Профиля" Then
If sch_prop.Value= n then
temp=1
End If
End If
If sch_prop.Name = "Марка_Стали" Then
If sch_prop.Value = m Then
temp=1
End If
End If
If sch_prop.Name = "Марка_Арматуры" Then
If sch_prop.Value = w Then
temp=1
End If
End If
If sch_prop.Name = "Позиция2" Then
If sch_prop.Value = e Then
temp=1
End If
End If
If sch_prop.Name = "НесущийМеталл:Примечанияизстиля" Then
If sch_prop.Value = r Then
If temp=1 Then
totLength = totLength + object.Length
End If
End If
End If
Next
End If
Next
End If
End If
Next
RESULT = Round(totLength + s, 1)
А формулой (Select Case "Класс"...), можно собрать характеристики, созданные для: "Несущего элемента", "Стили перекрытий", "Описание для многовидовых блоков" в одну таблицу?
Хочу все свести в такую табл.
Поз.|Обозначение|Наименование|Кол.|Масса |Примеч
____|___________|____________|____|ед.кг.|______
"Несущего элемента" - делаю профили (Арматуру, Двутавры, Уголки и т.д.)
"Стили перекрытий" - делаю бетон
"Описание для многовидовых блоков" - делаю закладные.
Получается, что надо из этих стилей заполнить одну спецификацию.
Я так подозреваю, что можно!
http://narod.ru/disk/5071356000/%D0%9F% … 0.dwg.html
можно собрать характеристики, созданные для: "Несущего элемента", "Стили перекрытий", "Описание для многовидовых блоков" в одну таблицу?
Можешь сам попробовать. Создай свойства для них, если получится, значит и с таблицей проблем не будет!
подскажи как правильно сделать, у меня не работает.
А что надо, чтобы работало? На словах.
PS
значит и с таблицей проблем не будет!
...кроме тех случаев, когда нужно будет собрать в одной колонке данные с разными ед. изм., например метры и штуки.
Мы для этого пишем свою dll-ку.
Хотя локализацией не юзеры должны заниматься, а продавцы!
На словах! Про длину элемента.
Надо!!!
Сейчас подсчёт длины ведется по "Имени стиля", "Марка_стали". Работает прекрасно. Но если изменить чего ни будь другое, длина уже не правильно считается. Я попробовал добавить еще "Марку_Арматуры";"Позицию"([Позиция2]); и "ГОСТ"([НесущийМеталл:Примечанияизстиля]).
Подскажи пожалуйста!
Ага, от продавцов дождешься!!! Быстрее сам чего ни будь придумаешь!
Виталий, подскажи пожалуйста, где не правильно?
xag (2009-01-19 08:34:10)
Так хочется,что бы это работало!!!
Получилось, что то типа такого!
Хотелось бы первую спецификацию доделать, видно не судьба!!!
http://narod.ru/disk/5259411000/%D0%9A% … 3.zip.html
> xag
Сейчас подсчёт длины ведется по "Имени стиля", "Марка_стали". Работает прекрасно. Но если изменить чего ни будь другое, длина уже не правильно считается. Я попробовал добавить еще "Марку_Арматуры";"Позицию"([Позиция2]); и "ГОСТ"([НесущийМеталл:Примечанияизстиля]).
Марку арматуры можно учесть, создав дополнительный стиль!?
Номер позиции не должен по идее мешать, т.к. он присвивается всем одинаковым (см. фильтр) элементам. Поэтому я думаю, что можно остановиться на вар. >>>
http://www.vitalyf.by.ru/Sample/MemLenByStyleMat_2.rar
Получилось, что то типа такого!
А здесь о чём речь идёт?
Огромное спасибо за Ваш труд, господа. Скачал Ваши ссылочки. Очень и очень нужные вещи. Здорово облегчает жизнь. А теперь наберусь наглости и попрошу у Вас совета. Подсчет длины труб в зависимости от диаметра у меня не работает. Пример который прилагается- идет на ура. причем добавляю, отнимаю, делаю с ним что хочe- все норм, а вот если начинаю в своем файлике подсчитывать... Трубы группирует- а вот длина получается от фонаря. Причем никакой зависимости не прослеживается. Аutocad MEP 2009.2-й SP. Русский. Может кто посоветует что и где порыть? Буду благодарен за любой совет.
Vitaly (2009-01-27 10:31:42)
А здесь о чём речь идёт?
В файле находятся две спецификации.
1) Та что справа.
В спецификацию попадают разные АДТ элементы: Формообразующий элемент, Несущий элемент, Перекрытие, Стена и т.д.
В принципе получилась табличка по нормам.
До этой ветки я был уверен, что такое сделать нельзя. То есть можно, но не мне и не сейчас.
Правда там слегка каламбур (в смысле что на VBA можно красивее сделать), зато работает.
Длина, объем элементов считается на один элемент, но есть кол-во элементов.
2) Та что слева. (По смыслу не доделанная, но пользоваться можно).
Подсчёт ведётся только Несущих элементов, считается общая длина элемента и общая масса элемента у которого одинаковое имя и марка стали на один элемент. Позицию присвоил пустую ячейку, т.к. смысла в ней пока нет.
Vitaly (2009-01-27 10:30:53)
"Номер позиции не должен по идее мешать, т.к. он присвивается всем одинаковым."
Я с этим не согласен. Бывают случаи когда например: две плиты перекрытия разные по габаритам, задача посчитать арматуру (длина и масса) в двух плитах. Можно с помощью позиций разнести одинаковую арматуру по разным строчкам, в первой арматура для одной плиты во второй арматура для другой плиты (Длина и масса разные).
Поз.|Обозначение|Наименование|Кол.|Масса |Примеч
____|___________|____________|____|ед.кг.|______
1_____ГОСТ______ф10(А-III)L=2м__1_____2
2_____ГОСТ______ф10(А-III)L=5м__1_____5
И еще в таблицу не попадают элементы Бетона, закладных и других элементов. Т.е. не попадают Перекрытия, Стены, Формообразующие и др. АДТ элементы. Попадают одни, Несущие элемент(Профили и арматура).
> vdnepr
Порыть нужно в переменных, т.к. в MEP RUS их перевели на русский, от большо-о-о-о-го ума!
PS
Порыть нужно в переменных
вернее в переменных свойств, например в MEP ENG свойство длина трубы будет Length, в MEP RUS - Длина вот на этот предмет нужно посмотреть таблицу, т.к. в ней есть колонки с формулами и в наборах свойств!
Проблема частично решилась. Из-за моей невнимательности. Спецификация составляется, только в моем файле подсчет длины ведется не выделенных объектов, а всего количества труб выделенного типоразмера. Допустим я выделяю две трубы Dy 150. а в спецификации отображается общая длина данной трубы на чертеже. Причем кол-во элементов показывает правильно. Т.е. 2 шт. Не велика беда, конечно, но аппетит приходит во время еды. Можно как то подправить?
To Vitaly. Я Вам отправил файл.
пока нет ничего! vitaly.filin(собака)tserv.ru
To Vitaly. Отправил повторно.Если не прийдет-
Вас не затруднит черкануть на мой адрес- я отвечу. Может фигня какая-то с почтой?
zrb(собака)inbox.ru
если не получится приспособить для своих целей буду взывать о помощи
Vitaly, Ok! Всегда пожалуйста!
Попробовал откорректировать формулу для подсчета площадей разных стилей объектов Aec-Polygon
Set acadApp = GetObject(, "AutoCAD.Application") On Error Resume Next totLength = 0 n=[Aec-Polygon:Style] h=[Aec-Polygon:Handle] s=[Aec-Polygon:GrossArea] For Each object In acadApp.ActiveDocument.ModelSpace If object.ObjectName = "AecDbPolygon" 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 = "Aec-Polygon" Then For Each sch_prop In sch_propset.Properties If sch_prop.Name = "Style" Then If sch_prop.Value= n then totLength = totLength + object.GrossArea End If End If Next End If Next End If End If Next RESULT = totLength
но она не работает :(
cм. файл
надеюсь на помощь
Таблицы получаются хорошо, только в сылках как то не правильно работают.
В Диспетчере проектов, создаю конструкции из бетона и арматуры. В этом файле с конструкцией таблицы работают хорошо.
Создаю файлы во вкладке Виды, Собираю из конструкций файл видов, пробую использовать спецификацию. Спецификация не правильно считает. Она из ссылки с арматурой выбирает только один арматурный стержень, а все остальные стержни не попадают в таблицу.
Посмотрите пожалуйста. Может можно подкорректировать, или что то сделать?
Файл с проектом АА2008.
http://narod.ru/disk/6059689000/%D0%94% … d.zip.html
Александр Худоногов,
Таблицы через ссылку не работают, это ограничение текущей версии.
Даже если без формул попытаться запросить в Schedule Table длины каких либо элементов то получим фигвам! В таких случаях приходится конвертировать Schedule Table а Autocad Table, уже такую таблицу можно из видов поместить на листы. Надеюсь, что в 10-ке наконец-то мы избавимся от этого недостатка!!!
Если без формул. Таблицы просматривают ссылки и в таблицу попадает длина элемента.
В примере проекта 25.02.2009 07:16:59
В виде собраны конструкции и спецификация находит длину элементов, а с формулой не работает!
>Александр Худоногов,
Да, действительно всё передаётся кроме длин цепей, спасибо!
Но от этого не легче, т.к. доступ к объектам через Handle в принципе не позволяет работать со ссылками, а через ObjectID у меня не получилось. Пока затею эту я оставил по нескольким причинам, во-первых я нигде не нашёл похожих примеров, во-вторых мы для этих целей создали специальную dll-ку, в-третьих на носу 10-ка, а там может этого вообще не понадобится.
Форумы CADUser → Autodesk → Architecture → ADT, MEP Общая Длина элементов по стилям
Форум работает на PunBB, при поддержке Informer Technologies, Inc