Pro Engineer/Mapkeys
Mapkeys 是宏,它们允许通过发出单个简短命令来连续执行多个 Pro/Engineer 命令。Mapkeys 从而使用户界面可定制,并且可以为用户提供生产力增强功能。如果您经常使用一系列命令,或者您想将单个功能映射到键盘命令以进行更快访问,Mapkeys 提供了一个快速解决方案。
首先从主菜单中选择“工具”>“Mapkeys”。Mapkeys 对话框出现。对话框显示现有 Mapkeys 的列表
按下 新建... 然后 录制 Mapkey 对话框出现
键序列 必须是一系列来自以下列表的字符。要使用功能键,请在其名称前加上美元符号,例如 $F1。否则,输入一系列可见字符(见下表)。可选地,为 Mapkey 输入一个名称 - 这将在 Mapkey 的主表格中显示,可以作为键功能的提醒。可以在“描述”字段中留下更详细的注释,这也是可选的。
此时,必须指定命令的功能。它可以是连续点击和按键的录制,也可以是作为脚本输入。在 OS 脚本选项卡中提供了一个简单的文本编辑器用于脚本编写。否则,要创建一个基本的录制 Mapkey,请按下“录制”并开始。在录制完所需的命令后,按下“停止”。请注意,您的操作的每个细节都会被录制。为了方便,录制可以暂停和恢复。
请注意,许多命令并非始终可用。例如,草图工具在主零件视图模式下不可用。此外,由于隐藏的工具栏、对话框或其他 GUI 功能,许多可能的点击可能无法访问。
通过此界面,调用现有录制的键无法修改。但是,它们可以通过保存到配置文件(默认文件名为 config.pro)来更改。另一方面,可以随时更换与特定键序列关联的录制或脚本。
创建 Mapkey 后,单击“确定”,然后关闭“Mapkeys”对话框。要使用 Mapkey,只需按下键序列。
Mapkeys 不一定像名称那样是单个键,实际上它们通常是多个字符的命令,可以是包含所有可见键入字符的最长 77 个字符的字符串。
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 1234567890`-=~!@#$%^&*()_+[]\{}|;':",./<>?
空格、制表符和换行符不能使用。对数字键盘键没有区分,并且键不能通过 Ctrl、Alt、Shift 或其他元组合键扩展。这使得上述字母字符不区分大小写。
或者,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_ui 和 new_parameter_ui 设置为 no,我的 Mapkeys 就可以正常工作。我已经尝试从头开始录制它们,但没有成功。
录制宏时,您要做的第一件事是将 config.pro 选项 new_relation_ui 和 new_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,它调用了两个名为 zr 和 laser 的 Mapkey。
mapkey print @MAPKEY_NAMEPrint Extents;%zr;%laser;