屏幕空白处双击执行自定义lsp程序命令!
用反应器如何实现双击屏幕空白区域,然后执行自定义的lsp程序命令呢!请个位高手帮吗啊!单击某种对象上面可以实现,单击屏幕却不会!请高手指点迷津啊!空白区域名称是什么呢? (ssget pt) 判断是否点击在空白区域! 如果有一定的编程技术,高手提点一下即可领悟,真奈刚入门,只略懂皮毛,还是不得要领。 本帖最后由 xiaoyingzi 于 2011-8-31 08:46 编辑;;; 加载双击反应器
(if (not *dblclkReactor*);;0 = 打开反应器
(setq *dblclkReactor*(VLR-Mouse-Reactor nil'((:VLR-beginDoubleClick . dblclkedit)))))
(defun dblclkedit(reactorObject point)
(if dblclk-edit(dblclk-edit point))
)
;;; 自定义双击反应器Double Click Reactor
(defun dblclk-edit (dblclk_point / owner dblclk_etype)
(setq owner (nentselp (trans (car dblclk_point) 0 1)));;指定点来选择对象
(if (= owner nil)
(vla-sendcommand (vla-get-activedocument(vlax-get-acad-object)) "youcommandname ")
)
) CAD空白处好像没有办法双击吧 先选择后命令模式下,确实不好实现空白处双击. 本帖最后由 Gu_xl 于 2011-8-31 20:31 编辑
这样改下就能避免在空白处双击要框选另一点的响应!
;;; 自定义双击反应器Double Click Reactor
(defun dblclk-edit (dblclk_point / owner dblclk_etype p)
(setq owner (nentselp (setq p (trans (car dblclk_point) 0 1))));;指定点来选择对象
(if (and (= owner nil) (= 0 (getvar 'cmdactive))) ;_有活动命令时不起作用
(vla-sendcommand (vla-get-activedocument(vlax-get-acad-object)) (strcat (rtos (car p) 2 3) "," (rtos (cadr p) 2 3) " YouCommand "))
)
)
不明白,为什么没按版主的处理,仍然可以,也没有要求框选另一点的响应?命令行提示:指定对角点: *取消* 猜是出错函数起了作用 本帖最后由 hf423 于 2011-9-2 00:09 编辑
一直再找,非常感谢!
非常感谢!