这两天在考虑lisp自动设置画图环境。但是在编制lisp的过程还是遇到了拦路虎。 一、简单的图层建立问题 用以下的命令,最后的1~2个层会有下面的提示,但是检查了很多遍自己觉得语法和括号都没有问题,百般不得其解,只得上来请教,感觉问题很低级,但是不知道错在哪里了。 命令: tcsz1 颜色编号无效。 ; 错误: 函数被取消 新颜色 [真彩色(T)/配色系统(CO)] : *取消* 输入选项 [?/生成(M)/设置(S)/新建(N)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/打印(P)/冻结( F)/解冻(T)/锁定(LO)/解锁(U)/状态(A)]: *取消* (defun mQ01粗线()(if (= Q01粗线 nil)(command "-layer" "new" "Q01粗线" "color" "84" "Q01粗线" ""))) (defun mQ02中线()(if (= Q02中线 nil)(command "-layer" "new" "Q02中线" "color" "231" "Q02中线" ""))) (defun mQ03轴线()(if (= Q03轴线 nil)(command "-layer" "new" "Q03轴线" "color" "55" "Q03轴线" ""))) (defun mQ04轴线圈()(if (= Q04轴线圈 nil)(command "-layer" "new" "Q04轴线圈" "color" "10" "Q04轴线圈" ""))) (defun mQ05细线()(if (= Q05细线 nil)(command "-layer" "new" "Q05细线" "color" "205" "Q05细线" ""))) (defun mQ06大填充()(if (= Q06大填充 nil)(command "-layer" "new" "Q06大填充" "color" "8" "Q06大填充" ""))) (defun mQ07小填充()(if (= Q07小填充 nil)(command "-layer" "new" "Q07小填充" "color" "129" "Q07小填充" ""))) (defun mQ08虚线()(if (= Q08虚线 nil)(command "-layer" "new" "Q08虚线" "color" "59" "Q08虚线" ""))) (defun mQ09特细线()(if (= Q09特细线 nil)(command "-layer" "new" "Q09特细线" "color" "239" "Q09特细线" ""))) (defun mQ10尺寸标注()(if (= Q10尺寸标注 nil)(command "-layer" "new" "Q10尺寸标注" "color" "122" "Q10尺寸标注" ""))) (defun mQ11文字标注()(if (= Q11文字标注 nil)(command "-layer" "new" "Q11文字标注" "color" "0" "Q11文字标注" ""))) (defun m01文字标注0()(if (= 01文字标注0 nil)(command "-layer" "new" "01文字标注0" "color" "0" "01文字标注0" ""))) (defun m02标注122()(if (= 02标注122 nil)(command "-layer" "new" "02标注122" "color" "122" "02标注122" ""))) (defun C:tcsz1() (mQ01粗线) (mQ02中线) (mQ03轴线) (mQ04轴线圈) (mQ05细线) (mQ06大填充) (mQ07小填充) (mQ08虚线) (mQ09特细线) (mQ10尺寸标注) (mQ11文字标注) (m01文字标注0) (m02标注122) ) 二、本想用形参的形式来简化lisp的编制过程,但是还是遇到了问题,似乎不支持两个形参还是不支持某种数据类型的传递。 (defun c:m71() (makelayer "ton" 2)) (defun makelayer(xx1 xx2) (if (= xx1 nil)(command "-layer" "new" xx1 "color" xx2 xx1 ""))) |