Nike
размещено: 16 Апреля 2012
Аннотация к книге "AutoLISP. Программирование в AutoCAD 14"
В настоящем издании рассматривается новая мощная интегрированная среда программирования Visual LISP для системы AutoCAD 14-й версии. Книга содержит описание структуры среды, главной и инструментальных панелей Visual LISP, текстового редактора, системы проверки синтаксиса, форматтера, компилятора, отладчика, встроенных функций и других элементов Visual LISP, а также правила ее запуска. В отдельном разделе книги поясняются основные понятия и определения языка AutoLISP, рассказывается об этапах программирования, функциях, расширяющих возможности языка. Особое внимание уделяется вопросам разработки программ на языке AutoLISP и отладки в среде Visual LISP. Автор приводит многочисленные примеры создания с использованием языка AutoLISP прототипов различных систем и подсистем для решения разнообразных задач. Книга предназначена для широкого круга читателей: учащихся, студентов, инженеров, разработчиков автоматизированных систем конструирования и проектирования в самых разных областях деятельности.
15.61 МБ
СКАЧАТЬ
Комментарии
Авторизоваться
(defun C:OFF2 (/ d obj ent adoc *error* undo lays Flag)
(defun *error* (msg)(vla-EndUndoMark adoc))
(vl-load-com)(setq adoc (vla-get-activedocument (vlax-get-acad-object))
lays (vla-get-layers adoc))(vla-StartUndoMark adoc)(setvar "CMDECHO" 0)
(if (null *OFF2*)(setq *OFF2* (abs (getvar "OFFSETDIST"))))
(if (zerop *OFF2*)(setq *OFF2* 1))(setq d (getvar "UNDOCTL"))
(cond ((= d 0) (vl-cmdf "_.UNDO" "_All"))
((= d 3) (vl-cmdf "_.UNDO" "_Control" "_All"))
(t nil)) ;_ end of cond
(princ "\n Величина смещения : ")
(initget 6)(if (null (setq d (getdist))) (setq d *OFF2*))
(setq *OFF2* d undo 0 Flag t)
(initget "Undo Отмени Г J Exit Выход У D _Undo Undo Undo Undo Exit Exit Exit Exit")
(while Flag
(setq obj (entsel (strcat "\n Выберите объект ["
(if (not (zerop undo)) "Отмени/" "")
"Выход] : ")))
(cond ((= obj "Undo")(if (not (zerop undo))(progn
(vl-cmdf "_UNDO" "_B")(setq undo (1- undo)))(alert "Нечего больше отменять")))
((= obj "Exit")(setq Flag nil))
((null obj)(if (= (getvar "ERRNO") 52)(setq Flag nil)(princ " *** Мимо ***")))
(t (setq ent (vlax-ename->vla-object (car obj)))
(cond ((= (vla-get-lock (vla-item lays (vla-get-layer ent))) :vlax-true)
(alert "На блокированном слое!"))
((vlax-method-applicable-p ent 'Offset)(vl-cmdf "_UNDO" "_M")(setq undo (1+ undo))
(vla-offset ent d)(vla-offset ent (- 0 d)))
(t (alert "Не удается создать объект, подобный данному")))))
(initget "Undo Отмени Г J Exit Выход У D _Undo Undo Undo Undo Exit Exit Exit Exit"))
(vla-EndUndoMark adoc)(princ))
(princ "\nНаберите в командной строке OFF2"))