|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.11.2014, 12:20 | #1 | |
Как программно получить свойства прокси объекта
Регистрация: 11.08.2011
Сообщений: 41
|
||
Просмотров: 9250
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Получаешь указатель на объект, а потом obj.Layer, obj.Color и теде.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.08.2011
Сообщений: 41
|
я не пойму, как в коде показать, что нужно выбирать только proxy объекты. Вот для линий пожалуйста -
If sset.Item(ItemI).ObjectName = "AcDbLine" Then а какое имя объекта у прокси объекта? И еще, как бы получить имена этих свойств полностью? Вот я приложил скрин окна свойств. Они же не документированы. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Насколько я помню (сейчас нет ни одного файла с прокси) - "ACAD_PROXY_ENTITY" или "AcDbZombieEntity". Выбери прокси да посмотри его Name, в чем трудность-то?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.08.2011
Сообщений: 41
|
это все понятно, мне не ясно, как можно отобразить все свойства у объекта, которые он отображает в окне "свойства" автокада, как получить к ним доступ?
чтобы не в слепую подбирать названия свойств, а можно было получить их список? Вот я к примеру выше, подобрал, что свойства sset.Item(0).DuctSystem отображают ID системы, sset.Item(0).PartType тип, а как получить весь список? Может быть есть хак? Как-то же автокад понимает, что нужно отображать в этом окне? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
zvyagaaa, в AutoCAD нет понятия ни ID системы, ни типа - ничего подобного. Похоже, ты работаешь либо не в чистом ACAD, либо у тебя есть соответствующие ObjectEnabler. Следовательно, это уже явно не прокси-объекты.
Мораль: читай документацию по своей версии вертикалки
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
zvyagaaa, не хамите. Вам по существу и ответили.
Если Вы не поняли, автор ответа не виноват. Попробую развернуть ответ: Автокад смотрит на объект через objARX (включая енаблеры) и видит ВСЕ свойства, Вы смотрите через VBA и видите только то, что компания Аутодеск сочла нужным. |
|||
|
||||
Регистрация: 11.08.2011
Сообщений: 41
|
Boxa как написано, так и понял.
в качестве офтопа, на любой вопрос как сделать то-то и то-то в VBA обязательно находится человек, который говорит, что VBA нафиг - бери ObjARX, поэтому так и ответил. тогда как я получаю доступ к свойствам, которые описал выше? |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Как Вы и написали выше, методом тыка, смотрите и сами сопоставляете, что за что отвечает..
А если Вам нужно больше помощи, то не ленитесь выложить сам файл с примером объекта, ссылкой на енаблер и не забудте фрагмент кода с которым работаете. В противном случае будет гадание. Offtop: В ответе trir нет призыва выбросить вба и начать пользоваться ARX, это Вы себе напридумывали |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Может я "со свиным рылом в калашный ряд", но все же рискну напомнить о LISP-функции vlax-dump-object. Для исследования объектов - самое то. Не знаю, есть ли аналог в VBA.
Цитата:
Offtop: Цитата:
Последний раз редактировалось kp+, 19.11.2014 в 16:28. |
|||
|
||||
1) То, о чем ты говоришь, не является прокси-объектами. Прокси-объекты - это объекты-заместители, которые появляются в том случае, когда не загружено основное приложение или ObjectEnabler. Судя по скрину с Панели Свойств - это не прокси-объект, а объект MagiCAD.
2) Попробуй для начала воспользоваться лисп-функцией (progn(vl-load-com)(vlax-dump-object(vlax-ename->vla-object(car(entsel)))t)) для анализа того, что это за примитив. То, что увидишь в текстовом окне AutoCAD, выложи сюда.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Регистрация: 18.02.2015
Сообщений: 90
|
Александр Ривилис, или кто-нибудь понимающий в Лиспе и модели arx,
Как можно переделать это выражение на Lisp чтобы вывести все свойства всех типов в чертеже, особенно те которые не возможно выбрать в модели или на листе (но они есть в файле =))? (Ситуация точно такая же как описано выше, тоже объекты стороннего приложения) Помогите, пожалуйста! |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как получить свойства layout | луки | Программирование | 2 | 23.06.2009 10:50 |
Как получить свойства 3dSolid Box в VB... | 99garry | Программирование | 8 | 22.06.2009 20:58 |
ADT. Программно получить значение храктеристики. | игорёк | Программирование | 10 | 25.08.2008 10:39 |
как получить из примитива его свойства | paradoxvaha | Программирование | 5 | 24.07.2007 22:24 |
Можно ли получить список реакторов объекта? | kos | Программирование | 1 | 13.01.2005 13:28 |