(defun c:bz(/ a ax ay b c d e f j g snamode osmode)
(setvar "CMDECHO" 0)
(setq snamode (getvar "snapmode"))
(setq osmode (getvar "osmode"))
(setvar "snapmode" 0)
(setvar "osmode" 0)
(setvar "blipmode" 0)
(initget 1)
(setq a (getpoint "\n给定标注点:"))
(initget 1)
(setq d (getangle "\n标注倾斜角度:"))
(setq ax (car a) ay (cadr a))
(setvar "textstyle" "standard")
(initget 7)
(setq g (getreal "\n请输入本图打印比例的分母:"))
(setq b (polar a (+ d (angtof "180")) (* g 5)))
(setq c (polar a d (* g 18)))
(setq e (polar a d (* g 2)))
(setq f (polar a (+ d (angtof "90")) (* g 5)))
(setq h (polar a (- d (angtof "90")) (* g 18)))
(setq j (polar a (- d (angtof "90")) (* g 2)))
(command "line" b c "")
(command "line" f h "")
(command "text" e (* 3 g) (* (/ d (angtof "180")) 180) (strcat "X=" (rtos ax 2 0)))
(command "text" j (* 3 g) (- (* (/ d (angtof "180")) 180) 90) (strcat "Y=" (rtos ay 2 0)))
(setvar "snapmode" snamode)
(setvar "osmode" osmode)
(prin1)
)
所加上的语句是在命令开始时保存当前的目标捕捉等状态,然后将这些变量临时性设置为0(即解除捕捉),在命令结束前再恢复之。