Выполнять несколько команд в LISP последовательно

Я запускаю приложение.arx в AutoCAD. Когда мы нажимаем на настраиваемую вкладку в AutoCAD, она запускает программу в командной строке AutoCAD. Функция LISP, которую мы выполняем, выглядит следующим образом;

(defun c:XYZ_program() 
  (command)
  (command)
  (arxload "C:/ABC/XYZ.arx")
  (command "XYZ_program")
  (arxunload "XYZ.arx"))

Мне нужно выполнить процесс "ЗАГРУЗИТЬ.arx" -> "Выполнить его полностью" -> "РАЗГРУЗИТЬ.arx"

Теперь, когда я запускаю это для ввода-вывода на основе меню.arx, он работает нормально, но когда некоторым программам требуется ввод из командной строки AutoCAD, выдается сообщение об ошибке "unload fail".

Я полагаю, что происходящий здесь процесс - "Загрузить arx" -> "ЗАПУСК через командную строку" -> "ЗАПУСК до полного выполнения arx. И поэтому выдает ошибку".

Любая помощь с этим будет высоко ценится.

2 ответа

Решение

Я получил ответ от еще нескольких исследований и помощи.

В LISP способ выполнения команд последовательно, мы можем использовать (progn expr ....)

Однако, если некоторые программы принимают ввод из командной строки, это может не помочь. Вышеуказанная проблема была конкретно с приложениями AutoCAD и.arx, поэтому мы можем включить следующую строку в программу VC++.

ads_queueexpr(_T("(arxunload \"XYZ\")") ); 

Надеюсь это поможет.

Вам нужно разместить на http://www.cadtutor.net/ больше гадов там.

Lisp высоко поддерживается и хорошо документирован на этом сайте.

Другие вопросы по тегам