Обучение AutoLISP в восьми уроках - стр. 5
менять команду END, что бы она запрашивала у пользователя, сохра-
нять или нет текущее состояние рисунка перед выходом из AutoCAD,
тем же самым способом как запрашивает пользователя команда QUIT.
В следующем примере, Вы будете записывать функцию AutoLISP заме-
няющую родную команду END AutoCAD, и делающую неопределенной род-
ную команду END, чтобы AutoCAD использовал функцию AutoLISP вмес-
то нее.
Новая функция будет поэтому определена так, что сможет вызы-
ваться непосредственно из командной строки AutoCAD без включения
в круглые скобки, и будет самостоятельно вызывать местную коман-
ду END ( независимо от того была ли команда END сделана неопреде-
ленной ) указав перед именем команды точку ".".
Создайте новый файл назвав его END.LSP и добавте туда эту функцию.
(defun C:END (/ usr)
; Запросить пользователя и получить ответ
(setq usr (getstring "\nReally want to END the drawing? "))
; Преобразовать его ответ в символы верхнего регистра
(setq usr (strcase usr))
; Проверяют был ли его ответ "y" или "Y"
(if
(equal "Y" usr)
; Если это было, тогда завершить чертеж, иначе вывести сообщение
(command ".END")
(prompt "\nRemaining in drawing editor.")
)
; тихий выход из функции
(prin1)
)
Родная команда END может отключаться командой UNDEFINE и поэтому
может заменяться функцией AutoLISP C:END .
Command: UNDEFINE
Command name: END
Command: (load "end")
C:END
Command: END
Really want to END the drawing? n
Remaining in drawing editor.
Command: END
Really want to END the drawing? y
Для эффективности и не выполненя ненужного связывания переменных,
которое может быть относительно дорого в смысле компьютерного
Содержание Назад Вперед