标注面积时加入反应器,面积变化出现无限循环,怎么修改,谢谢
标注面积时加入反应器,面积变化出现无限循环,怎么修改,在2006上可以正常使用,高版本就不可以
(defun c:tt ()
(setq ent (car (entsel "\n选择线")))
(setq pt (getpoint ""))
(setq obj_pline (vlax-ename->vla-object ent))
(setq txt (strcat "S=" (rtos (vla-get-area obj_pline) 2 2) ))
(entmake
(list (cons 0 "TEXT")
(cons 8 "MJ")
(cons 10 pt)
(cons 11 pt)
(cons 71 0)
(cons 72 1)
(cons 73 2)
(cons 1 txt)
(cons 40 1.5)
)
)
(setq ent_txt (entlast))
(setq obj_txt (vlax-ename->vla-object ent_txt))
(setq ve (List obj_pline))
(setqreactor
(vlr-object-reactor
ve
obj_txt
'((:vlr-objectClosed . xlr_pl_mj_text))
)
)
)
;;;;修改进入无限循环
(defun xlr_pl_mj_text (obj obj2 vl)
(vla-put-textstring
(vlr-data obj2)
(strcat "S=" (rtos (vla-get-area obj) 2 2) )
)
)
:vlr-objectModified 本帖最后由 永不言弃 于 2024-3-27 11:52 编辑
kozmosovia 发表于 2024-3-26 22:39
:vlr-objectModified
换成这个,就会不更新面积了 如果要在拖动曲线时面积就变化,除了加入实体反应器,还需要增加命令反应器来监控可能修改边界曲线的命令被触发并相应执行操作。具体可以参考CAD安装目录中的教程GPath,里面有详细的反应器设计逻辑说明。
页:
[1]