Тема: Как запустить программу на LISP из VBA
Как запустить программу на LISP из VBA?
Дико извиняюсь, может где- то и был вопрос с ответом.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как запустить программу на LISP из VBA
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как запустить программу на LISP из VBA?
Дико извиняюсь, может где- то и был вопрос с ответом.
VBA: ThisDrawing.SendCommand "MyLISP"
LISP: (defun C:MyLISP (/))
LeonidSN,
А, можно с комментариями? Чего- то я недопонимаю во второй строке.
Во второй строке, как пример, начало функции Lisp'a MyLISP.
Т.е. если в чертеж, до запуска программы VBA, была загружена функция MyLISP, то ее вызов из VBA:
ThisDrawing.SendCommand ("MyLISP ")
А если не была загружена, то ее сначала надо загрузить через ту-же SendCommand.
А если надо, чтобы после завершения функции Lisp, программа VBA продолжила работу, то надо организовать цикл, запустить в цикле функцию Lisp, которая должна при своем завершении что-то сделать, что явится признаком выхода из цикла.
Во второй строке, как пример, начало функции Lisp'a MyLISP.
Да. А чтобы LISP-функция воспринималась как команда AutoCAD'а перед ее именем ставится "C:".
Разобрался. Большое спасибо. Правда, забыл спросить о том как корректно в VBA загрузить саму LISP программу.
Например
comStr = "(if (null my_lsp_function) (load " & Chr(34) & "my_lsp_file" & Chr(34) & "))" ThisDrawing.SendCommand comStr & vbCr
где my_lsp_funct - это функция, которая находится в файле my_lsp_file.lsp
причем, если файл лежит не в путях поддержки автокада, то вместо my_lsp_file надо указать полный путь типа С:/.../.../my_lsp_file
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как запустить программу на LISP из VBA
Форум работает на PunBB, при поддержке Informer Technologies, Inc