CAD中界面中定義新命令的方法
如果我們要定義一個(gè)全新的命令,可以利用CAD提供的二次開發(fā)工具:LISP / VBA/ .NET/ ARX等來(lái)編程,但這不是大多數(shù)人能做到的。這里要介紹的是如何利用CAD的自定義界面(CUI)命令,利用簡(jiǎn)單的宏來(lái)調(diào)用現(xiàn)有命令并添加一下簡(jiǎn)單的參數(shù)和設(shè)置。
在CUI自定義界面中可以根據(jù)需要重新設(shè)置菜單、工具欄、命令面板,可以調(diào)整現(xiàn)有命令在界面中的位置,這些在之前已經(jīng)寫文章介紹過(guò)。
AUTOCAD定制界面的簡(jiǎn)單技巧
如何定制CAD功能區(qū)界面中的命令?
這里就簡(jiǎn)單介紹一下如何利用宏,利用現(xiàn)有命令來(lái)定義一個(gè)新的命令。
昨天我們介紹了更改為隨層(SETBYLAYER)的命令,是設(shè)置所有對(duì)象屬性都隨層。其實(shí)默認(rèn)狀態(tài)下圖形的屬性都是隨層的。但假如我們改變了顏色、線寬、線型的當(dāng)前設(shè)置項(xiàng)恢復(fù)成隨層設(shè)置,我們也自己定制類似的命令,執(zhí)行命令后讓顏色、線寬、線型的當(dāng)前值都恢復(fù)成隨層。
直接輸入CUI,回車,打開用戶自定義界面對(duì)話框,在命令列表的任意命令上鼠標(biāo)右鍵單擊,選擇新建命令。

然后在特性選項(xiàng)中將名稱更改為“屬性圖層”,接下來(lái)將通過(guò)宏命令來(lái)告訴它需要做的事。在宏輸入框中輸入“
"^C^C(setvar “cecolor” “ByLayer”) (setvar “celweight”-1) (setvar “celtype” “ByLayer”)",如圖片所示。

^C^C的功能是取消還未完成的其他操作,和按兩次esc鍵功能類似。然后setvar設(shè)置變量告訴AutoCAD改變現(xiàn)在對(duì)象的顏色、線寬、和線型屬性為隨圖層。
我們可以在“說(shuō)明”一欄添加上功能的說(shuō)明文字,自己用的話可以不用填寫了。
為了在工具欄或命令面板中添加命令,我們可以給命令設(shè)置好大圖像和小圖像,大圖像分辨率是32X32的,小圖像是16X16的,我們可以從CAD提供的圖像列表中選一種類似的,或者選擇其中一個(gè)圖標(biāo)后直接在CUI對(duì)話框中進(jìn)行簡(jiǎn)單編輯,也可以輸入我們自己繪制的圖像。

當(dāng)然還根據(jù)需要設(shè)置:顯示命令名、標(biāo)簽等等。設(shè)置好后,單擊底部的應(yīng)用按鈕,就可以將自定義的命令添加到命令列表中,然后我們就可以在命令列表中搜索到新建的命令,將它添加到命名面板、工具欄或菜單中,如下圖所示。

