Я пытаюсь сделать рисование монтажных схем в AutoCAD чрезвычайно простым, не нажимая кнопки, кроме моих предварительно запрограммированных.
Один включает в себя LISP, который не очень хорошо настраивает системные переменные, а затем сбрасывает их на прежние значения. Программа, кажется, выполняет намеченную функцию, но не с намеченными результатами.
Как только моя команда PLINE
запускается, переменные сбрасываются. Мне нужно PLINE
, чтобы начать, закончить, и , а затем , чтобы получить переменные.
Я пытался установить OrthoMode и SnapMode внутри команды в LISP, а также с помощью команд (setvar (getvar ...))
.
(defun varget ()
(setq lis '("orthomode" "snapmode"))
(setq var (mapcar 'getvar lis))
(setq var1 '(1 1))
(setq no 0)
(repeat (length lis)
(setvar (nth no lis) (nth no var1))
(setq no (1+ no))
)
(princ)
)
(defun varset ()
(setq no 0)
(repeat (length lis)
(setvar (nth no lis) (nth no var))
(setq no (1+ no))
)
(princ)
)
(princ)
(defun C:wire ()
(progn
(varget)
(setq prevlayer (getvar "clayer"))
(setq P (getstring "Audio(A)/Video(V)/Comm(CO)/Coax(R)/Control(C)/(N)etwork/(P)ower:"))
(IF (= P "V")(command "-LAYER" "M" "VIDEO" "C" "150" "" "" "PLINE" PAUSE))
(IF (= P "A")(command "-LAYER" "M" "AUDIO" "C" "94" "" "" "PLINE" PAUSE))
(IF (= P "CO")(command "-LAYER" "M" "COMM" "C" "206" "" "" "PLINE" PAUSE))
(IF (= P "R")(command "-LAYER" "M" "COAX" "C" "44" "" "" "PLINE" PAUSE))
(IF (= P "C")(command "-LAYER" "M" "CONTROL" "C" "10" "" "" "PLINE" PAUSE))
(IF (= P "N")(command "-LAYER" "M" "NETWORK" "C" "210" "" "" "PLINE" PAUSE))
(IF (= P "P")(command "-LAYER" "M" "POWER" "C" "7" "" "" "PLINE" PAUSE))
(setvar "clayer" prevlayer)
(varset)
(princ)
);Progn
);defun
Нет сообщений об ошибках.
Я ожидаю, что переменные будут сброшены после выполнения команды PLINE
.