明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1853|回复: 8

[求助]l如何实现:右键执行上一次命令,而不是打开命令按钮面板?

[复制链接]
发表于 2009-5-22 18:14:00 | 显示全部楼层 |阅读模式

相信大家都有一些自己常用的lsp程序,

我做了个DCL对话框,(对话框上的每一个按钮可调用一个lsp),并设置   k   键启用这个对话框

我按下  K   键,成功调用其中一个命令(如:数字求和)并执行完毕。

当我还想继续使用这个命令(还要进行数字求和),此时按下鼠标右键却打开了对话框,而不是求和的lsp……

有没有办法实现:右键直接调用上次lsp命令而不是右键打开对话框呢???

发表于 2009-5-22 19:02:00 | 显示全部楼层

我的笨办法

(setq g-defun "copy")

(setq @i_scr (open "c:\\QGY_temp\\@i_scr.scr" "w"))
 (write-line g-defun @i_scr)
 (close @i_scr)
 (command "script" "c:\\QGY_temp\\@i_scr.scr")

建立一个临时批处理文件存储你要执行的程序名或命令名

在你的程序的结尾处调用这个批处理而不是直接调用你所指定的程序

发表于 2009-5-22 19:32:00 | 显示全部楼层
(SETVAR "SHORTCUTMENU" 0)
(SETVAR "MBUTTONPAN" 0)
发表于 2009-5-22 21:00:00 | 显示全部楼层
楼上回帖只看标题不看内容
发表于 2009-5-23 07:05:00 | 显示全部楼层
masterlong发表于2009-5-22 21:00:00楼上回帖只看标题不看内容

请先试试看再质疑。

 楼主| 发表于 2009-5-23 13:19:00 | 显示全部楼层
好像都行不通唉……
发表于 2009-5-23 16:37:00 | 显示全部楼层

把楼主的需求归纳一下

就是想执行完一个命令以后按右键

这本来应该是重复命令的

但楼主此时想执行的是另一个命令

改系统参数就可以做到这一点?

如果不行不会贴出来

但是你要相应修改你的程序段

比方说你最后要调用的是(c:k)

那么你就要把"K"写入到批处理文件中

发表于 2009-5-23 18:24:00 | 显示全部楼层
重复命令最早好象是在autoplant上看到的,经过试验,吸收下来。
我的做法是在工具条上增加了一个"再"图标,可以做上次的命令
ID_TBRepeat    [_Button("重复命令",         zai_16.bmp,   zai_24.bmp) ]^C^C^PFUNC ^P
把保存的命令参数执行
(defun c:func()
  (eval x:nextcmd)
  (princ)
)
在对话框处理中把一些参数保存起来,以下是对话框处理中的一部分
             ((= bn "CVALVE")(setq x:nextcmd (list 'c:cvalve)))
             ((or (= bn "o2way")(= bn "32100"))(setq x:nextcmd (list 'p:vang bn nil 6)))
             ((or (= bn "o3way")(= bn "44800"))(setq x:nextcmd (list 'p:v3way bn nil 6)))
             ((or (= bn "o4way")(= bn "54900"))(setq x:nextcmd (list 'p:v4way bn nil 6)))
其中c:cvalve和(p:vang bn nil 6)等是些子程序调用
c:func命令定义可以成一个字母,可以一键起用上次的命令
发表于 2009-5-24 08:05:00 | 显示全部楼层

这个帖子里是程序实例

楼主参考下吧

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=75598&extra=&page=2&page=

首先运行puzz

统计对话框内将4个复选项全部取消

点确定退出puzz

然后空格或右键执行上次命令

你可以看到执行的不是puzz而是zz

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

本版积分规则

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

GMT+8, 2024-9-29 18:22 , Processed in 0.188616 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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