其實(shí)我對(duì)宏也不是了解,不過(guò)我們可以先查看一下CUI中已有命令定義的宏,先參照做一些簡(jiǎn)單的定制,下面我整理了一些關(guān)于宏的資料,希望對(duì)大家有幫助。
CAD宏的簡(jiǎn)單介紹
命令宏可以包含命令、特殊字符、DIESEL 表達(dá)式或 AutoLISP 編程代碼。
宏將定義使用用戶界面元素時(shí)應(yīng)執(zhí)行的動(dòng)作。它可以像命令一樣簡(jiǎn)單(例如 circle),并且可以包含特殊字符(例如 ^C^C)。
例如,宏^C^C_.circle 1,它可以繪制一個(gè)半徑為 1 個(gè)單位的圓。下表解釋了定義此宏的組成部分。
|
CIRCLE 宏中的部件 |
||
|
部件 |
部件類型 |
結(jié)果 |
|
^C^C |
特殊控制字符序列 |
序列,效果類似于按兩次 Esc 鍵。 |
|
_ |
特殊控制字符 |
應(yīng)使用全局命令名而非本地化的命令名來(lái)指示跟隨的命令。 |
|
. |
特殊控制字符 |
應(yīng)使用命令的標(biāo)準(zhǔn)定義而非可能存在的重定義命令來(lái)指示跟隨的命令。 |
|
CIRCLE |
命令名 |
啟動(dòng) CIRCLE 命令。 |
|
特殊字符 |
空格的效果類似于在使用命令時(shí)按空格鍵。 |
|
|
特殊控制字符 |
創(chuàng)建暫停以請(qǐng)求用戶輸入;在此樣例中,它是指暫停以請(qǐng)求輸入圓的圓心。 |
|
|
1 |
輸入值 |
響應(yīng)輸入圓的半徑的提示;在此樣例中,它為 1 個(gè)單位。 |
取消處于活動(dòng)狀態(tài)的命令
當(dāng)單擊用戶界面中的按鈕時(shí),將在程序的當(dāng)前上下文中執(zhí)行指定到此按鈕的宏。這意味著,該宏將嘗試響應(yīng)當(dāng)前提示。如果要確保在執(zhí)行宏時(shí)當(dāng)前沒(méi)有命令處于活動(dòng)狀態(tài),則使用^C命令序列作為宏的前綴。雖然單個(gè)^C能取消大多數(shù)命令,但要從標(biāo)注命令返回命令提示必須使用^C^C,并且根據(jù) -LAYER 命令的當(dāng)前選項(xiàng)需要使用^C^C^C。^C^C可以取消大多數(shù)命令序列,而且是推薦您使用的序列。
驗(yàn)證宏字符
宏中的每個(gè)字符(即使是空格)都有重要意義。如果在宏的末尾加了一個(gè)空格,將視為您已按了空格鍵或 Enter 鍵來(lái)完成命令。
在宏中使用標(biāo)準(zhǔn)命令
作為 AutoCAD 或基于 AutoCAD 的產(chǎn)品一部分的命令應(yīng)使用句點(diǎn)字符 (.) 作為前綴。句點(diǎn)字符使用戶可以使用標(biāo)準(zhǔn)命令,即使已使用 UNDEFINE 命令取消其定義。這種預(yù)防措施使宏在共享同一自定義 (CUI/CUIx) 文件的其他計(jì)算機(jī)上使用時(shí)仍可被識(shí)別。
宏的國(guó)際語(yǔ)言支持
首次創(chuàng)建宏時(shí),通常會(huì)使用命令名稱和選項(xiàng)值并以您熟悉的語(yǔ)言來(lái)創(chuàng)建它。每個(gè)命令和選項(xiàng)都具有一個(gè)本地和全局名稱,以允許在 AutoCAD 支持的所有不同語(yǔ)言中使用宏。非英文版支持不需要在您執(zhí)行太多其他操作,您只需在每個(gè)命令或選項(xiàng)前添加下劃線字符 (_) 即可。該下劃線字符指示 AutoCAD,應(yīng)先轉(zhuǎn)換命令名稱和選項(xiàng)值,然后才能執(zhí)行它。
使用單一對(duì)象選擇模式
單一對(duì)象選擇模式取消了編輯命令中“選擇對(duì)象”提示的普通重復(fù)。選擇一個(gè)對(duì)象并響應(yīng)其他所有提示后,命令將結(jié)束。
請(qǐng)看以下樣例中的宏:
^C^C._erase single
該宏將終止當(dāng)前命令,并啟動(dòng)單一對(duì)象選擇模式中的 ERASE 命令。在啟動(dòng)宏后,可以選擇單個(gè)對(duì)象,也可以單擊圖形中的空白區(qū)域,然后指定窗口/窗交選擇。將刪除使用這些方法選擇的任何對(duì)象。
在宏中重復(fù)執(zhí)行的命令
一旦創(chuàng)建了宏,您可能想要多次重復(fù)使用它,然后再繼續(xù)其他命令。在宏中,可以使用前導(dǎo)星號(hào) (*) 來(lái)指明應(yīng)重復(fù)使用的宏中的命令,直到按 Esc 鍵或開始另一個(gè)以^C開頭的宏。
以下樣例中的宏將重復(fù)執(zhí)行命令:
*^C^C._move Single
*^C^C._copy Single
*^C^C._erase Single
*^C^C._stretch Single Crossing
*^C^C._rotate Single
*^C^C._scale Single
注意:不能使用此功能選擇選項(xiàng),或者將其用于圖像平鋪菜單中的宏。
終止宏
某些宏需要使用特殊結(jié)束符。例如,需要按 Enter 鍵而不是空格鍵來(lái)終止 TEXT 命令,需要多次按空格鍵或 Enter 鍵才能完成某些命令。
以下兩條特殊約定解決了這些問(wèn)題。
·宏中的分號(hào) (;) 相當(dāng)于按 Enter 鍵。
·如果某一行以控制字符、反斜杠 () 或分號(hào) (;) 結(jié)尾,將不在其后添加空格。
請(qǐng)比較下面的宏:
ucs
ucs ;
第一個(gè)樣例中UCS后有一個(gè)空格,將啟動(dòng) UCS 命令,并且將模擬按空格鍵(因?yàn)樾幸钥崭窠Y(jié)束)。將顯示以下提示:
指定 UCS 的原點(diǎn)或 [面(F)/命名(NA)/對(duì)象(OB)/上一個(gè)(P)/視圖(V)/世界(W)/X/Y/Z/Z 軸(ZA)] <世界>:
第二個(gè)樣例后面有一個(gè)空格和分號(hào),將啟動(dòng) UCS 命令,然后依次模擬按空格鍵和按 Enter 鍵,這個(gè)操作將接受默認(rèn)值(世界)。
在宏中禁用回顯和提示
宏中的字符將會(huì)在命令提示下顯示,就像用戶通過(guò)鍵盤鍵入這些字符一樣。這種顯示重復(fù)稱為回顯。您可以使用 MENUECHO 系統(tǒng)變量禁用宏回顯。如果項(xiàng)目輸入的回顯和提示處于打開狀態(tài),則在宏之前添加^P就可以臨時(shí)關(guān)閉它們。您也可以使用宏中的^Q來(lái)隱藏命令行歷史記錄中的所有提示和輸入。
關(guān)于宏的相關(guān)知識(shí)還有很多,要想對(duì)宏有比較深入的了解,需要對(duì)CAD的編程有一定了解,這里就不再詳細(xì)介紹了,如果真對(duì)宏感興趣,首先要有學(xué)習(xí)一些CAD編程的知識(shí),然后再來(lái)看相關(guān)幫助就簡(jiǎn)單了。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無(wú)法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
