跳轉到內容

Pro Engineer/Mapkeys

來自華夏公益教科書,開放的書籍,開放的世界

Mapkeys 是宏,它們允許透過發出單個簡短命令來連續執行多個 Pro/Engineer 命令。Mapkeys 從而使使用者介面可定製,並且可以為使用者提供生產力增強功能。如果您經常使用一系列命令,或者您想將單個功能對映到鍵盤命令以進行更快訪問,Mapkeys 提供了一個快速解決方案。

建立 Mapkeys

[編輯 | 編輯原始碼]

首先從主選單中選擇“工具”>“Mapkeys”。Mapkeys 對話框出現。對話方塊顯示現有 Mapkeys 的列表

按下 新建... 然後 錄製 Mapkey 對話框出現

鍵序列 必須是一系列來自以下列表的字元。要使用功能鍵,請在其名稱前加上美元符號,例如 $F1。否則,輸入一系列可見字元(見下表)。可選地,為 Mapkey 輸入一個名稱 - 這將在 Mapkey 的主表格中顯示,可以作為鍵功能的提醒。可以在“描述”欄位中留下更詳細的註釋,這也是可選的。

此時,必須指定命令的功能。它可以是連續點選和按鍵的錄製,也可以是作為指令碼輸入。在 OS 指令碼選項卡中提供了一個簡單的文字編輯器用於指令碼編寫。否則,要建立一個基本的錄製 Mapkey,請按下“錄製”並開始。在錄製完所需的命令後,按下“停止”。請注意,您的操作的每個細節都會被錄製。為了方便,錄製可以暫停和恢復。

請注意,許多命令並非始終可用。例如,草圖工具在主零件檢視模式下不可用。此外,由於隱藏的工具欄、對話方塊或其他 GUI 功能,許多可能的點選可能無法訪問。

透過此介面,呼叫現有錄製的鍵無法修改。但是,它們可以透過儲存到配置檔案(預設檔名為 config.pro)來更改。另一方面,可以隨時更換與特定鍵序列關聯的錄製或指令碼。

建立 Mapkey 後,單擊“確定”,然後關閉“Mapkeys”對話方塊。要使用 Mapkey,只需按下鍵序列。

