明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7623|回复: 27

屏幕空白处双击执行自定义lsp程序命令!

  [复制链接]
发表于 2011-8-30 09:59:23 | 显示全部楼层 |阅读模式
用反应器如何实现双击屏幕空白区域,然后执行自定义的lsp程序命令呢!请个位高手帮吗啊!单击某种对象上面可以实现,单击屏幕却不会!请高手指点迷津啊!空白区域名称是什么呢?
发表于 2011-8-30 11:21:14 | 显示全部楼层
(ssget pt) 判断是否点击在空白区域!
发表于 2011-8-30 18:45:26 | 显示全部楼层
如果有一定的编程技术,高手提点一下即可领悟,真奈刚入门,只略懂皮毛,还是不得要领。
发表于 2011-8-31 08:45:23 | 显示全部楼层
本帖最后由 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 ")
  )
)
发表于 2011-8-31 11:52:43 | 显示全部楼层
CAD空白处好像没有办法双击吧
发表于 2011-8-31 12:42:22 | 显示全部楼层
先选择后命令模式下,确实不好实现空白处双击.
发表于 2011-8-31 12:45:27 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-8-31 20:31 编辑

这样改下就能避免在空白处双击要框选另一点的响应!
  1. ;;; 自定义双击反应器Double Click Reactor
  2. (defun dblclk-edit (dblclk_point / owner dblclk_etype p)
  3.   (setq owner (nentselp (setq p (trans (car dblclk_point) 0 1))));;指定点来选择对象
  4.   (if (and (= owner nil) (= 0 (getvar 'cmdactive))) ;_有活动命令时不起作用
  5.       (vla-sendcommand (vla-get-activedocument(vlax-get-acad-object)) (strcat (rtos (car p) 2 3) "," (rtos (cadr p) 2 3) " YouCommand "))
  6.   )
  7. )


发表于 2011-8-31 20:05:19 | 显示全部楼层
不明白,为什么没按版主的处理,仍然可以,也没有要求框选另一点的响应?命令行提示:指定对角点: *取消* 猜是出错函数起了作用
发表于 2011-9-1 19:39:41 | 显示全部楼层
本帖最后由 hf423 于 2011-9-2 00:09 编辑

一直再找,非常感谢!
发表于 2011-9-2 14:08:05 | 显示全部楼层
非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-26 09:40 , Processed in 0.189884 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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