|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как программно получить свойства прокси объекта
Регистрация: 11.08.2011
Сообщений: 41
|
||
Просмотров: 9841
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Получаешь указатель на объект, а потом 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
С.-Петербург
Сообщений: 40,406
|
Насколько я помню (сейчас нет ни одного файла с прокси) - "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
С.-Петербург
Сообщений: 40,406
|
zvyagaaa, в AutoCAD нет понятия ни ID системы, ни типа - ничего подобного. Похоже, ты работаешь либо не в чистом ACAD, либо у тебя есть соответствующие ObjectEnabler. Следовательно, это уже явно не прокси-объекты.
Мораль: читай документацию по своей версии вертикалки
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
zvyagaaa, не хамите. Вам по существу и ответили.
Если Вы не поняли, автор ответа не виноват. Попробую развернуть ответ: Автокад смотрит на объект через objARX (включая енаблеры) и видит ВСЕ свойства, Вы смотрите через VBA и видите только то, что компания Аутодеск сочла нужным. |
|||
![]() |
|
||||
Регистрация: 11.08.2011
Сообщений: 41
|
Boxa как написано, так и понял.
в качестве офтопа, на любой вопрос как сделать то-то и то-то в VBA обязательно находится человек, который говорит, что VBA нафиг - бери ObjARX, поэтому так и ответил. тогда как я получаю доступ к свойствам, которые описал выше? |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Как Вы и написали выше, методом тыка, смотрите и сами сопоставляете, что за что отвечает..
А если Вам нужно больше помощи, то не ленитесь выложить сам файл с примером объекта, ссылкой на енаблер и не забудте фрагмент кода с которым работаете. В противном случае будет гадание. Offtop: В ответе trir нет призыва выбросить вба и начать пользоваться ARX, это Вы себе напридумывали |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,174
|
Может я "со свиным рылом в калашный ряд", но все же рискну напомнить о 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 чтобы вывести все свойства всех типов в чертеже, особенно те которые не возможно выбрать в модели или на листе (но они есть в файле =))? (Ситуация точно такая же как описано выше, тоже объекты стороннего приложения) Помогите, пожалуйста! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Как вариант: через atoms-family получить список всех ActiveX-свойств и потом проверять, какое для какого объекта доступно. Но смысла в этом лично я не вижу.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
зачем старого больного человека обижаешь?
ну погорячился я... с кем не бывает но писать нужно внятно, а не через то самое место, коего любителей предостаточно хотя бы так Код:
Последний раз редактировалось gomer, 27.04.2015 в 23:40. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ошибка ядра AutoCAD.
----- добавлено через 14 сек. ----- Напомни, чего ты в результате-то хотел?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 18.02.2015
Сообщений: 90
|
Разобрался. Ошибка из-за того что название листа было на русском.
-------------------------- Все равно не видит объект, который нужен. Можно еще каким-то образом его найти в файле? Я просто с объектной моделью не знаком. ----- добавлено через ~13 мин. ----- Подробно: Есть arx ( или вроде vlx .... ) решение (типа СПДС) для автокад, оно создает объекты, объекты переносятся с файлами. Объекты представляют из себя что-то типа укрупнительных сборок других объектов. Есть просто желание доработать под себя еще пару команд/кнопок. Так как в программировании я не очень, хотел бы все осуществить на VBA. Есть какие-нибудь идеи? Может можно как-то до них добраться (до объектов )через C#? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Не имея исходников или хотя бы загруженного arx / dbx, да на VBA - нереально, мне кажется. И .NET тут мало поможет (если вообще поможет).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Например, в отсутствии СОМ-интерфейса к объектам.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
__________________
Мастерская СПДС |
||||
![]() |
|
||||
NanoCad Электро (вертикальное решение на платформе Nanocad) один элемент
Есть ли возможность, хоть как-то добраться до свойств объекта программными методами? Хочу иметь возможность пронумеровать (сквозной нумерацией) розетки. Поле доступное через интерфейс "ЭЛЕКТРО" = Наименование Код:
|
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
фантастика, что разработчики продукта уверены - что его "допиливать" под свои нужды нет необходимости, если до сих пор API не сделали)
|
|||
![]() |
|
||||
Вроде утверждают, что API есть, но по запросу
Или они про бим писали ![]()
__________________
Мастерская СПДС Последний раз редактировалось doctorraz, 16.01.2023 в 22:05. |
||||
![]() |
|
||||
Мы проработали год в электро.
Точность спецификации возросла ( все трубы , гайки и пр. закладываешь сразу и забываешь (что гуд) ) Но вот типовые операции, весь (или часть) такой то кабель (светильники, розетки) , заменить на другой (боль, слезы и истерика ![]() Невозможность прокладки лотков под углом к горизонту _/\_ (до сих пор не умеет). Скорость проектирования упала раз 5 и более. И это не косаемо багов и сурового наноэлектровского интерфейса. И это еще не про BIM. |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
![]() |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как получить свойства 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 |