您的位置:网站首页 > CAD新闻

深度定义AutoCAD菜单 使用Alt及系统保留的键盘快捷键

时间:2014-05-21 22:28:03 来源:未知

深度定义AutoCAD菜单,使用Alt 及系统保留的键盘快捷键,增强右键关联菜单

Auotcad有一些默认的键盘加速快捷键,如F3键,Ctrl + 数字键1,2,3,Ctrl +字母键A ,S,P 等。但默认的快捷键很少,免不了要自己动手增加一些来提高工作效率。普通的定义快捷键,这里就不多说了。但AutoCAD本身对快捷键有些限制,辅助键只可以使用Ctrl ,Ctrl+Alt,Ctrl+Shift,Ctrl+Shift+Alt来配合某些字母键、数字键、功能键或虚拟键(如 F5 ,Insert ,NumPad7)等。
受支持的虚拟键有:
Escape 、Insert 、Delete 、Home、End 、Page Up 、Page Down 、左箭头、右箭头、上箭头和下箭头。

Escape 只能单独使用或与修饰符组合键 Ctrl+Shift+Alt 配合使用。不过windows7已经把Esc键占了,咱就不动它了。

个人经验,实际使用中,左手键盘右手鼠标比较有效率,对于左手操作,Ctrl ,Ctrl+Alt 配合其它键比较好按,Ctrl+Shift 一般,Ctrl+Shift+Alt 则按键太多令人抓狂,左手5根指头用4根,怎么按都别扭,估计很少人设置这个做快捷键,实在是不太方便使用,尤其是在右手不离开鼠标的前提下。之前用过一段时间AutoHook这个软件,可以允许在AutoCAD用一些奇怪的键盘组合(Alt,Shift等)来输出命令,尤其Alt 加左手几个字母和数字十分好用,但网上找到的可用版本,只支持到AutoCAD2007;论坛里之前也有人发一个ARX版本的类似插件,但现在过期不可用了。其实可以用一个绕弯子的办法,来突破限制,使用Alt 组合键及覆盖系统的一些保留快捷键。

找一个AutoCAD 2004或者05的菜单文件,名称是acad.mnu,用记事本打开,找到"***Accelerator"字段,可以看到以下内容:
***ACCELERATORS
ID_Hyperlink [CONTROL+"K"]
[CONTROL+"L"]^O
[CONTROL+"R"]^V
ID_SelAll [CONTROL+"A"]
ID_Copyclip [TOOLBAR+CONTROL+"C"]
ID_New [CONTROL+"N"]
ID_Open [TOOLBAR+CONTROL+"O"]
ID_Print [TOOLBAR+CONTROL+"P"]
ID_Save [TOOLBAR+CONTROL+"S"]
ID_Saveas [CONTROL+SHIFT+"S"]
ID_APP_EXIT[INTERNAL+CONTROL+"Q"]
ID_Pasteclip[TOOLBAR+CONTROL+"V"]
ID_Copybase [CONTROL+SHIFT+"C"]
ID_Pastebloc [CONTROL+SHIFT+"V"]
ID_Cutclip [TOOLBAR+CONTROL+"X"]
ID_Redo [CONTROL+"Y"]
ID_U [CONTROL+"Z"]
ID_Ai_propch[TOOLBAR+CONTROL+"1"]
ID_CleanScreen [CONTROL+"0"]
ID_Content [TOOLBAR+CONTROL+"2"]
ID_SSMPalette [CONTROL+"4"]
ID_INFOPAL [CONTROL+"5"]
ID_MarkupMgr [CONTROL+"7"]
ID_TPalette [CONTROL+"3"]
ID_dbConnect [CONTROL+"6"]
ID_VBARun [ALT+"F8"]
ID_VBAIDE [ALT+"F11"]
[CONTROL+"H"]+'_setvar;pickstyle;$M=$(if,$(eq,$(getvar,pickstyle),0),1,$(if,$(eq,$(getvar,pickstyle),1),0,+
$(if,$(eq,$(getvar,pickstyle),2),3,2)))

其中带ID前缀的,如ID_Hyperlink是指的系统默认命令,方括号中间是启动此命令的快捷键,其实我们可以自己定义一个快捷键,不须理会ID段,现在我们来定义使用Ctrl+Alt+B启动“打断于点”命令,如:
[Control+Alt+"B"]^C^C_break;_f;@;

OK,现在把Control+Alt换成Alt添加到acad.mnu菜单里,再多输入下面示例的几个命令快捷键,另存起来。请注意的是方括号后面的命令名称不要一样,因为后面系统会为同样的命令分配相同的ID,这个ID是系统为新命令自动建立的,比如,你想增加些Alt键快捷键,必须用不同的命令来占用ID位,方便以后修改,命令名称随便写都行,如下方的AltF1,AltF2,AltF3。至于方括号后所用到的特殊字符,请自行查阅帮助文件。方括号后面的命令,可以是简单的系统命令,可以是宏命令,可以控制工具栏或者切换界面元素,还可以是lisp程序命令(如下面的CenterLine),下面给出一些示例:

[Alt+"B"]^C^C_break;_f;@;
[Alt+"C"]_Copy;
[Alt+"V"]^C^C_Xline;V;
[Alt+"1"]'_Osmode;6271;
[Alt+"2"]_Chprop;;C;2;;
[Alt+"3"]^C^C_CenterLine;
[Alt+"Pageup"]'_setvar;menubar;$M=$(if,$(eq,$(getvar,menubar),1),0,1)
[Alt+"NumPad1"]_-toolbar;user1;show;
[Alt+"F1"]AltF1
[Alt+"F2"]AltF2
[Alt+"F3"]AltF3

