龙龙仔 发表于 2003-12-22 17:05:00

[求助]如何由点选得知对象贴付了甚么反应器!

如何由点选得知对象贴付了甚么反应器!
难道只能用(vlr-reactors)遍历比对吗?

下列为贴付反应器程序,截取自帮助档
(defun C:TTT ()                               
(setq        MYCIRCLE
       ;; 提示输入中心点与半径:
       (progn        (setq CTRPT(getpoint "\nCircle center point: ")
                      RADIUS (distance CTRPT
                                     (getpoint CTRPT "\nRadius: ")
                             )
                )
                ;; 加入圆周到图面模型空间。巢状化函数
                ;; 呼叫以取得到目前图面之模型的路径
                ;; space: AcadObject > ActiveDocument > ModelSpace
                (vla-addcircle
                  (vla-get-modelspace
                  (vla-get-activedocument (vlax-get-acad-object))
                  )
                  (vlax-3d-point CTRPT)
                  RADIUS
                )
       )
)
(setq        CIRCLEREACTOR
       (vlr-object-reactor
           (list MYCIRCLE)
           "Circle Reactor"
           '((:vlr-modified . PRINT-RADIUS))
       )
)
)
;;下列程序代码定义名为 print-radius 的回复函数。这个函数可以用来打印一个圆周的半径:
(defun PRINT-RADIUS (NOTIFIER-OBJECT REACTOR-OBJECT PARAMETER-LIST)
(vl-load-com)
(cond
    ((vlax-property-available-p
       NOTIFIER-OBJECT
       "Radius"
   )
   (princ "The radius is ")
   (princ (vla-get-radius NOTIFIER-OBJECT))
    )
)
)

meflying 发表于 2003-12-22 19:07:00

估计没有别的办法了,对象反应器好象并不是真正附着在对象上面,可能是CAD的消息处理时通过某些链接指向这个对象,如果真正是附着的,复制对象后应该也存在反应器。。。

sieben 发表于 2003-12-22 22:31:00

1,反应器是对应特定对象的,复制对象产生了一个新的对象,新对象应该和源对象的反应器没有关系
2,2000版本使用反应器本人感觉很危险,2004则较稳定

meflying 发表于 2003-12-23 08:33:00

sieben发表于2003-12-22 22:31:00static/image/common/back.gif1,反应器是对应特定对象的,复制对象产生了一个新的对象,新对象应该和源对象的反应器没有关系
2,2000版本使用反应器本人感觉很危险,2004则较稳定



如果是真的附着,复制就应该同样复制附着的东西,如颜色、扩展数据等,这些都是真附着在对象上的。。。
页: [1]
查看完整版本: [求助]如何由点选得知对象贴付了甚么反应器!