深度定義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