找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 824|回复: 5

[求助] [求助]:vlr-copied怎么让对象被拷贝后被激活

[复制链接]
发表于 2004-3-11 15:39:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
vlr-copied总在对象拷贝过程中被激活,如何在拷贝完成后再激活~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-3-13 08:28:59 | 显示全部楼层
还需要定义一个 vlr-command-ended 反应器和回调函数,vlr-copied 回调函数用一个全局变量(或更新反应器的参数)存储必要的数据,最后调用 command 的回调函数修改实体。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-15 12:38:58 | 显示全部楼层

  1. ;|snsj
  2. vlr-copied總在對像拷貝過程中被激活,如何在拷貝完成後再激活~~~
  3. [color=red]
  4. (defun COPYED (NOTIFIER-OBJECT REACTOR-OBJECT PARAMETER-LIST)
  5.   (alert "  拷貝進行中!!!")
  6. )
  7. (setq obj (vlax-ename->vla-object (car (entsel))))
  8. (setq COPY_REACTOR
  9.        (vlr-object-reactor
  10.          (list obj)
  11.          NIL
  12.          '((:vlr-copied . COPYED))
  13.        )
  14. )
  15. [/color]
  16. |;


  17. [color=blue]
  18. ;;改用--建構編輯器反應裝置物件
  19. ;;(vlr-editor-reactor data callbacks)
  20. ;;  :vlr-commandEnded 完成 AutoCAD 指令。
  21. (defun COPYED (REACTOR-OBJECT PARAMETER-LIST)
  22.   (if (= (car PARAMETER-LIST) "COPY")
  23.     (alert "  拷貝! OK!!!")
  24.   )
  25. )

  26. ;;-------------------------------------------
  27. (setq COPY_REACTOR
  28.        (vlr-editor-reactor
  29.          NIL
  30.          '((:vlr-commandended . COPYED))
  31.        )
  32. )
  33. [/color]
  34. ;;取消反應器
  35. (defun CLEAN_COPY_REACTOR ()
  36.   (vlr-remove COPY_REACTOR)
  37. )

  38. ;;(vlr-remove-all :vlr-editor-reactor)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-15 15:03:49 | 显示全部楼层
请问龙兄,在你的例子里编辑发应器的vlr-commandended和直接用命令反应器有什么区别,期待指点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-3-15 16:50:07 | 显示全部楼层
红色的是copy的时候作出反应

蓝色的是"编辑完成"作出反应,并看这"编辑"是不是"copy",是copy就执行.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-15 17:32:17 | 显示全部楼层
呵呵,本来我的想法是对单个物体的,物体发应器看来还要加过滤来实现,其实开始是想只有某个物体被拷贝结束后才激活,其他的物体被拷贝后无效
搞个好玩的东西
例:用TEXT在CAD中插入数字1,然后用COPY拷贝,接着拷贝。。
把其中一个数字改成A或者a再拷贝。。。。。
把一个数字改成1.sfsfsfsf再拷贝测试
  1. [php]
  2. -----------------------------------------------------
  3.   (setq comdrec (vlr-command-reactor nil '((:vlr-Commandended . endcommand))))
  4.   -------------------------------------------------------------------------------------------
  5. (defun endcommand (calling-reactor endcommandInfo / thecommandend en-vla str getstr kjh x y glty n)
  6.   (setq thecommandend (nth 0 endcommandInfo))
  7. ; -----------------------------------------------------------------------------------
  8.    (setq en-vla (vlax-ename->vla-object (entlast)))(setq getstr(vla-get-TextString en-vla))
  9.   (mapcar
  10.     '(lambda (x)
  11.        (if (or(< x 48)(> x 57))
  12.          (setq kjh (cons x kjh))
  13.          )
  14.        )(vl-string->list getstr)
  15.        )
  16.     (cond((and(= thecommandend "COPY")(/= kjh nil))     
  17.     (vla-put-TextString en-vla(vl-string-subst (vl-list->string (list(1+
  18. (setq str(car(vl-string->list getstr))))))(vl-list->string (list str)) getstr)))
  19. ((= thecommandend "COPY")(vla-put-TextString en-vla (rtos(1+(atof getstr))2 0)))
  20.          )
  21.   )
  22. ;--------------------------------------------------------------------------   
  23. (defun c:qx ()
  24. (vlr-remove comdrec)
  25.   (princ)
  26.   )
  27. [/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 02:17 , Processed in 0.167541 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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