|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
09.01.2015, 19:36 | #1 | |
ActiveX. Получаю свойства и методы vlax-dump-object, но где всё это?
Регистрация: 17.03.2009
Сообщений: 316
|
||
Просмотров: 5057
|
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Не работаю в 3D, поэтому про камеры не знаю практически ничего, кроме обрывков информации с форума, поступившей случайно в голову да кроме догадок, основанных на логических умозаключениях. Но просто глядя на представленный материал, уже понимаю, что камера является таким же объектом Автокада, как и полилиния, например. Про себя скажу, что я совсем не профессиональный программист и что ни разу, изучая ActiveX, не использовал ничего, кроме форума, уже имеющихся знаний по программированию и книги Полещука, которую использовал как лиспо-русский словарь. Плюс еще всегда очень помогало знание английского.
По сему, встань передо мной такая задача, как работа с камерами, я бы не пугаясь попробовал применять к ним те же принципы, что и в работе с любыми другими объектами Автокада. А они (принципы) у меня следующие: 1. Делаю дамп объекта, получаю список значений свойств (Property values), аналогичный вставленному в первом посте. 2. Используя логику, познания в английском и - если их недостаточно - англо-русский словарь, выявляю название свойства, которое мне нужно определить или изменить. Пусть, для примера это будет ширина рамки (FrameHeight). 3. Простыми конструкциями узнаю Код:
Код:
4. Далее, присвоив значения этих свойств переменным, можно оперировать ими в лиспе, или вычислив нужное свойство, присваиваю его нужному объекту. А документировано (имеет описание, справку) в Автокаде далеко не все, но это не значит, что по общему принципу это работать не будет. |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,090
|
Цитата:
Методы - тоже общие для всех графических объектов Акада, ни одного специфического. |
|||
|
||||
Регистрация: 17.03.2009
Сообщений: 316
|
1. Замечу, что написанного в окне свойств недостаточно, т.к. имена свойств могут быть совсем другими и иметь неочевидный тип.
2. Всплывает ещё одна проблема. Чтобы протестировать свойства камеры я, естественно, объявляю её для начала Код:
Код:
3. Действительно ли в ActiveX/VBA нет такого класса или как? А если есть, почему нет никакой документации? И дело касается не только камер, но и свойств освещения, настроек рендера и прочих интересующих меня вещей. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Я тут проверил свои огрызки кода из #2 и оказалось, что указанные мной в примере свойства не поддерживаются в ActiveX. Поддерживаются лишь те, которые присущи и другим объектам. Например, (vla-get-Target) возвращает значение, а вот специфичные для камер - ни в какую. Пишет
Код:
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Не знаю, как насчет "нет доступного API", но знаю точно, что в нем есть много недокументированных системных переменных, а также много недокументированных возможностей, на которые неоднократно проливали свет некоторые из сильных форума сего, что и послужило мне почвой для моих предположений. Я не теряю надежды, что все же до этих свойств можно как-то добраться программно, коли они существуют, может, есть какой-нибудь секрет.
Вот чего не знаю, того не знаю. Но вероятность, что это сможет Object Arx или .NET - думаю, намного выше, чем у LISP или VBA. А что именно нужно делать с камерами? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Если не срабатывает vla-put-target <ent>, можно попробовать vlax-put-property <ent> 'target или vlax-put-property <ent> "target"
С методами иногда подобное срабатывает, может быть, и здесь поможет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Вот и появился силач и рассказал секрет.
Я и забыл о такой альтернативе, поскольку всегда срабатывал предложенный мной метод. Проверил: Код:
Код:
|
|||
|
||||
Небольшая цитата из документации ObjectARX по поводу класса AcDbCamera:
Цитата:
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Регистрация: 17.03.2009
Сообщений: 316
|
Александр, спасибо.
1. Прежде чем писать на форуме я перелопатил много чего и читал (прям зачитывался) справочником по ObjectARX, и изучал класс AcDbCamera, в том числе то, что вы написали я прекрасно понимаю (а также, что для glyph-ов камер есть скрытый слой). Но, кстати, вопрос, класса, который я бы назвал "AcDbView" в той же документации нет! Первоначальный вопрос у меня даже не про камеры (то что мне надо было на начальных порах я сделал на LISP: выставление прямоугольника с фоновой картинкой строго перпендикулярно лучу зрения с любой камеры и так, чтобы картинка была чётко отмасштабирована на поле зрения камеры). Вопрос принципиальный — существует огромная "подводная" недокументированная часть ActiveX, с которой не понятно как работать. 2. Большинство вещей от собственно AutoCAD, LIPS, VBA изучал по хелпу. Также, конечно, и с ObjectARX и VB.NET (или лучше C#?) сейчас разберусь. Но нет ли чего-нибудь "популярного" по ObjectARX, помимо документации, читая которую многие концептуальные вещи доходят совсем не сразу. Хелп неудобен тем, что надо надо знать, что искать (например имена функций и классов), а понятийную инфу приходится додумывать самому. |
|||
|
||||
Из написанного на русском есть только одна книга: Н.Н.Полещук. "Программирование для AutoCAD 2013-2015". ДМК Пресс, 2015, 462 с. ISBN 978-5-97060-066-5.
Обсуждение этой книги здесь.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как поймать изменения в BlockEditor'е? | DanmerRUS | Программирование | 7 | 21.02.2014 07:16 |
AutoCAD 2012 | zenon | AutoCAD | 168 | 08.04.2013 16:01 |
Создание копии объекта | Sleekka | Программирование | 2 | 10.10.2011 11:47 |
Программа для построения аксонометрии. Несколько вопросов. | Zaghim | Программирование | 5 | 03.06.2011 19:29 |
ГОСТы, СНиПы, ПРАВИЛА и т.д. | ki | Разное | 120 | 19.09.2007 09:05 |