| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > DXF-коды групп (group)

DXF-коды групп (group)

Ответ
Поиск в этой теме
Непрочитано 10.04.2012, 01:55 #1
DXF-коды групп (group)
wluk1958
 
Регистрация: 26.11.2010
Сообщений: 45

Подскажите, пожалуйста: существует ли возможность поиска (или вывода) ф-ей " (tblsearch ...) " групп (group), как именованных, так и безымянных. Существуют ли DXF-коды групп ?
И еще, по ходу дела: если группа входит в состав блока - то при разблокировании блока "взрывается" и группа. Спасибо заранее.
Просмотров: 5818
 
Непрочитано 10.04.2012, 13:29
#2
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Табличные данные основных неграфических объектов сгруппированы в символьные таблицы, имеющих имена: BLOCK, LAYER, LTYPE, STYLE, DIMSTYLE, UCS, VIEW, VPORT, APPID
Если взять свойство одного из примитивов группы, то видно присутствие реактора в таком примитиве
Код:
[Выделить все]
 (entget(ssname(ssget)0))
((-1 . <Имя объекта: 7ed8b518>) (0 . "LINE") (5 . "389193")
(102 . "{ACAD_REACTORS") (330 . <Имя объекта: 7ed8b540>) (102 . "}")
(330 . <Имя объекта: 7eea7cf8>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "К_Арматура") (48 . 40.0) (100 . "AcDbLine") (10 -197430.0 -36740.0 0.0) (11 -197430.0 -37980.0 0.0) (210 0.0 0.0 1.0))
Если же набрать такую лисп-строку:
Код:
[Выделить все]
 (entget(cdr(assoc 330(entget (cdr(assoc 330(entget(ssname(ssget)0))))))))
И указать на примитив в группе, то можно найти перечисление имен групп на чертеже (с кодом 3):
((-1 . <Имя объекта: 7eea7c68>) (0 . "DICTIONARY") (5 . "D") (102 . "{ACAD_REACTORS") (330 . <Имя объекта: 7eea7c60>) (102 . "}") (330 . <Имя объекта: 7eea7c60>) (100 . "AcDbDictionary") (280 . 0) (281 . 1)
(3 . "*A1") (350 . <Имя объекта: 7eecbd78>) (3 . "*A2") (350 . <Имя объекта: 7eee9f08>) (3 . "*A4") (350 . <Имя объекта: 7eeea128>) (3 . "*A5") (350 . <Имя объекта: 7eeee878>) (3 . "*A6") (350 . <Имя объекта: 7eee9dc8>) (3 . "*A7") (350 . <Имя объекта: 7eecbdd8>) (3 . "*A8") (350 . <Имя объекта: 7ed07f90>) (3 . "*A9") (350 . <Имя объекта: 7ed07f98>) (3 . "ABC") (350 . <Имя объекта: 7ed8b540>))
__________________
Мой сайт ingnmb.wixsite.com/acad-s
nik_mb вне форума  
 
Автор темы   Непрочитано 10.04.2012, 13:31
#3
wluk1958


 
Регистрация: 26.11.2010
Сообщений: 45


Огромное спасибо: эта тема, по-моему, вообще не поднималась.
Я понял, что выводятся ВСЕ атрибуты в чертже, и причем, в алфавитном порядке. (Правда, не пойму смысла в этом). А как в таком случае узнать что за группу конкретно я выбрал: ведь порядок-то - алфавитный ?

Но, и попутный вопрос: если группа входит в состав блока - то при разблокировании блока "взрывается" и группа. Можно ли оставить группу в девственном состоянии ?
Спасибо еще раз.

Последний раз редактировалось wluk1958, 10.04.2012 в 14:18.
wluk1958 вне форума  
 
Непрочитано 10.04.2012, 14:55
#4
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Цитата:
Сообщение от nik_mb Посмотреть сообщение
Табличные данные основных неграфических объектов сгруппированы в символьные таблицы, имеющих имена: BLOCK, LAYER, LTYPE, STYLE, DIMSTYLE, UCS, VIEW, VPORT, APPID
Если взять свойство одного из примитивов группы, то видно присутствие реактора в таком примитиве
nik_mb при чем тут это, wluk1958 спрашивал
Цитата:
Сообщение от wluk1958 Посмотреть сообщение
Подскажите, пожалуйста: существует ли возможность поиска (или вывода) ф-ей " (tblsearch ...) " групп (group), как именованных, так и безымянных. Существуют ли DXF-коды групп ?
wluk1958, да и nik_mb, данные о группах хранятся в рисунке в словаре с именм ACAD_GROUP
Код:
[Выделить все]
 
(dictsearch (namedobjdict) "ACAD_GROUP")
и дальше смотрим dxf-коды 3 и 350
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 10.04.2012, 15:30
#5
wluk1958


 
Регистрация: 26.11.2010
Сообщений: 45


"и дальше смотрим dxf-коды 3 и 350"

->
... (3 . "*A1") (350 . <Имя объекта: -ec9d78>)(3 . "*A2") (350 . <Имя объекта: -ec9d18>))
А вот после "(entget...)" почему-то никакого соответствия не вижу. (Это чтобы определить, какую конкретно я выбрал группу).
wluk1958 вне форума  
 
Непрочитано 10.04.2012, 15:43
#6
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Можно поступить так (возможно есть путь короче) - получить имя группы для выбранного примитива:
Код:
[Выделить все]
 (setq group_vba (vlax-ename->vla-object (cdr(assoc -1 (entget (cdr(assoc 330 (entget (car (entsel ))))))))))
(setq name_group (vla-get-name group_vba))
__________________
Мой сайт ingnmb.wixsite.com/acad-s
nik_mb вне форума  
 
Автор темы   Непрочитано 10.04.2012, 19:46
#7
wluk1958


 
Регистрация: 26.11.2010
Сообщений: 45


Великолепно ! Это именно то, что я хотел узнать. Спасибо большое.
wluk1958 вне форума  
 
Непрочитано 11.04.2012, 01:00
#8
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,408
Отправить сообщение для Александр Ривилис с помощью Skype™


Подсказка: примитив может содержаться сразу в нескольких группах. Код #6 возвращает имя первой из них (если примитив в группе).
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 11.04.2012, 15:42
#9
wluk1958


 
Регистрация: 26.11.2010
Сообщений: 45


Спасибо еще раз.
wluk1958 вне форума  
 
Непрочитано 04.05.2012, 08:49
#10
ashas-


 
Регистрация: 05.01.2011
Сообщений: 80


Здраствуйте.
Бьюсь уже второй день... Можно ли через "vla-get" достать пояснение к нужной группе, посредством выбора объекта входящего в него (учитывая функцию написанную выше). Пролазил почти все свойства, никак не могу понять где оно прописывается. Интересует адрес именно через vla-object.
ashas- вне форума  
 
Непрочитано 04.05.2012, 09:34
1 | #11
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Когда мне понадобилось, я не нашел. Добирался через DXF.
Код:
[Выделить все]
(cdr (assoc 300 (entget (vlax-vla-object->ename <group-vla-object>))))
Do$ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > DXF-коды групп (group)

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как читать коды DXF для 3d solid? Курмышанец Программирование 20 07.05.2011 11:50
чтение данных из файла Александер Программирование 6 08.09.2005 10:24
Не могу найти коды DXF для selectionset в VBA... ssn Программирование 4 06.12.2003 17:19