轴线号程序,不能连续运行
;;;;-----------------轴线号----------------(defun c:zxh1 (/ ap lp ku p1)
;;保存系统变量设置
(setq old_os (getvar "osmode")
old_cmd (getvar "cmdecho")
)
(setq cl (getvar "clayer"))
(setvar "cmdecho" 0)
(setvar "osmode" 33)
(if (not (tblsearch "layer" "轴线"))
(command "-layer" "m" "轴线" "c" "4" "" "")
)
(while (setq ap (getpoint "\n 第一点<退出>: "))
(setvar "orthomode" 1);_开
(setq lp (getpoint ap "\n 第二点: "))
(setq ku (angle ap lp))
(setq p1 (polar lp ku 400))
;;圆心
(command "._line" ap lp "")
(command "._insert" "G:\axis.dwg" p1 "" "" "")
)
;;恢复系统变量设置
(setvar "cmdecho" old_cmd)
(setvar "osmode" old_os)
(setvar "clayer" cl)
(setq *error* olderr)
(princ)
)
这个程序取消 (while )这个就没有问题,有这个就出现问题见图。但我想要连续运行,应该怎么写
附图见这个
(command "._line" ap lp "")
(command "._insert" "G:\axis.dwg" p1 "" "" "")
试试:===>
(command "._line" "_non"ap "_non" lp "")
(command "._insert" "G:\axis.dwg""_non" p1 "" "" "") 应该不捕捉的问题,是程序加了 (while )要求连续运行,当在要求输入属性块的值时,程序没有停下等键盘输入而是直接运行下去了,所以出现上面的问题,如果能让程序在要求输入属性块的值时停下,等输入值后再继续运行就应该没有问题了,就是要在(command "._insert" "G:\axis.dwg""_non" p1 "" "" "")后面让程序暂停 你的空格多了一个就会出现这样的问题。
页:
[1]