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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Возможен прямой (не перебор) доступ к примитивам XRef ?

Возможен прямой (не перебор) доступ к примитивам XRef ?

Ответ
Поиск в этой теме
Непрочитано 15.04.2009, 20:37 #1
Возможен прямой (не перебор) доступ к примитивам XRef ?
russo
 
инженер
 
Украина
Регистрация: 15.04.2009
Сообщений: 4

Доброго дня, коллеги!
Собственно вопрос в заголовке...сразу оговорюсь, если кто-то обратит внимание, вопрос дублируется с http://www.caduser.ru/forum/index.ph...D=23&TID=46312 (там более подробно о причинах такой надобности), но там к сожалению ответа пока не получил и даже идей нет...
Проблема собственно в том, что у мне нужно доступиться напрямую к примитиву, содержащемся в ссылке. Я в определенный момент времени обрабатываю и запоминаю этот примитив, а потом мне нужно к нему вернуться (может и не в текущем сеансе работы - и так чаще всего). Я замоминаю метки, а затем, при необходимости, тотально перебираю все в чертеже и, сравнивая метки, нахожу нужный примитив... так делаю, потому что я не знаю способа или параметра, по которому можно обратиться к примитиву напрямую...это позволило бы обрабатывать не 10-15 тысяч примитивов, а всего несколько десятков...
Если у кого есть даже не ответ, а идеи как решить или, может, подступиться к вопросу, буду благодарен...
Просмотров: 2533
 
Непрочитано 17.04.2009, 15:22
#2
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Если ты в поиске наберешь "вебмакрос", то найдешь прогу, которая управляет видимостью элементов и при этом дописывает в них расширенные данные с указанием состояния видимости. Таким образом сохраняется не только текущая видимость, а еще и несколько состояний видимости модели для разных случаев. Можно в расширенные данные свой номер-метку примитива писать и этот номер записывать в таблицу состояний видимости.
Supermax вне форума  
 
Непрочитано 17.04.2009, 15:36
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408


Supermax, этот номер при работе с внешними ссылками не прокатит. Не прокатит вообще никакой номер в файле-"хозяине" без открытия и изменения самого файла внешней ссылки. А это далеко не так просто, как кажется.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.04.2009, 18:04
#4
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Не согласная я, refedit не только редактирует внешнюю ссылку "по месту", но и сохраняет изменения в файле-донаре. Открывать для этого внешнюю ссылку в другом окне не нужно. Я, лично, _.-refedit обойти не могу.
Как refedit умудряется сохранять данные в файл внешней ссылки - ума не приложу. Тут что-то видимо связано с механикой сохранения данных в файл. Когда ссылка открыта "по месту" видимо имя файла для сохранения меняется на имя ссылки и все элементы модели, относящиеся к ней сохраняются туда.
Да я так и не понял, что за "перебор" и что за "(не прямой)". Создал набор элементов, а как они там легли - одному богу известно. Без перебора набора - никак.
Supermax вне форума  
 
Автор темы   Непрочитано 24.04.2009, 20:12
#5
russo

инженер
 
Регистрация: 15.04.2009
Украина
Сообщений: 4
<phrase 1=


Немного задержался с реакцией...не было на работе...
Supermax, спасибо за ссылку на "вебмакрос", но он не решает описанные мной задачи...он работает только с примитивами текущего чертежа (а это немного не то)...мне же нужны примтивы внутри ссылки, причем "вложенность" ссылки - 2 уровня ("File1" -> (Attach) -> "File2" -> (Overlay) -> "File3")... вот такая задачка... но немного оптимизировав код я все же добился приемлемого времени работы, а кроме того, если я каким-то образом и заберусь в файл ссылки (через _refedit, arx или еще как-то) и получу имя искомого примтива, то все-равно я ничего с ним не сделаю средствами VLISP, так что вопрос можно считать закрытым... а проблемы сопряженные с отслеживанием актуальности набора скрытых примитивов (если вдруг "хозяин" ссылки физически изменит (удалит, разобъет блок) что-то в примтивах, которые у меня скрыты) - уже совсем другой вопрос...
В любом случае, спасибо за ответ...
russo вне форума  
 
Непрочитано 10.07.2009, 16:24
#6
Эдуард

строительство
 
Регистрация: 16.01.2004
Петербург
Сообщений: 165
<phrase 1=


Так подойдет ?
Код:
[Выделить все]
(vla-HandleToObject(vla-get-XRefDatabase(vla-item(vla-get-blocks(vla-get-ActiveDocument(vlax-get-acad-object))) "имя ссылки"))"метка")
Эдуард вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Возможен прямой (не перебор) доступ к примитивам XRef ?