请高手帮我看一下这个LISP里的参数不能改变呢?
<p>(defun c:zbbg ()</p><p> ;;命令回显 <br/> (setvar "CMDECHO" 0)<br/> (command "undo" "be")<br/> ;;捕捉设置 <br/> (setq osmode_old (getvar "OSMODE"))</p><p> ;;参数设置 <br/> (if (= 内框颜色 nil)<br/> (setq 内框颜色 1<br/> 文字颜色 2<br/> 外框颜色 3<br/> 坐标精度 3<br/> 表格_高度 6<br/> 表格_宽度1<br/> 16<br/> 表格_宽度2<br/> 10<br/> 表格_宽度3<br/> 25<br/> 表头字高 2.5<br/> 表中字高 2.0<br/> )<br/> )</p><p> </p><p> ;;绘制表头 <br/> (initget "G g")<br/> (setq pt0 (getpoint "\n请指定表格绘制位置,或者 [改变参数(G)]:"))</p><p> (if (or (= pt0 "G") (= pt0 "g"))<br/> (progn<br/> (sz)</p><p> (setq pt0 (getpoint "\n请指定表格绘制位置:"))<br/> )<br/> )<br/> (setq pt0_x (car pt0)<br/> pt0_y (cadr pt0)<br/> )<br/> (SETQ PT1 (polar PT0 0 表格_宽度1)<br/> PT3 (polar PT1 0 表格_宽度2)<br/> PT5 (polar PT3 0 表格_宽度3)<br/> PT7 (polar PT5 0 表格_宽度3)<br/> PT701 (polar PT7 0 表格_宽度3)<br/> PT2 (polar PT1 (* -0.5 PI) 表格_高度)<br/> PT4 (polar PT3 (* -0.5 PI) 表格_高度)<br/> PT6 (polar PT5 (* -0.5 PI) 表格_高度)<br/> PT8 (polar PT7 (* -0.5 PI) 表格_高度)<br/> PT801 (polar PT701 (* -0.5 PI) 表格_高度)<br/> PT9 (polar PT0 (* -0.5 PI) 表格_高度)<br/> )<br/> (COMMAND "color" 内框颜色)<br/> (COMMAND "PLINE" PT0 PT701 PT801 PT9 PT0 "")<br/> (COMMAND "PLINE" PT1 PT2 PT4 PT3 PT4 PT6 PT5 PT6 PT8 PT7 pt8 pt801<br/> pt701 "")<br/> (SETQ ZBS1 (entlast))</p><p> (SETQ PT10 (polar PT0 (* -0.5 PI) (/ 表格_高度 2.0))<br/> PT10 (polar PT10 0 (/ 表格_宽度1 2.0))<br/> )<br/> (SETQ PT11 (polar PT10 0 (/ (+ 表格_宽度1 表格_宽度2) 2.0))<br/> PT12 (polar PT11 0 (/ (+ 表格_宽度2 表格_宽度3) 2.0))<br/> PT13 (polar PT12 0 表格_宽度3)<br/> PT14 (polar PT13 0 表格_宽度3)<br/> )<br/> (COMMAND "color" 文字颜色)<br/> (COMMAND "TEXT" "J" "MC" PT10 表头字高 0.0 "编 号")<br/> (COMMAND "TEXT" "J" "MC" PT11 表头字高 0.0 "点号")<br/> (COMMAND "TEXT" "J" "MC" PT12 表头字高 0.0 "坐 标(X)")<br/> (COMMAND "TEXT" "J" "MC" PT13 表头字高 0.0 "坐 标(Y)")<br/> (COMMAND "TEXT" "J" "MC" PT14 表头字高 0.0 "坐 标(Z)")</p><p> ;;表头绘制完毕 <br/> ;;下面点取待测点 <br/> (SETQ I 1)<br/> (setvar "OSMODE" osmode_old)<br/> (WHILE (/= nil<br/> (SETQ PTI<br/> (GETPOINT (strcat "\n请指定要测量位置<第" (itoa i) "次>:")<br/> )<br/> )<br/> )<br/> (setq osmode_old (getvar "OSMODE")) ;设置捕捉模式 <br/> (setvar "OSMODE" 0)<br/> (COMMAND "COPY" ZBS1 "" pt0 pt9)<br/> (SETQ ZBS1 (entlast)<br/> pt11 (polar PT11 (* -0.5 PI) 表格_高度)<br/> pt12 (polar PT12 (* -0.5 PI) 表格_高度)<br/> pt13 (polar PT13 (* -0.5 PI) 表格_高度)<br/> pt14 (polar PT14 (* -0.5 PI) 表格_高度)<br/> pti_x (rtos (car PTI) 2 坐标精度)<br/> pti_y (rtos (cadr PTI) 2 坐标精度)<br/> pti_z (rtos (caddr PTI) 2 坐标精度)<br/> )<br/> (princ (strcat "X=" pti_y " Y=" pti_x " Z=" pti_z))</p><p> (COMMAND "TEXT"<br/> "J"<br/> "MC"<br/> PT11<br/> 表中字高<br/> 0.0<br/> (strcat (itoa i) "#")<br/> )<br/> (COMMAND "TEXT" "J" "MC" PT12 表中字高 0.0 pti_x)<br/> (COMMAND "TEXT" "J" "MC" PT13 表中字高 0.0 pti_y)<br/> (COMMAND "TEXT" "J" "MC" PT14 表中字高 0.0 pti_z)</p><p> (setq i (+ i 1))<br/> (setvar "OSMODE" osmode_old)<br/> )</p><p><br/> ;;如果记录有坐标数据,就绘制外边框 <br/> (if (> i 1)<br/> (progn</p><p> (setq osmode_old (getvar "OSMODE")) ;设置捕捉模式 <br/> (setvar "OSMODE" 0)<br/> ;;绘制外框 <br/> (SETQ PT701 (polar PT701 (* -0.5 PI) (* 表格_高度 I)))<br/> (COMMAND "color" 外框颜色)<br/> (COMMAND "rectang" "W" 0.2 PT0 PT701)<br/> ;;编号信息 <br/> (setq xxx nil<br/> xxx (getstring T "\n请输入编号信息: ")<br/> )<br/> (if (= xxx "")<br/> (setq xxx "请写编号信息")<br/> )<br/> (setq pt9 (polar PT9 (* -0.5 PI) (* 表格_高度 (- I 1) 0.5))<br/> pt9 (polar PT9 0 (/ 表格_宽度1 2.0))<br/> )<br/> (COMMAND "TEXT" "J" "MC" PT9 表中字高 0.0 xxx)</p><p> (princ (strcat "\n操作已完成,共收集到"<br/> (itoa (- i 1))<br/> "个坐标点。"<br/> )<br/> )<br/> )<br/> (princ "\n操作已完成,没有收集到坐标点!!")<br/> )</p><p><br/> ;;退出处理 <br/> (command "undo" "e")<br/> (if (= i 1)<br/> (command "undo" 1)<br/> )<br/> (setvar "OSMODE" osmode_old)<br/> (setvar "CMDECHO" 1)<br/> (princ)<br/>)</p><p>;;;=================================================== <br/>(defun c:sz ()<br/> (sz)<br/> (princ<br/> "\n键入命令\"SZ\"可进行坐标测量绘制时用到的参数设置。"<br/> )<br/> (princ)<br/>)<br/>;;;=================================================== <br/>;;;设置 参数 <br/>(defun sz ()<br/> (princ "\n设置坐标标注中的参数,请输入选项:")</p><p> (princ (strcat "\n[第1列宽度(1)" "/第2列表格宽度(2)"<br/> "/第3列表格宽度(3)" "/表格高度(4)/"<br/> "\n表头字高(5)" "/表中字高(6)"<br/> "/恢复默认值(0)]"<br/> )<br/> )</p><p><br/> (setq ii (getint "\n请输入选项:")<br/> )</p><p> (if (or (= ii nil) (< ii 0) (> ii 6))<br/> (princ "\n参数无改变,设置完成!")<br/> (cond<br/> ((= ii 0)<br/> (progn<br/> (setq 内框颜色 1<br/> 文字颜色 2<br/> 外框颜色 3<br/> 坐标精度 3<br/> )<br/> (setq 表格_高度 6<br/> 表格_宽度1<br/> 16<br/> 表格_宽度2<br/> 10<br/> 表格_宽度3<br/> 25<br/> 表头字高 2.5<br/> 表中字高 2.0<br/> )<br/> (princ "\n参数已全部恢复至默认值。")<br/> )<br/> )</p><p> ((= ii 1)<br/> (progn (princ (strcat "\n请输入第1列宽度<当前值"<br/> (rtos 表格_宽度1 2 坐标精度)<br/> ">:"<br/> )<br/> )<br/> (setq 表格_宽度1_x (getdist))<br/> (if (= 表格_宽度1_x nil)<br/> (princ "第1列宽度无改变!")<br/> (= 表格_宽度1 表格_宽度1_x)<br/> )<br/> )<br/> )<br/> ((= ii 2)<br/> (progn (princ (strcat "\n请输入第2列宽度<当前值"<br/> (rtos 表格_宽度2 2 坐标精度)<br/> ">:"<br/> )<br/> )<br/> (setq 表格_宽度2_x (getdist))<br/> (if (= 表格_宽度2_x nil)<br/> (princ "第1列宽度无改变!")<br/> (= 表格_宽度2 表格_宽度2_x)<br/> )<br/> )<br/> )<br/> ((= ii 3)<br/> (progn (princ (strcat "\n请输入第3~5列宽度<当前值"<br/> (rtos 表格_宽度3 2 坐标精度)<br/> ">:"<br/> )<br/> )<br/> (setq 表格_宽度3_x (getdist))<br/> (if (= 表格_宽度3_x nil)<br/> (princ "第3列宽度无改变!")<br/> (= 表格_宽度3 表格_宽度3_x)<br/> )<br/> )<br/> )</p><p> ((= ii 4)<br/> (progn (princ (strcat "\n请输入表格高度<当前值"<br/> (rtos 表格_高度 2 坐标精度)<br/> ">:"<br/> )<br/> )<br/> (setq 表格_高度_x (getdist))<br/> (if (= 表格_高度_x nil)<br/> (princ "表格高度无改变!")<br/> (= 表格_高度 表格_高度_x)<br/> )<br/> )<br/> )</p><p> ((= ii 5)<br/> (progn (princ (strcat "\n请输入表头字高<当前值"<br/> (rtos 表头字高 2 坐标精度)<br/> ">:"<br/> )<br/> )<br/> (setq 表头字高_x (getdist))<br/> (if (= 表头字高_x nil)<br/> (princ "表头字高无改变!")<br/> (= 表头字高 表头字高_x)<br/> )<br/> )<br/> )</p><p> ((= ii 6)<br/> (progn (princ (strcat "\n请输入表中字高<当前值"<br/> (rtos 表中字高 2 坐标精度)<br/> ">:"<br/> )<br/> )<br/> (setq 表中字高_x (getdist))<br/> (if (= 表中字高_x nil)<br/> (princ "表中字高无改变!")<br/> (= 表中字高 表中字高_x)<br/> )<br/> )<br/> )<br/> (t nil)<br/> )<br/> )<br/> (princ)<br/>)</p><p>;;;================================================== </p><p>;;以下为加载时提示信息 <br/>(princ "\n键入命令\"SZ\"可进行参数设置。")<br/>(princ "\n键入命令\"ZB\"可进行坐标测量绘制(表格方式)。")<br/>(princ)</p><p>为什么SZ里面的参数设置不能改变呢,请高手帮我改一下,顺便再发上来,谢谢</p> <p>代码好眼熟啊。</p> <p>先執行zbbg,再選擇G</p><p> </p>
页:
[1]