Тема: Макрос на кнопке
Повесил макрос на кнопку , теперь хочу сделать так , чтобы
при "повторе команды" он опять запускался, а не запрашивал имя макроса.Т.е. как объединить _-vbarun и "имя макроса" в одну команду.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Макрос на кнопке
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Повесил макрос на кнопку , теперь хочу сделать так , чтобы
при "повторе команды" он опять запускался, а не запрашивал имя макроса.Т.е. как объединить _-vbarun и "имя макроса" в одну команду.
Забыл , "повтор команды" - это у меня правая кнопка мыши.
текст:
"^C^C-vbarun filename.dvb!macros "
(пробел в конце обязателен!).
При такой записи тоже самое. После повтора (нажатия правой кнопки мыши) Acad заускает _-vbarun , а затем спрашивает имя макроса, что не достаточно удобно. Хотелось бы его не вводить.
Я прописываю в лисповском файле (на автозагрузке, в mnl), например, такую запись:
(defun c:razmvib ()
(vl-vbarun "razmvib"))
Потом вешаю на кнопку обыкновенное:
^C^Crazmvib
А я сразу вешаю на кнопку:
^C^C(defun c:razmvib() (vl-vbarun "razmvib")) razmvib
У меня работает эта конструкция:
-vbarun "e:/programm/summa.dvb!ThisDrawing.dlinna"
вместо "ThisDrawing" может быть "Module1".
Аркадий Эйдельман, что стоит за словами вешаю на кнопку?
по поподробней если не затруднит...
клик правой кнопкой мыши на панели инструментов-Адаптация-Свойства кнопки, в поле макрос для данной кнопки-пишешь свою строку. Или тоже самое в файле mnu (см. справку)
> Аркадий Эйдельман
Вроде по логике вещей и так должно работать: ^C^C(vl-vbarun "razmvib")
Могу посоветовать книжку -
В.Свет "AutoCAD Язык макрокоманд и создание кнопок"
пример: -vbarun Module1 (впереди знак минус !!!)
пример: -vbarun Module1 (впереди знак минус !!!)
а Module1 имя процедуры (макроса)
Можно предложить такую функцию
;;; ****************************** ;;; Загрузка и запуск програм VBA ;;; Если un = t макрос после выполнения ;;; выгружается (defun ld-dvb (file Macro un / pn) (if (setq pn (findfile file)) (progn (vl-vbaload pn) (vl-vbarun Macro) ) ;_ end of progn (princ (strcat "Файл " file " не найден.")) ) ;_ end of if (if (and un pn) (vl-cmdf "_.vbaunload" pn) ) ;_ end of if (princ) ) ;_ end of defun ;;; ****************************
Поместить её в файл acaddoc.lsp
а на кнопке писАть
(ld-dvb "horosho.dvb" "ochen" nil)
"повтор команды" — это у меня правая кнопка мыши.
Чтобы был повтор команды тогда так
(defun c:ld-dvb (file Macro un / pn)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Макрос на кнопке
Форум работает на PunBB, при поддержке Informer Technologies, Inc