|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
AutoCAD VBA. Как написать автоматически выполняемый код?
Регистрация: 11.10.2010
Сообщений: 979
|
||
Просмотров: 6807
|
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692
|
Цитата:
Код:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
AlexV, спасибо, но проблема в том, что я загружать dvb-модуль буду без команд, а через ActiveX (я не уверен, что сработает событие EndCommand).
В Excel, по-моему, можно было создать самозапускаемый макрос, со специальным именем (нечто типа Auto_Load или Auto_Start, точно уже не помню) - он срабатывал при загрузке документа, в котором он был прописан. И внутри AutoCAD очень сильно хочется подобный фокус получить...
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
AutoCAD Регистрация: 26.07.2007
Москва
Сообщений: 1,064
|
Лиспер, тогда, еще как вариент, почитай в справке по vba про acad.dvb. Если не найдешь, завтра отпишусь.
Цитата:
|
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
Vildar, я про acad.dvb где-то читал. Насколько я помню, это гарантирует загрузку dvb-модуля, но не запуск какого-либо кода из него. А мне надо именно запустить код, с загрузкой проблем нет никаких...
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
AutoCAD Регистрация: 26.07.2007
Москва
Сообщений: 1,064
|
Цитата:
Э, ты успел прочитать цитату из справки, перед своим постом? acad.dvb, используется для автоматического запуска макроса при загрузке акада. Тебе ето вроде не нужно. |
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
Похоже, руки у меня не из оттуда растут. Написал модуль acad.dvb, положил его в пути доступа. Код:
Код:
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
AutoCAD Регистрация: 26.07.2007
Москва
Сообщений: 1,064
|
Перейди в модуль ThisDrawing, в acad.dvb.
В верхнем выпадающем списке выбери AcadDocument. А во втором выпадающем списке выбери Activate. Таким образом ты подпишешся на событие активации документа. В этой процедуре выполняй нужные действия. Не понятно, в каком случае должен запускаться твой код? Во время создания нового документа? Или во время активации, т.е. при каждом переходе на документ (и во время открытия нового тоже будет срабатывать). Если только при открытии нового документа. То наверное нужно подписаться на событие запуска команды. Последний раз редактировалось Vildar, 17.12.2010 в 09:30. |
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
По идее должен запускаться один раз при открытии существующего документа или создании нового (аналог "самозапуска" lisp). В .NET это событие называется, дай бог памяти, DocumentCreated. В VBA аналога что-то не вижу, кроме Activate.
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
AutoCAD Регистрация: 26.07.2007
Москва
Сообщений: 1,064
|
Лиспер, тогда нужно подписаться на событие Application.BeginOpen.
Щас прикреплю макрос. Минут через пять. Пришлю ЛС. Почитай справку по VBA. Раздел Use Eventes. Последний раз редактировалось Vildar, 17.12.2010 в 10:28. |
|||
![]() |
|
||||
AutoCAD Регистрация: 26.07.2007
Москва
Сообщений: 1,064
|
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Взлом пароля VBA для Autocad | Didar | Программирование | 6 | 03.12.2010 11:58 |
Как написать программу для AutoCAD 2009?, которая используя координаты хранящиеся в Access 2003 начертит трассу со свойством PLine и выбором слоя. | rassom | Программирование | 34 | 29.10.2010 13:44 |
Как в программе autocad автоматически посчитать длину арматуры? | Шаман Растаманов | AutoCAD | 2 | 03.04.2010 20:18 |
развертка именно в autocad можно ли автоматически? | sassw | AutoCAD | 4 | 21.07.2009 00:13 |
Автоматически выполнить макрос VBA передав ему строку. | Sergei_Nikolaev | Программирование | 4 | 30.06.2009 13:38 |