保存下刚才编辑过的acad.mnu文件,回到AutoCAD,在命令行输入CUI,打开“传输”选项卡,点击右侧那个打开文件按钮,找到我们刚才保存的acad.mnu文件

 


 

在右侧找到我们自己定义的那些快捷键,把它拖到左侧对应位置,
 

 


 

现在这几个Alt 快捷键就被传输到当前自己使用的菜单中了,回到自定义选项卡查看下,请注意,右侧的快捷键,不要尝试去修改它,AutoCAD不允许你定义Alt+B 这类快捷键,会自动删除掉,但是你不动它,也会被保存下来。至于其它栏,可以根据自己的需要去修改。下面有个元素ID是AutoCAD自动分配的,上面编辑acad.mnu菜单那一步,你如果偷懒快捷键定义不同,而命令相同的话,实际上分配到的ID是一样的,这时候再去修改这个命令,你会把所有相同ID的项目,全部修改成一样,从而无法实现不同的快捷键调用不同命令。


 

点击确定,保存当前修改,回到AutoCAD工作界面,试试刚才定义的快捷键吧,是不是搞定了!用这种移植传输的方法,可以为所欲为的覆盖修改部分AtuoCAD保留的快捷键,不是全部,有些键位仍然无效的,总体来说,够用了。本例在AutoCAD2012下操作, 理论上适用于2006到2013各个新版菜单系统 (这里向大家道歉,关于Alt键的调用,经本人64位win7测试,修改过2010-2013。2010测试不通过,2011,2012,2013测试通过,其它版本请各位测试后回贴通知,估计低版本通过的可能性不大。本贴介绍的其它菜单修改与增强不受AutoCAD版本限制)。但是,适可而止吧,多了估计你也记不住,咱的目的就是用上左手那几个Alt 快捷键,在使用键盘快捷键的时候,少伸2个指头!#%%*!@*T&^@$

09以后AutoCad界面发生了很大变化,加入了Ribbon界面,相对来说,Ribbon界面可以在相同的面积里显示比以前更多的命令,对新手是个好事,可以了解更多命令。但是这个界面对现在的宽屏显示器,尤其是笔记本是个恶梦,本来上下空间紧张,Ribbon还要占去好大块面积。还有些命令被分配在不同的标签下,要找到还要点击多次鼠标。Ribbon界面,Alt+数字键这几个,还是不要设置了,因为这几个是Ribbon界面的默认快捷键,会有冲突。另外,如果菜单开着的话,也会跟一些菜单快捷键冲突的,如下图,Alt+F,1,2,3,E,V,I,O,T,D,N,M,O,W,H,都被分别占用了,开着菜单,字母被占用,关了菜单,数字被占用,所以还是用刚才定义的 "Alt + Page up" 快捷键来隐藏掉菜单吧,对于熟悉命令行的老手来说,恐怕大多数都是隐藏甚至关了Ribbon界面和菜单,只打开一些必用的工具栏,使用键盘鼠标来干活的。所以没有Ribbon和菜单应该不是什么问题。一些Alt键,要关了菜单才好用。
 


 

有些人可能要说了,太麻烦了,我可以自定义acad.pgp文件,但是PGP文件里定义的简写命令,只能执行命令的第一步,而且还需要额外的空格键来确认命令的执行,而键盘加速键的好处在于是可以即时执行一系列命令动作的,包括响应外部的lisp程序,有些命令,做成lisp程序有点大材小用,放在关联对象菜单里却正好。AutoCAD的菜单是分好几个菜单组合在一起的,关联对象菜单部分是变化的,只对特定的图元起作用,如标注对象菜单只在选择标注的时候才出现,填充对象菜单只在选择填充的时候出现。下面的这个命令 ,我们可以把它定义在标注关联菜单中,快速将标注文本置中,如果用命令行方式来操作,恐怕很不方便.
_dimoverride;dimtix;1;;;;

在命令列表里,点击新建命令按键,在右方特性区域名称栏里输入"&1. DTC ",在宏里输入"_dimoverride;dimtix;1;;;;" 然后将定义好的这个命令拖到上方的标注对象菜单里,点确定.

 


 

回到AutoCAD工作界面,选择一个文本不在标注线中间的尺寸,点击鼠标右键,可以看到刚才新建的标注关联菜单命令DTC,如下图,点一下“1.DTC”或者敲下左手键盘上的1,执行后,就会和下面的标注一样了标注文本被居中放置了。(&是个加速键符号,在菜单里,它后面跟的字符如果是1,那么菜单调用出来后,按1可以迅速调用DTC,你甚至都不需要移动鼠标去选择DTC)

 


 

菜单的深度定制,我这里只做个引子,大家可自由发挥,合理配好&后面的快捷按键,会非常方便可以考虑修改增强的菜单有:

编辑菜单:用_Chprop更改对象线型,颜色,图层等;
标注对象菜单:加几个不同的标注显示或换算比例,更新,翻转箭头,添加解除关联,用dimoverride更改其它标注变量;
填充对象菜单直接在右键里,用-Hatchedit更改比例,角度,样式,AutoCAD自带填充样式的个人而言也就常用几种而已;
添加实体编辑对象菜单;
Shift + 右键改成正交切换,这样不用看键盘都能切换正交;
捕捉菜单里放几个Osmode,加上极轴切换或者其它状态栏切换选项;

一些菜单里用得到的系统默认的宏,其它的自查帮助文件吧:
^O  切换正交
^U 切换极轴
^D 切换动态USCS
^E 下一个等轴平面

如果实在懒得去找空默认菜单去编辑占位ID,我这里做好了一个现成的空的菜单,只包含快捷键部分,除了系统默认的,其它都有不存在的空命令占着,自己传输拖到菜单里,对于2006以前的版本,用记事本打开附件对比下自己的菜单文件,直接替换自己想改的部分就行了.

accKey.rar