明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1142|回复: 2

[提问] 反应器不起作用

[复制链接]
发表于 2020-7-7 10:55:44 | 显示全部楼层 |阅读模式
文字中有段代码,查看时都正确,却不能显示?


(defun show-l (notifier-object reactor-object parameter-list / p str el)
  (setq p (nth 1 (reverse(vl-remove-if-not '(lambda(x)(= 10 (car x))) (entget(vlax-vla-object->ename notifier-object))))))
  (setq str (strcat "X=" (rtos (cadr p) 2 3) "\\PY=" (rtos (caddr p) 2 3)))
  (setq el (entget (handent (car (vlr-data reactor-object)))))  (princ el)
  (setq el (subst (vl-list* 304 str) (assoc 304 el) el))
  (entmod el);更新文本图元表
  (princ el)
  (princ)
)
(defun c:rct-line(/ el rlt vrl v_l1)
  (setq el(car(entsel "\n111")))
  (setq rlt(list(vlax-ename->vla-object el)));将图元名转换为VLA对象
  ;创建对象反应器,回调事件是图元被修改,回调函数是show-l
  (setq v_l1(list(cdr (assoc 5 (entget el)))))
  (setq vrl(vlr-pers(vlr-object-reactor rlt v_l1 '((:vlr-modified . show-l)))))
  (princ)
  )
在程序中插入(princ el)

命令: RCT-LINE
111
命令:
命令:
命令:
** 拉伸 **
指定拉伸点或 [基点(B)/复制(C)/放弃(U)/退出(X)]((-1 . <图元名: aeac170>) (0 . MULTILEADER) (330 . <图元名: aead700>) (5 . 8F) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbMLeader) (270 . 2) (300 . CONTEXT_DATA{) (40 . 1.0) (10 322.898 200.773 0.0) (41 . 0.18) (140 . 0.18) (145 . 0.09) (174 . 1) (175 . 6) (176 . 0) (177 . 0) (290 . 1) (304 . 123 345\P234 567) (11 0.0 0.0 1.0) (340 . <图元名: aead550>) (12 322.988 200.863 0.0) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 1) (172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 0) (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 321.658 199.532 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . LEADER{) (290 . 1) (291 . 1) (10 322.538 200.773 0.0) (11 1.0 0.0 0.0) (90 . 0) (40 . 0.36) (304 . LEADER_LINE{) (10 321.516 198.569 0.0) (91 . 0) (170 . 1) (92 . -1056964608) (340 . <图元名: 0>) (171 . -2) (40 . 0.0) (341 . <图元名: 0>) (93 . 0) (305 . }) (271 . 0) (303 . }) (272 . 9) (273 . 9) (301 . }) (340 . <图元名: aead670>) (90 . 279552) (170 . 1) (91 . -1056964608) (341 . <图元名: aead5b0>) (171 . -2) (290 . 1) (291 . 1) (41 . 0.36) (342 . <图元名: aeac140>) (42 . 0.18) (172 . 2) (343 . <图元名: aead550>) (173 . 1) (95 . 6) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1) (45 . 1.0) (271 . 0) (272 . 9) (273 . 9) (295 . 1))((-1 . <图元名: aeac170>) (0 . MULTILEADER) (330 . <图元名: aead700>) (5 . 8F) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbMLeader) (270 . 2) (300 . CONTEXT_DATA{) (40 . 1.0) (10 322.898 200.773 0.0) (41 . 0.18) (140 . 0.18) (145 . 0.09) (174 . 1) (175 . 6) (176 . 0) (177 . 0) (290 . 1) (304 . X=321.516\PY=198.569) (11 0.0 0.0 1.0) (340 . <图元名: aead550>) (12 322.988 200.863 0.0) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 1) (172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 0) (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 321.658 199.532 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . LEADER{) (290 . 1) (291 . 1) (10 322.538 200.773 0.0) (11 1.0 0.0 0.0) (90 . 0) (40 . 0.36) (304 . LEADER_LINE{) (10 321.516 198.569 0.0) (91 . 0) (170 . 1) (92 . -1056964608) (340 . <图元名: 0>) (171 . -2) (40 . 0.0) (341 . <图元名: 0>) (93 . 0) (305 . }) (271 . 0) (303 . }) (272 . 9) (273 . 9) (301 . }) (340 . <图元名: aead670>) (90 . 279552) (170 . 1) (91 . -1056964608) (341 . <图元名: aead5b0>) (171 . -2) (290 . 1) (291 . 1) (41 . 0.36) (342 . <图元名: aeac140>) (42 . 0.18) (172 . 2) (343 . <图元名: aead550>) (173 . 1) (95 . 6) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1) (45 . 1.0) (271 . 0) (272 . 9) (273 . 9) (295 . 1))((-1 . <图元名: aeac170>) (0 . MULTILEADER) (330 . <图元名: aead700>) (5 . 8F) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbMLeader) (270 . 2) (300 . CONTEXT_DATA{) (40 . 1.0) (10 322.898 200.773 0.0) (41 . 0.18) (140 . 0.18) (145 . 0.09) (174 . 1) (175 . 6) (176 . 0) (177 . 0) (290 . 1) (304 . 123 345\P234 567) (11 0.0 0.0 1.0) (340 . <图元名: aead550>) (12 322.988 200.863 0.0) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 1) (172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 0) (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 321.658 199.532 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . LEADER{) (290 . 1) (291 . 1) (10 322.538 200.773 0.0) (11 1.0 0.0 0.0) (90 . 0) (40 . 0.36) (304 . LEADER_LINE{) (10 321.516 198.569 0.0) (91 . 0) (170 . 1) (92 . -1056964608) (340 . <图元名: 0>) (171 . -2) (40 . 0.0) (341 . <图元名: 0>) (93 . 0) (305 . }) (271 . 0) (303 . }) (272 . 9) (273 . 9) (301 . }) (340 . <图元名: aead670>) (90 . 279552) (170 . 1) (91 . -1056964608) (341 . <图元名: aead5b0>) (171 . -2) (290 . 1) (291 . 1) (41 . 0.36) (342 . <图元名: aeac140>) (42 . 0.18) (172 . 2) (343 . <图元名:
aead550>) (173 . 1) (95 . 6) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1) (45 . 1.0) (271 . 0) (272 . 9) (273 . 9) (295 . 1))((-1 . <图元名: aeac170>) (0 . MULTILEADER) (330 . <图元名: aead700>) (5 . 8F) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbMLeader) (270 . 2) (300 . CONTEXT_DATA{) (40 . 1.0) (10 322.898 200.773 0.0) (41 . 0.18) (140 . 0.18) (145 . 0.09) (174 . 1) (175 . 6) (176 . 0) (177 . 0) (290 . 1) (304 . X=321.516\PY=198.569) (11 0.0 0.0 1.0) (340 . <图元名: aead550>) (12 322.988 200.863 0.0) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 1) (172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 0) (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 321.658 199.532 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . LEADER{) (290 . 1) (291 . 1) (10 322.538 200.773 0.0) (11 1.0 0.0 0.0) (90 . 0) (40 . 0.36) (304 . LEADER_LINE{) (10 321.516 198.569 0.0) (91 . 0) (170 . 1) (92 . -1056964608) (340 . <图元名: 0>) (171 . -2) (40 . 0.0) (341 . <图元名: 0>) (93 . 0) (305 . }) (271 . 0) (303 . }) (272 . 9) (273 . 9) (301 . }) (340 . <图元名: aead670>) (90 . 279552) (170 . 1) (91 . -1056964608) (341 . <图元名: aead5b0>) (171 . -2) (290 . 1) (291 . 1) (41 . 0.36) (342 . <图元名: aeac140>) (42 . 0.18) (172 . 2) (343 . <图元名: aead550>) (173 . 1) (95 . 6) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1) (45 . 1.0) (271 . 0) (272 . 9) (273 . 9) (295 . 1))((-1 . <图元名: aeac170>) (0 . MULTILEADER) (330 . <图元名: aead700>) (5 . 8F) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbMLeader) (270 . 2) (300 . CONTEXT_DATA{) (40 . 1.0) (10 322.898 200.773 0.0) (41 . 0.18) (140 . 0.18) (145 . 0.09) (174 . 1) (175 . 6) (176 . 0) (177 . 0) (290 . 1) (304 . 123 345\P234 567) (11 0.0 0.0 1.0) (340 . <图元名: aead550>) (12 322.988 200.863 0.0) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 1) (172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 0) (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 321.658 199.532 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . LEADER{) (290 . 1) (291 . 1) (10 322.538 200.773 0.0) (11 1.0 0.0 0.0) (90 . 0) (40 . 0.36) (304 . LEADER_LINE{) (10 321.516 198.569 0.0) (91 . 0) (170 . 1) (92 . -1056964608) (340 . <图元名: 0>) (171 . -2) (40 . 0.0) (341 . <图元名: 0>) (93 . 0) (305 . }) (271 . 0) (303 . }) (272 . 9) (273 . 9) (301 . }) (340 . <图元名: aead670>) (90 . 279552) (170 . 1) (91 . -1056964608) (341 . <图元名: aead5b0>) (171 . -2) (290 . 1) (291 . 1) (41 . 0.36) (342 . <图元名: aeac140>) (42 . 0.18) (172 . 2) (343 . <图元名: aead550>) (173 . 1) (95 . 6) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1) (45 . 1.0) (271 . 0) (272 . 9) (273 . 9) (295 . 1))((-1 . <图元名: aeac170>) (0 . MULTILEADER) (330 . <图元名: aead700>) (5 . 8F) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbMLeader) (270 . 2) (300 . CONTEXT_DATA{) (40 . 1.0) (10 322.898 200.773 0.0) (41 . 0.18) (140 . 0.18) (145 . 0.09) (174 . 1) (175 . 6) (176 . 0) (177 . 0) (290 . 1) (304 . X=321.516\PY=198.569) (11 0.0 0.0 1.0) (340 . <图元名: aead550>) (12 322.988 200.863 0.0) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 1) (172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 0) (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 321.658 199.532 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . LEADER{) (290 . 1) (291 . 1) (10 322.538 200.773 0.0) (11 1.0 0.0 0.0) (90 . 0) (40 . 0.36) (304 . LEADER_LINE{) (10 321.516 198.569 0.0) (91 . 0) (170 . 1) (92 . -1056964608) (340 . <图元名: 0>) (171 . -2) (40 . 0.0) (341 . <图元名: 0>) (93 . 0) (305 . }) (271 . 0) (303 . }) (272 . 9) (273 . 9)
(301 . }) (340 . <图元名: aead670>) (90 . 279552) (170 . 1) (91 . -1056964608) (341 . <图元名: aead5b0>) (171 . -2) (290 . 1) (291 . 1) (41 . 0.36) (342 . <图元名: aeac140>) (42 . 0.18) (172 . 2) (343 . <图元名: aead550>) (173 . 1) (95 . 6) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1) (45 . 1.0) (271 . 0) (272 . 9) (273 . 9) (295 . 1))



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-7-8 14:07:55 | 显示全部楼层
本帖最后由 jun353835273 于 2020-7-8 14:17 编辑

你这个反应器,是移动自身触发的条件。没有做过这种,感觉实现不了,vl-catch-all-apply错误处理判断都是通不过,返回值为#<%catch-all-apply-error%>

你可以自己画多段线这样实现,按你现在这种方法应该是没有问题的

发表于 2020-7-8 14:08:47 | 显示全部楼层
打印出来的图元资料都是(princ el)得到的,而(entmod el)返回的是nil,即不能修改图元。
使用vla-put-textstring试了下,提示"对象正在通知",猜测callback函数执行期间不能改变图元资料。
如果还是想用反应器的话,可以考虑用PL线和text/mtext。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-18 00:48 , Processed in 0.193262 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表