templeecw 发表于 2011-11-3 20:11:09

请教这个反应器如何实现?


我想实现如下功能:
首先让反应器判断双击事件,如果发生了,则进一步测试被双击的对象是否是圆,如果是圆,则弹出对话框以修改圆的半径,如果不是则不弹出对话框。

对于双击事件弹出对话框,这个很容易实现,问题是要在弹出对话框之前做个判断,如果是圆,才弹出,否则不响应。这里主要是不知道如何获得被双击的对象,如果能获得的话,那就可以通过对象的属性判断是否是圆了。

templeecw 发表于 2011-11-4 19:17:49

没人来解答吗?

Gu_xl 发表于 2011-11-4 20:26:18


;;;定义鼠标双击反应器

(or *dblclkCircleReactor*
(setq *dblclkCircleReactor*(VLR-Mouse-Reactor nil'((:VLR-beginDoubleClick . dblclkedit))))
    )
;;;回调函数
(defun dblclkedit (reactorObject point / owner)
(if (setq owner (nentselp (setq p (trans (car point) 0 1))));;指定点来选择对象
    (if (= "CIRCLE" (cdr (assoc 0 (entget (car owner)))))
      (alert "双击选择了园!")
      )
    )

)

页: [1]
查看完整版本: 请教这个反应器如何实现?