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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Как сохранить имя примитива при смене сеанса AutoCADa

LISP. Как сохранить имя примитива при смене сеанса AutoCADa

Ответ
Поиск в этой теме
Непрочитано 14.01.2011, 10:40 #1
LISP. Как сохранить имя примитива при смене сеанса AutoCADa
Main Urod
 
Регистрация: 20.01.2009
Сообщений: 1,170

Задача следующая: Имеется некоторый родительский примитив (например полилиния). Затем сразу или через некоторое время создаются дочерние примитивы другого типа (круг, текст и т.д.). Теперь нужно сделать так, чтобы при обращении программы к родительскому примитиву я мог получить Entity name всех дочерних примитивов. А при обращении к дочернему примитиву получить Entity name родительского.
Проблема заключается в том, что эту связь нужно иметь всегда, а не только в текущем сеансе. То есть, если сохранить Entity name объектов в расширенных данных, то при закрытии чертежа все связи порвутся из-за изменения кодов -1 и 330.
На данный момент я присвоил каждому родительскому и дочернему примитиву уникальный номер хранящийся в расширенных данных и сохраняю в родительском примитиве номера дочерних, а в дочерних номера родительских. И при каждом обращении к функции провожу сканирование всего чертежа на предмет совпадения этих номеров. Только при увеличении чертежа это сканирование начинает тормозить.
Можно ли как то получить прямую ссылку на элемент не изменяющуюся при выключении Акада, по которой можно вытащить данные через entget и избавиться от сканирования?


PS Ну и до кучи: для чего служит DXF код 5?. А то кроме того что это недоступная для изменения метка примитива я ничего на него не нашел.
Просмотров: 1645
 
Непрочитано 14.01.2011, 10:53
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Main Urod Посмотреть сообщение
То есть, если сохранить Entity name объектов в расширенных данных, то при закрытии чертежа все связи порвутся из-за изменения кодов -1 и 330
Храни метку ( dxf код 5). Она уникальна. Пролучить обратно имя примитива по метке можно с помощью ф-ции handent
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.01.2011, 10:54
#3
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Main Urod Посмотреть сообщение
для чего служит DXF код 5
Это метка примитива, она то как раз тебе и нужна так как она в отличии от имени примитива постоянна
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 14.01.2011, 10:56
1 | #4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Почитай эту тему с поста #27
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Как сохранить имя примитива при смене сеанса AutoCADa

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Как сохранить выделенность выбранного примитива или тела при переходе на другой изовид BM60 AutoCAD 11 20.10.2008 16:53
Можно ли и как сохранить ручки при смене вида BM60 AutoCAD 13 06.03.2008 13:00
Вариация моделей в SCAD - проблемы с РСУ UIII SCAD 2 04.10.2007 13:35