求助动态坐标反应器的操作(晓东论坛无人问津)
最近用反应器制作了个动态坐标显示的东西,可惜只能照猫画虎做个连接到点实体的对象反应器来实现,无法做个自身随位置改变而改变的反应器。请相关高手伸出援助之手。下面放上我 的lisp代码和操作效果。奇怪的是如果同时移动点和文字,而文字会在原来的位置和新移动到的位置显示两个实体,用regen刷新后原来位置上的就消失了。还有个问题,明经论坛最近打开网页需要20-30秒的反应时间,不知是网站被黑了还是我电脑的问题。
还是访问晓东比较流畅 http://bbs.xdcad.net/thread-679140-1-1.html(vl-load-com)
(defun c:bb ()
(setq e-pt (car (entsel "\n 点")))
(setq e-text (car (entsel "\n 文字")))
(setqel-pt(entget e-pt)
str(strcat"X="
(rtos (cadr (assoc 10 el-pt)) 2 3)
" Y="
(rtos (caddr (assoc 10 el-pt)) 2 3)
)
el-text(entget e-text)
jb(list (cdr (assoc 5 el-text)))
obj-pt(list (vlax-ename->vla-object e-pt))
)
(setq
vrl(vlr-pers
(vlr-object-reactor obj-pt jb '((:vlr-modified . c-2l)))
)
)
(princ)
(setq el-text (subst (cons 1 str) (assoc 1 el-text) el-text))
(entmod el-text)
(setq loop T)
(while loop
(setqcode (grread T 8)
mod(car code)
val(cadr code)
)
(cond
((= 5 mod)
(setq el-pt (subst (cons 10 val) (assoc 10 el-pt) el-pt))
(entmod el-pt)
(command "regen")
)
((or (= 3 mod) (= 25 mod)) (setq loop nil))
)
)
)
(defun c-2l (notifier-object
reactor-object
parameter-list
/
)
(setqp (vlax-safearray->list
(vlax-variant-value
(vla-get-Coordinates notifier-object)
)
)
)
(setq str (strcat "X=" (rtos (car p) 2 3) "Y=" (rtos (cadr p) 2 3)))
(setq e (handent (car (vlr-data reactor-object)))) ;获取文本图元名
(setq el (entget e))
(setq el (subst (vl-list* 1 str) (assoc 1 el) el))
(entmod el) ;更新文本图元表
)
页:
[1]