Lisp调用Lisp问题
好的,我有一个lisp设置,它询问、、、。我选择的每一个都会运行另一个lisp,询问、、、、、、、,然后继续。问题是,如果我运行第一个lisp,它将运行第二个lisp,但在我选择任何选项后终止,但如果我运行第二个lisp,它将运行良好。有人能帮忙吗!!!。Lisp one是第一个Lisp,第二个Lisp是第二个Lisp之一。(defun c:setup ()
(initget "122X34 224X36 330X42 436X48")
(setq SHEET (getkword "\nEnter Sheet 22X34,24X36,30X42,36X48: "))
(cond
((= SHEET "122X34")
(INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
(SETQ SCALE (getkword "\Enter Scale FULL,1/2=1,1/4=1,1/8=1,1/20=1,1/30=1,1/40=1,1/50=1:"))
(cond
(COMMAND "22X34"))
((= SHEET "224X36")
(INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
(SETQ SCALE (getkword "\Enter Scale FULL,1/2=1,1/4=1,1/8=1,1/20=1,1/30=1,1/40=1,1/50=1:"))
(cond
(COMMAND "24X36"))
((= SHEET "330X42")
(INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
(SETQ SCALE (getkword "\Enter Scale FULL,1/2=1,1/4=1,1/8=1,1/20=1,1/30=1,1/40=1,1/50=1:"))
(cond
(COMMAND "30X42"))
((= SHEET "436X48")
(INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
(SETQ SCALE (getkword "\Enter Scale FULL,1/2=1,1/4=1,1/8=1,1/20=1,1/30=1,1/40=1,1/50=1:"))
(cond
(COMMAND "36X48"))
)
)
)
)
(princ)
)
(defun c:22X34 ()
(INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
(SETQ SCALE (getkword "\Enter Scale FULL,1/2=1,1/4=1,1/8=1,1/20=1,1/30=1,1/40=1,1/50=1:"))
(cond
((= SCALE "1FULL")
(COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
((= SCALE "21/2=1")
(COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
((= SCALE "31/4=1")
(COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
((= SCALE "41/8=1")
(COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
((= SCALE "51/20=1")
(COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
((= SCALE "61/30=1")
(COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
((= SCALE "71/40=1")
(COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
((= SCALE "81/50=1")
(COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
)
)
)
)
)
)
)
)
(princ)
) 在“c:setup”中,cond语句的右括号都放错了位置,后续命令的调用方式不正确,这些命令不必位于它们自己的cond语句中。当下面的代码工作时,您会发现运行c:setup将导致发出两次scale提示。关于如何构造这些命令,请向下滚动到下一个代码框。
以下是我将如何构造它们:
3Footpeg
页:
[1]