深度定義AutoCAD菜單,使用Alt 及系統(tǒng)保留的鍵盤快捷鍵,增強(qiáng)右鍵關(guān)聯(lián)菜單
Auotcad有一些默認(rèn)的鍵盤加速快捷鍵,如F3鍵,Ctrl + 數(shù)字鍵1,2,3,Ctrl +字母鍵A ,S,P 等。但默認(rèn)的快捷鍵很少,免不了要自己動(dòng)手增加一些來(lái)提高工作效率。普通的定義快捷鍵,這里就不多說(shuō)了。但AutoCAD本身對(duì)快捷鍵有些限制,輔助鍵只可以使用Ctrl ,Ctrl+Alt,Ctrl+Shift,Ctrl+Shift+Alt來(lái)配合某些字母鍵、數(shù)字鍵、功能鍵或虛擬鍵(如 F5 ,Insert ,NumPad7)等。
受支持的虛擬鍵有:
Escape 、Insert 、Delete 、Home、End 、Page Up 、Page Down 、左箭頭、右箭頭、上箭頭和下箭頭。
Escape 只能單獨(dú)使用或與修飾符組合鍵 Ctrl+Shift+Alt 配合使用。不過(guò)windows7已經(jīng)把Esc鍵占了,咱就不動(dòng)它了。
個(gè)人經(jīng)驗(yàn),實(shí)際使用中,左手鍵盤右手鼠標(biāo)比較有效率,對(duì)于左手操作,Ctrl ,Ctrl+Alt 配合其它鍵比較好按,Ctrl+Shift 一般,Ctrl+Shift+Alt 則按鍵太多令人抓狂,左手5根指頭用4根,怎么按都別扭,估計(jì)很少人設(shè)置這個(gè)做快捷鍵,實(shí)在是不太方便使用,尤其是在右手不離開(kāi)鼠標(biāo)的前提下。之前用過(guò)一段時(shí)間AutoHook這個(gè)軟件,可以允許在AutoCAD用一些奇怪的鍵盤組合(Alt,Shift等)來(lái)輸出命令,尤其Alt 加左手幾個(gè)字母和數(shù)字十分好用,但網(wǎng)上找到的可用版本,只支持到AutoCAD2007;論壇里之前也有人發(fā)一個(gè)ARX版本的類似插件,但現(xiàn)在過(guò)期不可用了。其實(shí)可以用一個(gè)繞彎子的辦法,來(lái)突破限制,使用Alt 組合鍵及覆蓋系統(tǒng)的一些保留快捷鍵。
找一個(gè)AutoCAD 2004或者05的菜單文件,名稱是acad.mnu,用記事本打開(kāi),找到"***Accelerator"字段,可以看到以下內(nèi)容:
***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是指的系統(tǒng)默認(rèn)命令,方括號(hào)中間是啟動(dòng)此命令的快捷鍵,其實(shí)我們可以自己定義一個(gè)快捷鍵,不須理會(huì)ID段,現(xiàn)在我們來(lái)定義使用Ctrl+Alt+B啟動(dòng)“打斷于點(diǎn)”命令,如:
[Control+Alt+"B"]^C^C_break;_f;@;
OK,現(xiàn)在把Control+Alt換成Alt添加到acad.mnu菜單里,再多輸入下面示例的幾個(gè)命令快捷鍵,另存起來(lái)。請(qǐng)注意的是方括號(hào)后面的命令名稱不要一樣,因?yàn)楹竺嫦到y(tǒng)會(huì)為同樣的命令分配相同的ID,這個(gè)ID是系統(tǒng)為新命令自動(dòng)建立的,比如,你想增加些Alt鍵快捷鍵,必須用不同的命令來(lái)占用ID位,方便以后修改,命令名稱隨便寫(xiě)都行,如下方的AltF1,AltF2,AltF3。至于方括號(hào)后所用到的特殊字符,請(qǐng)自行查閱幫助文件。方括號(hào)后面的命令,可以是簡(jiǎn)單的系統(tǒng)命令,可以是宏命令,可以控制工具欄或者切換界面元素,還可以是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
保存下剛才編輯過(guò)的acad.mnu文件,回到AutoCAD,在命令行輸入CUI,打開(kāi)“傳輸”選項(xiàng)卡,點(diǎn)擊右側(cè)那個(gè)打開(kāi)文件按鈕,找到我們剛才保存的acad.mnu文件
在右側(cè)找到我們自己定義的那些快捷鍵,把它拖到左側(cè)對(duì)應(yīng)位置,
現(xiàn)在這幾個(gè)Alt 快捷鍵就被傳輸?shù)疆?dāng)前自己使用的菜單中了,回到自定義選項(xiàng)卡查看下,請(qǐng)注意,右側(cè)的快捷鍵,不要嘗試去修改它,AutoCAD不允許你定義Alt+B 這類快捷鍵,會(huì)自動(dòng)刪除掉,但是你不動(dòng)它,也會(huì)被保存下來(lái)。至于其它欄,可以根據(jù)自己的需要去修改。下面有個(gè)元素ID是AutoCAD自動(dòng)分配的,上面編輯acad.mnu菜單那一步,你如果偷懶快捷鍵定義不同,而命令相同的話,實(shí)際上分配到的ID是一樣的,這時(shí)候再去修改這個(gè)命令,你會(huì)把所有相同ID的項(xiàng)目,全部修改成一樣,從而無(wú)法實(shí)現(xiàn)不同的快捷鍵調(diào)用不同命令。
點(diǎn)擊確定,保存當(dāng)前修改,回到AutoCAD工作界面,試試剛才定義的快捷鍵吧,是不是搞定了!用這種移植傳輸?shù)姆椒ǎ梢詾樗麨榈母采w修改部分AtuoCAD保留的快捷鍵,不是全部,有些鍵位仍然無(wú)效的,總體來(lái)說(shuō),夠用了。本例在AutoCAD2012下操作, 理論上適用于2006到2013各個(gè)新版菜單系統(tǒng) (這里向大家道歉,關(guān)于Alt鍵的調(diào)用,經(jīng)本人64位win7測(cè)試,修改過(guò)2010-2013。2010測(cè)試不通過(guò),2011,2012,2013測(cè)試通過(guò),其它版本請(qǐng)各位測(cè)試后回貼通知,估計(jì)低版本通過(guò)的可能性不大。本貼介紹的其它菜單修改與增強(qiáng)不受AutoCAD版本限制)。但是,適可而止吧,多了估計(jì)你也記不住,咱的目的就是用上左手那幾個(gè)Alt 快捷鍵,在使用鍵盤快捷鍵的時(shí)候,少伸2個(gè)指頭!#%%*!@*T&^@$
09以后AutoCad界面發(fā)生了很大變化,加入了Ribbon界面,相對(duì)來(lái)說(shuō),Ribbon界面可以在相同的面積里顯示比以前更多的命令,對(duì)新手是個(gè)好事,可以了解更多命令。但是這個(gè)界面對(duì)現(xiàn)在的寬屏顯示器,尤其是筆記本是個(gè)惡夢(mèng),本來(lái)上下空間緊張,Ribbon還要占去好大塊面積。還有些命令被分配在不同的標(biāo)簽下,要找到還要點(diǎn)擊多次鼠標(biāo)。Ribbon界面,Alt+數(shù)字鍵這幾個(gè),還是不要設(shè)置了,因?yàn)檫@幾個(gè)是Ribbon界面的默認(rèn)快捷鍵,會(huì)有沖突。另外,如果菜單開(kāi)著的話,也會(huì)跟一些菜單快捷鍵沖突的,如下圖,Alt+F,1,2,3,E,V,I,O,T,D,N,M,O,W,H,都被分別占用了,開(kāi)著菜單,字母被占用,關(guān)了菜單,數(shù)字被占用,所以還是用剛才定義的 "Alt + Page up" 快捷鍵來(lái)隱藏掉菜單吧,對(duì)于熟悉命令行的老手來(lái)說(shuō),恐怕大多數(shù)都是隱藏甚至關(guān)了Ribbon界面和菜單,只打開(kāi)一些必用的工具欄,使用鍵盤鼠標(biāo)來(lái)干活的。所以沒(méi)有Ribbon和菜單應(yīng)該不是什么問(wèn)題。一些Alt鍵,要關(guān)了菜單才好用。
有些人可能要說(shuō)了,太麻煩了,我可以自定義acad.pgp文件,但是PGP文件里定義的簡(jiǎn)寫(xiě)命令,只能執(zhí)行命令的第一步,而且還需要額外的空格鍵來(lái)確認(rèn)命令的執(zhí)行,而鍵盤加速鍵的好處在于是可以即時(shí)執(zhí)行一系列命令動(dòng)作的,包括響應(yīng)外部的lisp程序,有些命令,做成lisp程序有點(diǎn)大材小用,放在關(guān)聯(lián)對(duì)象菜單里卻正好。AutoCAD的菜單是分好幾個(gè)菜單組合在一起的,關(guān)聯(lián)對(duì)象菜單部分是變化的,只對(duì)特定的圖元起作用,如標(biāo)注對(duì)象菜單只在選擇標(biāo)注的時(shí)候才出現(xiàn),填充對(duì)象菜單只在選擇填充的時(shí)候出現(xiàn)。下面的這個(gè)命令 ,我們可以把它定義在標(biāo)注關(guān)聯(lián)菜單中,快速將標(biāo)注文本置中,如果用命令行方式來(lái)操作,恐怕很不方便.
_dimoverride;dimtix;1;;;;
在命令列表里,點(diǎn)擊新建命令按鍵,在右方特性區(qū)域名稱欄里輸入"&1. DTC ",在宏欄里輸入"_dimoverride;dimtix;1;;;;" ,然后將定義好的這個(gè)命令拖到上方的標(biāo)注對(duì)象菜單里,點(diǎn)確定.
回到AutoCAD工作界面,選擇一個(gè)文本不在標(biāo)注線中間的尺寸,點(diǎn)擊鼠標(biāo)右鍵,可以看到剛才新建的標(biāo)注關(guān)聯(lián)菜單命令DTC,如下圖,點(diǎn)一下“1.DTC”或者敲下左手鍵盤上的1,執(zhí)行后,就會(huì)和下面的標(biāo)注一樣了標(biāo)注文本被居中放置了。(&是個(gè)加速鍵符號(hào),在菜單里,它后面跟的字符如果是1,那么菜單調(diào)用出來(lái)后,按1可以迅速調(diào)用DTC,你甚至都不需要移動(dòng)鼠標(biāo)去選擇DTC)
菜單的深度定制,我這里只做個(gè)引子,大家可自由發(fā)揮,合理配好&后面的快捷按鍵,會(huì)非常方便 。可以考慮修改增強(qiáng)的菜單有:
編輯菜單:用_Chprop更改對(duì)象線型,顏色,圖層等;
標(biāo)注對(duì)象菜單:加幾個(gè)不同的標(biāo)注顯示或換算比例,更新,翻轉(zhuǎn)箭頭,添加解除關(guān)聯(lián),用dimoverride更改其它標(biāo)注變量;
填充對(duì)象菜單:直接在右鍵里,用-Hatchedit更改比例,角度,樣式,AutoCAD自帶填充樣式的個(gè)人而言也就常用幾種而已;
添加實(shí)體編輯對(duì)象菜單;
Shift + 右鍵改成正交切換,這樣不用看鍵盤都能切換正交;
捕捉菜單里放幾個(gè)Osmode,加上極軸切換或者其它狀態(tài)欄切換選項(xiàng);
一些菜單里用得到的系統(tǒng)默認(rèn)的宏,其它的自查幫助文件吧:
^O 切換正交
^U 切換極軸
^D 切換動(dòng)態(tài)USCS
^E 下一個(gè)等軸平面
如果實(shí)在懶得去找空默認(rèn)菜單去編輯占位ID,我這里做好了一個(gè)現(xiàn)成的空的菜單,只包含快捷鍵部分,除了系統(tǒng)默認(rèn)的,其它都有不存在的空命令占著,自己傳輸拖到菜單里,對(duì)于2006以前的版本,用記事本打開(kāi)附件對(duì)比下自己的菜單文件,直接替換自己想改的部分就行了.
accKey.rar