![]() |
Здравствуйте, гость ( Вход | Регистрация )
- Стандарт НП «АВОК» 7.11-2024 «Рекомендации по проектированию инженерных систем дошкольных образовательных организаций» |
АВОК в соц. сетях
![]() ![]() ![]() ![]() |
ИНН: 7714824045 | erid: 2VtzqwzKQiU |
|
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Группа: Участники форума Сообщений: 25 Регистрация: 29.4.2010 Пользователь №: 54827 ![]() |
Здравствуйте форумчане. Проектирую тепловые сети в том числе тепловые камеры. Как создать блоки оборудования с атрибутами в том числе и труб которые можно вытягивать разобрался. Теперь хочу автоматически собирать спецификацию. Чертежи выполняем пока в 2д, поэтому все оборудование и фасонина разбиты на блоки с двумя а то и тремя видами. То есть к примеру у тройника есть блок "тройник ду200 вид сверху" и блок "тройник ду200 вид спереди". Сделано для того что на разных сечениях и разрезах тепловых камер был нужный вид оборудования. При извлечении данных из блоков автокад создает спецификацию и группирует атрибуты по названию блока. В моих блоках атрибуты внутри блоков одинаковые для одного фасонного элемента или к примеру крана. Вопрос - как заставить автокад объединять блоки в таблице спецификации по содержимому атрибута? Или есть какие то другие способы собрать спецификацию из набора блоков?
|
|
|
![]()
Сообщение
#2
|
|
Группа: Участники форума Сообщений: 3567 Регистрация: 5.3.2009 Из: Газ-Ачака Пользователь №: 30120 ![]() |
ну как вариант сделать невидимый атрибут "название для спецификации" и сортировать по нему.
|
|
|
![]()
Сообщение
#3
|
|
Группа: Участники форума Сообщений: 25 Регистрация: 29.4.2010 Пользователь №: 54827 ![]() |
В этом то весь и вопрос. Как сортировать?
|
|
|
![]()
Сообщение
#4
|
|
Группа: Участники форума Сообщений: 3567 Регистрация: 5.3.2009 Из: Газ-Ачака Пользователь №: 30120 ![]() |
так вроде на странице 5/8 есть графа "combine identical rows" самая верхняя, если поставить галочку то должно проссумировать
еще вот есть script на vba который суммириует в excel одинаковые строки Сообщение отредактировал Composter - 17.5.2019, 15:43
Прикрепленные файлы
|
|
|
![]()
Сообщение
#5
|
|
Группа: Участники форума Сообщений: 25 Регистрация: 29.4.2010 Пользователь №: 54827 ![]() |
А можно поподробнее? Желательно со скринами.
|
|
|
![]()
Сообщение
#6
|
|
Группа: Участники форума Сообщений: 3567 Регистрация: 5.3.2009 Из: Газ-Ачака Пользователь №: 30120 ![]() |
да вроде и так должно было понятно
но все равно скрины прикладываю слева с галкой спарва без Сообщение отредактировал Composter - 18.5.2019, 16:49
Прикрепленные файлы
![]() ![]() |
|
|
![]()
Сообщение
#7
|
|
Группа: Участники форума Сообщений: 25 Регистрация: 29.4.2010 Пользователь №: 54827 ![]() |
Эта галочка как раз и объединяет по названию блока. И получается что один и тот же элемент в спецификацию попадает дважды.
|
|
|
![]()
Сообщение
#8
|
|
Группа: Участники форума Сообщений: 3567 Регистрация: 5.3.2009 Из: Газ-Ачака Пользователь №: 30120 ![]() |
дважды один и тот же элемент не попадает в таблицу. два элемента с разным названием но одинаковыми другими параметрами будут учитываться по отдельности даже если отключить отображение имени элемента.
в таком случае вижу несколько выходов из ситуации для вас - экспортировать без имени в ексель, и с помощью моего скрипта выше обрабатывать в екселе. можно еще экпорт длеть с помощью след скрипты ,если конечно все данные только в атрибутах http://forum.abok.ru/index.php?s=&show...t&p=1337385 - написать лисп для этого дела, который будеь извлекать атрибуты и сортировать и суммировать. |
|
|
![]()
Сообщение
#9
|
|
Группа: Участники форума Сообщений: 95 Регистрация: 3.1.2018 Пользователь №: 334479 ![]() |
Не обязательно атрибуты, комментария к блоку достаточно, если дружите хоть немного с VBA.
Неудачная загрузка. Вам запрещено загружать такой тип файлов, поэтому текстом дам- ---------------------------------------------------------------------------------------------------------------- Dim elem As Object Dim n As Long Dim x As Long Dim item As Object Dim bl As AcadBlock Dim lay As AcadLayer Dim prop As Variant Dim s1 As String Dim s2 As String Dim BlocksNames() As String Dim BlocksCount() As Long Dim Ex As Excel.Application Dim Book As Excel.Workbook ReDim BlocksNames(0) ReDim BlocksCount(0) For Each elem In ThisDrawing.ModelSpace If elem.EntityName = "AcDbBlockReference" Then s2 = elem.Layer Set lay = ThisDrawing.Layers.item(s2) If lay.LayerOn = True And lay.Freeze = False Then s1 = elem.Name Set bl = ThisDrawing.Blocks.item(s1) prop = bl.Comments If prop <> "" Then If BlocksNames(0) = "" Then BlocksNames(0) = prop BlocksCount(0) = 1 prop = "" Else For x = 0 To UBound(BlocksNames) If prop = BlocksNames(x) Then BlocksCount(x) = BlocksCount(x) + 1 prop = "" End If Next x If prop <> "" Then ReDim Preserve BlocksNames(UBound(BlocksNames) + 1) BlocksNames(UBound(BlocksNames)) = prop ReDim Preserve BlocksCount(UBound(BlocksCount) + 1) BlocksCount(UBound(BlocksCount)) = 1 prop = "" End If End If End If End If End If Next elem If BlocksNames(0) <> "" Then Set Ex = New Excel.Application Ex.Visible = True Set Book = Ex.Workbooks.Add For x = 0 To UBound(BlocksNames) Book.Sheets(1).Cells(x + 1, 1).Value = BlocksNames(x) Book.Sheets(1).Cells(x + 1, 2).Value = BlocksCount(x) Next x End If ----------------------------------------------------------------- Данный код подсчитывает блоки с одинаковыми комментариями на включённых и не замороженных слоях, имена блоков при этом могут быть любые. После запускается Эксель и данные экспортируются в тудой. В проекте VBA должна быть подключена объектная библиотека Эксель. Tools->References->Microsoft Excel xx.x Object Library |
|
|
![]()
Сообщение
#10
|
|
Группа: Участники форума Сообщений: 95 Регистрация: 3.1.2018 Пользователь №: 334479 ![]() |
![]() Версия подключённой библиотеки - 14.0 Сообщение отредактировал Ацетилен - 17.5.2020, 5:21 |
|
|
![]()
Сообщение
#11
|
|
Группа: Участники форума Сообщений: 95 Регистрация: 3.1.2018 Пользователь №: 334479 ![]() |
|
|
|
![]()
Сообщение
#12
|
|
Группа: Участники форума Сообщений: 95 Регистрация: 3.1.2018 Пользователь №: 334479 ![]() |
Ну и по тем значениям атрибутов, которые установлены по умолчанию, теперь тоже можно считать.
![]() |
|
|
![]() ![]() |
|
![]() |
Текстовая версия | Сейчас: 2.7.2025, 21:40 |
Политика ООО ИИП «АВОК-ПРЕСС» в отношении обработки персональных данных |