szx025 发表于 2016-8-25 16:43:01

轴线号程序,不能连续运行

;;;;-----------------轴线号----------------
(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      )这个就没有问题,有这个就出现问题见图。但我想要连续运行,应该怎么写

szx025 发表于 2016-8-25 16:44:35

附图见这个

USER2128 发表于 2016-8-26 07:45:12

(command "._line" ap lp "")
(command "._insert" "G:\axis.dwg" p1 "" "" "")
试试:===>
(command "._line" "_non"ap "_non" lp "")
(command "._insert" "G:\axis.dwg""_non" p1 "" "" "")

szx025 发表于 2016-8-26 08:06:31

应该不捕捉的问题,是程序加了 (while      )要求连续运行,当在要求输入属性块的值时,程序没有停下等键盘输入而是直接运行下去了,所以出现上面的问题,如果能让程序在要求输入属性块的值时停下,等输入值后再继续运行就应该没有问题了,就是要在(command "._insert" "G:\axis.dwg""_non" p1 "" "" "")后面让程序暂停

edata 发表于 2016-8-26 10:54:20

你的空格多了一个就会出现这样的问题。
页: [1]
查看完整版本: 轴线号程序,不能连续运行