2013-07-12 12 views
0

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

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

Процесс, который я должен выполнить это "ЗАГРУЗИТЬ в .arx" -> "Выполнить это полностью" -> "UNLOAD .arx"

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

Я считаю, что здесь происходит «Load arx» -> «RUNNING через командную строку» -> «RUNS перед тем, как arx выполняется полностью, и поэтому дает ошибку».

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

+0

Возможный дубликат [Загрузка и выгрузка файла .arx с помощью LISP] (http://stackoverflow.com/questions/17602443/loading-and-unloading-the-arx-file-with-lisp) –

+0

downvoter .. Пожалуйста, оставьте комментарий для этого же. – JNL

ответ

2

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

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

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

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

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

2

Подробнее cad гуру есть.

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

+0

Trae, я разместил его там. Но ответов пока нет. Я буду держать вас в курсе, если я получу решение. Благодарю. – JNL

+0

Прочитать тег wiki для других форумов: http://stackoverflow.com/tags/autocad/info. Болото и форумы autodesk чаще посещают гуру autocad, чем здесь. –

Смежные вопросы