Mapkeys 不一定像名稱那樣是單個鍵,實際上它們通常是多個字元的命令,可以是包含所有可見鍵入字元的最長 77 個字元的字串。

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890`-=~!@#$%^&*()_+[]\{}|;':",./<>? 

空格、製表符和換行符不能使用。對數字鍵盤鍵沒有區分,並且鍵不能透過 CtrlAltShift 或其他元組合鍵擴充套件。這使得上述字母字元不區分大小寫。

或者,Mapkeys 可以透過功能鍵 F1-F12 呼叫。在這種情況下,它們必須是單個按鍵;功能鍵不能與其他字母、數字或符號組合使用。這些由在所需功能鍵前加上美元符號來指定,例如 $F5

Mapkeys 命令始終在鍵盤上鍵入,並在按下命令的最後一個字元後立即執行。在命令完成之前,在左下方狀態列中顯示輸入鍵(除了功能鍵)的視覺反饋。Mapkeys 只有在完全鍵入其整個命令字串後才會執行,截至 Pro/Engineer Wildfire 2,沒有可用的自動完成機制。如果錯誤地鍵入了 Mapkeys 命令,導致輸入了不存在的命令,Pro/Engineer 不會發出任何警告。在這種情況下,由使用者注意鍵入的字元是否保留在狀態列中。如果在錯誤地鍵入命令後,狀態列中仍有剩餘的字元,則必須透過按下 Enter 或將焦點移出 Pro/Engineer 視窗來手動清除它們,然後才能再次使用 Mapkeys。由於這些原因,最好儘可能縮短 Mapkeys 命令。使用者應該注意在使用 Pro/Engineer 時不要按下空格鍵,因為空格不允許作為 Mapkeys 命令的一部分,這僅在建立對話方塊中強制執行。空格允許在常規程式使用期間鍵入。如果空格位於命令的前面,它將阻止命令正常工作。使用者可能會浪費時間而不注意到導致故障的不可見空格。

Pro/Engineer 中存在一個錯誤,如果已經填滿了 77 個字元,Enter 不會清除它們。首先按下 Backspace 擦除一個字元。

在 Pro/E 的早期版本中,我們有 Mapkeys 可以輕鬆更改一些引數(如描述)。我無法讓它適用於引數和關係的新 UI。如果我將 config 選項 new_relation_uinew_parameter_ui 設定為 no,我的 Mapkeys 就可以正常工作。我已經嘗試從頭開始錄製它們,但沒有成功。

錄製宏時,您要做的第一件事是將 config.pro 選項 new_relation_uinew_parameter_ui 設定為 no。正常錄製宏/Mapkey 的其餘部分,然後在完成錄製後,將相同的 config.pro 選項重置為 yes

另一種方法是錄製一個宏/Mapkey 來將選項設定為 no,另一個 Mapkey 將它們設定為 yes。由於 Mapkeys 可以巢狀,因此您的宏可以在例程開始時執行 no Mapkey,然後在結束時執行 yes Mapkey。例如

mapkey q @MAPKEY_LABELNEW PARAM;\
mapkey(continued) ~ Select `main_dlg_cur` `MenuBar1`1 `Utilities`;\
mapkey(continued) ~ Close `main_dlg_cur` `MenuBar1`;\
mapkey(continued) ~ Activate `main_dlg_cur` `Utilities.psh_util_pref`;\
mapkey(continued) ~ FocusOut `preferences` `InputOpt`;\
mapkey(continued) ~ Select `preferences` `AssyTree`1 `node0:new_parameter_ui : no : 3`;\
mapkey(continued) ~ Open `preferences` `EditPanel`;~ Close `preferences` `EditPanel`;\
mapkey(continued) ~ Select `preferences` `EditPanel`1 `yes *`;\
mapkey(continued) ~ Activate `preferences` `AddOpt`;~ FocusOut `preferences` `InputOpt`;\
mapkey(continued) ~ Activate `preferences` `ApplySave`;~ FocusOut `preferences` `InputOpt`;\
mapkey(continued) ~ Activate `preferences` `Close`;
mapkey w @MAPKEY_LABELOLD PARAM;\
mapkey(continued) ~ Select `main_dlg_cur` `MenuBar1`1 `Utilities`;\
mapkey(continued) ~ Close `main_dlg_cur` `MenuBar1`;\
mapkey(continued) ~ Activate `main_dlg_cur` `Utilities.psh_util_pref`;\
mapkey(continued) ~ FocusOut `preferences` `InputOpt`;\
mapkey(continued) ~ Select `preferences` `AssyTree`1 `node0:new_parameter_ui : yes : 3`;\
mapkey(continued) ~ Open `preferences` `EditPanel`;~ Close `preferences` `EditPanel`;\
mapkey(continued) ~ Select `preferences` `EditPanel`1 `no`;~ Activate `preferences` `AddOpt`;\
mapkey(continued) ~ FocusOut `preferences` `InputOpt`;~ Activate `preferences` `ApplySave`;\
mapkey(continued) ~ FocusOut `preferences` `InputOpt`;~ Activate `preferences` `Close`;

如何建立巢狀的 Mapkeys?

對於“鍵序列”,@dp04 代表什麼?

要巢狀 Mapkeys(從另一個 Mapkey 呼叫 Mapkey),請在頂級 Mapkey 中新增 %。

例如,以下是一個名為 print 的 Mapkey,它呼叫了兩個名為 zrlaser 的 Mapkey。

mapkey print @MAPKEY_NAMEPrint Extents;%zr;%laser;
華夏公益教科書