|
我写了两个程序,如下.程序1,用entsel碰选1#直线,期望在该直线的a点,完成一个操作.程序2,碰选2#直线(另一条直线),期望在该直线的的b点完成一个操作.每个程序都能成功地单独运行,并达到预期的目的. 我把程序1和程序2原原本本按先后秩序放在一起,再运行.得到的结果是:在命令行中输入程序1的函数名时,在1#直线上碰选后,能达到预期的目的,即在1#直线的a点完成一个操作,可是输入程序2的函数名并碰选2#直线后,本应在2#直线的b点发生的操作却发生在1#直线的b点.请教各位这是怎么回事,如何处理哩?
(defun c:pf () (setvar "osmode" 0);关闭对象捕捉 (setvar "cmdecho" 0) (setq a (car (entsel))) (setq b (entget a)) (setq p (cdr (assoc 10 b))) (setq q (cdr (assoc 11 b))) (setq ang (+ (/ pi 2) (angle p q))) (setq c (polar p ang 10)) (command "_leader" c p "a" "" "n") (setvar "osmode" 1) ) (princ) (defun c:pl () (setvar "osmode" 0);关闭对象捕捉 (setvar "cmdecho" 0) (setq z (car (entsel))) (setq x (entget a)) (setq v (cdr (assoc 10 b))) (setq m (cdr (assoc 11 b))) (setq ang (+ (/ pi 2) (angle p q))) (setq k (polar m ang 10)) (command "_leader" k m "a" "" "n") ) (princ)
|