明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1235|回复: 0

[源码] 第一次学做反应器,求高手帮忙完善下~~~

[复制链接]
发表于 2014-10-17 22:50:17 | 显示全部楼层 |阅读模式
初次练习玩反应器,很多不懂的,求高手帮忙~~~
目前完成的是,改变文本时,PL线图层随之改变.
1.求高手帮忙添加一个功能,删除文字时,关联的pl线也一起删除~
2.关闭后重新打开,反应器关联就消失了,求帮忙....
  1. (defun makelayer (lname / olayer)
  2.   (if (vl-catch-all-error-p
  3.         (setq olayer
  4.           (vl-catch-all-apply 'vla-add
  5.             (list
  6.               (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
  7.               lname
  8.             )
  9.           )
  10.         )
  11.       )
  12.     nil
  13.     olayer
  14.   )
  15. )
  16. ;==================================
  17. (vl-load-com)
  18. ;反应器回调函数
  19. (defun txt-pl (per rea paramete / str ydlay )
  20.     ;;获取文字内容
  21.     (setq str (vla-get-textstring per)
  22.           ydlay (strcat "yd_" (strcase str))
  23.           )
  24.     ;取出边界线对象
  25.     (setq e1 (vlax-ename->vla-object
  26.                (handent
  27.                  (car (vlr-data rea))
  28.                 )
  29.               )
  30.           )
  31.     ;;修改边界线图层
  32.     (makelayer ydlay)   
  33.     (vla-put-layer e1 ydlay)
  34.     (princ)
  35. )
  36. ;程序开始
  37. (defun c:tt( / ent1 obj1 hd ent2 obj2 str ydlay)
  38. (if(and (setq ent1 (car(entsel "\n 请选择地块边界线:"));pl线对象
  39.               obj1 (vlax-ename->vla-object ent1)
  40.               hd (cdr (assoc 5 (entget ent1)))
  41.               )
  42.         (setq ent2 (car(entsel "\n 请选择用地代码:"));文字对象
  43.               obj2 (vlax-ename->vla-object ent2)
  44.               str (vla-get-textstring obj2)
  45.               )
  46.      )
  47.   (progn
  48.       (setq ydlay (strcat "YD_" (strcase str)))
  49.       (makelayer ydlay)
  50.       (vla-put-layer obj1 ydlay)
  51.       (vlr-pers-release ;_文字对象反应器
  52.         (vlr-object-reactor
  53.           (list obj2)
  54.           (list hd)
  55.           '((:vlr-modified . txt-pl))
  56.         )
  57.       )
  58.   )
  59. )
  60. )
"觉得好,就打赏"
还没有人打赏,支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 01:57 , Processed in 0.163642 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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