野火论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始


查看: 126252|回复: 171

[原创] Ye's ProE映射键全套分享(ProE快捷键大全,附布局表格和代码,ProE快捷键设置经验)

[复制链接]

2

主题

13

回帖

0

威望

实习生

Rank: 1

积分
18
发表于 2010-4-25 00:23 | 显示全部楼层 |阅读模式
如果你常用PROE作图或查看文档,并希望提高工作效率,则请继续往下看。
(下有两张插图是在链接百度空间的,如果看不到,可以访问http://hi.baidu.com/morecool

常用PROE的朋友应该体会到该软件层层深入的菜单操作方式,长时间操作下来,右手频繁点鼠标都会累得麻木的。为了让自己和同事右手轻松点,特别制作了一套PROE通用快捷键--不过牺牲了几乎三个月的周末和平时休息(算算加班费得有多少啊,呵呵)。在此与各位朋友分享交流。

下面分几个部分展开说明:
一、统一对ProE映射键及配置文件的认识
二、关于我的映射键布局及制作思路
三、我的代码结构及经验分享
四、我的困惑,有请高人指点
五、我的映射键布局和代码下载

现在进入正题:

一、统一对ProE映射键及配置文件的认识
1、PROE Mapkeys,中文映射键或快捷键,个人认为相当于Word\Excel中的宏(Marco)的简化版,可记录使用者的多项鼠标或键盘操作过程,再通过快捷键调用的方式重复执行该过程,可大大简化使用者的工作量。
2、映射键执行时可与用户简单交互,或暂停,但无逻辑判断能力。映射键调用可以是字母或符号,可以单个也可组合,组合指依次键入。映射键只能在当前激活窗口运行。
3、新录制好的映射键需手动保存在启动目录下的config.pro中。可用记事本打开,直接编辑代码。
4、关于PROE工作目录、启动目录,系统配置文件config.pro、环境和使用配置文件config.win,应有所了解。网文较多,不赘述,搜索一下“探讨ProE的配置文件”,讲得比较明白。
顺便提下,如果只想看配置选项说明,Pro/E安装目录\html\chinese_cn\proe\helpSysTop\siteset\configoptions.pdf 即是。
5、告诉对于想试验映射键代码的新人,最简单步骤:打开记事本,粘上所需代码,另存为cofig.pro到任一目录,再找到proe桌面或开始菜单中快捷方式,点击右键\属性,在启始位置栏输入此目录地址,点击确定。再启动该快捷方式即可。
如果想学怎么自己录制,请看PROE帮助,或参考前人的介绍http://www.jxcad.com.cn/read-htm-tid-195776.html


二、关于我的映射键布局及制作思路
快捷键优势在于快捷,所以怎么实现快捷就是关键,说大了这是人机工程学的问题。每个人的使用目标和习惯不一,不必强求大一统,但设置思路值得与大家交流。
我和同事主要用零件、组装,少量钣金、工程图,常用基本建模、拔模、测量、剖面,本套快捷键由此出发,参阅多份前人的映射键布局设置,经若干次修改而成。

布局上特点及考虑要点为:
1. 考虑方便使用,按键主要功能分布在键盘左区,少量常用键为单键,大多为双键,少量为多键。
2. 相近功能布置在相同键或相近区域,如A-装配,S-实体特征、D-剪裁特征、F-曲面特征,W-钣金,E-编辑,Q-快速操作,X-剖面,数字-视图,等等。
3. 特征操作与草绘分别在键盘左区与右区,分别进行优化布局。
4. 结合代码,实现一键通用或多用,减少冗余按键,增强了草绘、新建特征、编辑特征、剖面建立与查看、视图查看等功能的方便性。
5. 考虑方便记忆,按键尽量取自其英文版词汇,同时兼顾操作方便、避免布局冲突、减少误操作,以及尽量包容不同软件版本。
6. 全套二百余键,不求全记,而求在需要用时能方便。专门制作Excel布局表格,按键分类着色,将常用和重点突出,以彩色打印,可方便查阅,快速上手。


附:网上前人布局经验http://www.hao9hao.com/article/2008/0104/article_303.html,我觉得VF-Front、VR-Right、 VT-TOP、VB-Bottom、VD-Default还是不错的(暂称VF布局吧,我的自称YES布局)。而我用V来显隐基准面了,用数字来定向(5-Front,2、4、6、8按箭头方向定义,7-Back,3-反向180°)。如果改用VV来显隐基准面,则仍可以兼容VF布局,看个人喜好了。


功能上的特点(通过代码实现,简单介绍部分):
1. 兼容PROE2.0/3.0/4.0,因为自己安的是2.0和4.0,公司的是2.0和3.0,所以兼顾考虑,但有某些细微差异。
2. 通过映射键的组合与嵌套,实现一键通用或多用。如:
SE-实体拉伸,直接进入参照选择界面,在选择两平面或选择一平面后在空白处点击左键后,会直接进入草绘界面。
ED-编辑定义,可以用于特征、组件中零件、层、工程图视图和尺寸的编辑;
EF-编辑参照平面,能直接进入拉伸、旋转、扫描、筋、填充等特征的参照选择界面;
ES-编辑草绘,则能直接进上述特征的草绘状态;
ET-编辑轨迹,则能用于扫描的轨迹编辑;
RF-在特征出错时,执行重定义,而ED、EF、ES、ET也能直接进入对应编辑状态进行修复。
QE-快速退出,能退出大多编辑状态,不保存;
QA(TY)-快速接受,无错时能一路打勾;
SA(Y)-单步接受,一步一步地确定;
II-镜像,在特征与草绘、工程图均能使用。
3. 通过映射键控制配置选项的开关,实现某些特殊功能。如:
KN-Sketch Refit-NO 关闭草绘自动缩放,解决困扰很多人许久的草绘更改尺寸后自动缩放的问题。KY恢复默认状态。
S3或S4,能使PROE在新建或修改草绘时不会自动定向,速度快了,像感觉其它3D软件一样。S1或S2恢复。
4. 实现快速新建一个或多个剖面功能、快速查看功能。如:
XF,查看Front剖面,并定向Front;
XCA到XCZ,分别以字母A到Z命名的剖面;
XGF,自动进入Front草绘,划线后,建立偏移类型剖面;
XS,能快速进入剖面的草绘编辑状态;
NXAF,NXBF,分别在组件或零件中以Front面为基准,陈列10个平面并建立对应剖面,完成后可编辑修改;
NXAX,NXBX,分别在组件或零件中以一面和一轴为参考,旋转陈列18个平面并建立对应剖面,相当于每10°都有一截面。
5. 增加某些特殊功能键,如AA,在3D中选中某个元件或特征后,运行AA可自动找到它在模型树中的位置。


三、我的代码结构及经验分享
我的代码大多为自己录制加修改,参考了一些资料光盘附带的和网上的代码。
介绍几个特色映射键的制作思路:
1. QQ、QE、QA、SA
QQ实现从草绘界面到初始状态的单步退出,QE实现直接退出所有对话框
QE相当于是在QQ的基础上加了若干点击确实的操作。
先定义Quit_XX的若干映射键,每个实现退出一个类型的窗口
!--------------------------------------------------
mapkey Quit_1 ;~ Command `ProCmdSketQuit` ;
mapkey Quit_2 ;
mapkey Quit_3 ;~ Activate `Odui_Dlg_00` `stdbtn_2`;
mapkey Quit_4 ;~ Activate `Odui_Dlg_01` `stdbtn_2`;
mapkey Quit_5 ;~ Activate `Odui_Dlg_01` `cancel`;
mapkey Quit_6 ;~ Activate `main_dlg_cur` `dashInst0.Quit`;
mapkey Quit_7 ;~ Activate `main_dlg_cur` `dashInst0.stdbtn_2`;
mapkey Quit_8 ;~ Activate `relation_dlg` `PB_Cancel`;
(在此省略若干)

另外UI_YES、UI_OK、CFM_OK对应不同类型的确认按钮功能
!--------------------------------------------------
mapkey UI_YES ;~ Activate `UI Message Dialog` `yes`;
mapkey UI_OK ;~ Activate `UI Message Dialog` `ok`;
mapkey CFM_OK ;~ Activate `0_std_confirm` `OK`;

分别用 Quit_Once_A和 Quit_Once_B来调用不用确认执行的映射键(由于数量较多,才分A和B两个)
!--------------------------------------------------
mapkey Quit_Once_A @MAPKEY_LABELQuit_Once;%Quit_21;%Quit_22;%Quit_23;\
mapkey(continued) %Quit_24;%Quit_25;%Quit_31;%Quit_32;%Quit_33;%Quit_34;%Quit_35;%Quit_36;\
mapkey(continued) %Quit_37;%Quit_38;%Quit_39;%Quit_40;%Quit_42;%Quit_43;%Quit_44;%Quit_45;
!--------------------------------------------------
mapkey Quit_Once_B @MAPKEY_LABELQuit_Once;%Quit_51;%Quit_52;%Quit_53;\
mapkey(continued) %Quit_54;%Quit_55;%Quit_71;%Quit_72;%Quit_41;

QQ把所有需加确认功能的映射键加载进去,然后加载Quit_Once_A和 Quit_Once_B
!--------------------------------------------------
mapkey QQ @MAPKEY_LABELQuick Cancel;%Quit_1;%Quit_2;%Quit_3;%Quit_4;%Quit_5;\
mapkey(continued) %Quit_6;%Quit_7;%Quit_8;%Quit_9;%Quit_10;%Quit_Once_A;%Quit_Once_B;

QE按从草绘退出的顺序加载上述映射键,并根据需要在对应键后加上确认按钮功能,实现能一退到底
!--------------------------------------------------
mapkey QE @MAPKEY_LABELQuick Cancel;%Quit_1;%Quit_2;%UI_YES;%Quit_3;%Quit_4;\
mapkey(continued) %UI_YES;%Quit_5;%CFM_OK;%Quit_6;%UI_YES;%Quit_7;%UI_YES;%Quit_8;%UI_YES;\
mapkey(continued) %Quit_Once_A;%Quit_Once_B;%CFM_OK;%UI_YES;

QA和SA类似上述方法,先定义若干OKXX的映射键,QA按从草绘确认的顺序加载,
! - - - - - - - - - - - - - - - - - - - - - - - - -
mapkey QA @MAPKEY_LABELQuick Accept;%OK1;%OK2;%OK3;%OK4;%OK5;%OK6;%OK7;%OK8;\
mapkey(continued) %OK9;%OK10;%OK31;%OK32;%OK33;%OK34;%OK35;%OK51;%OK52;%OK53;%OK54;%OK55;%OK71;

而SA则需把OK1到OK10的顺序倒置,才能避免一路执行下去。
! - - - - - - - - - - - - - - - - - - - - - - - - -
mapkey Step_Yes @MAPKEY_LABELQuick Accept;%OK10;%OK9;%OK8;%OK7;%OK6;%OK5;\
mapkey(continued) %OK4;%OK3;%OK2;%OK1;%OK31;%OK32;%OK33;%OK34;%OK35;%OK51;%OK52;%OK53;%OK54;\
mapkey(continued) %OK36;%OK55;

2. RF、ED、EF、ES
RF、ED、EF、ES,从功能上后项依次包含前一项,分别增加所需执行的对应功能。
EF不是直接调用ED的,而相当于是调用了去掉了RT的ED,因为RT中第三项(编辑注释特征),在很多情况执行是会提示错误的,为了保持ED的通用,ED中加RT,为了提高EF和ES的效率,去掉了RT。
另外,EF中调用RF后,执行了UI_NO,是为了应对一种情况:在剖面打开时,已经对特征进行编辑定义,按EF或ES进草绘反而会退出定义。此时RF在搞怪,加了UI_NO就好了。
!--------------------------------------------------
mapkey RT @MAPKEY_LABELProperty;\
mapkey(continued) ~ Activate `main_dlg_cur` `Edit.psh_dwg_props`;\
mapkey(continued) ~ Activate `main_dlg_cur` `ActionMenuLayerProps`;\
mapkey(continued) ~ Activate `main_dlg_cur` `AEProperties`;%UI_OK;\
mapkey(continued) ~ FocusIn `main_dlg_cur` `proe_win`;
!--------------------------------------------------
mapkey RF @MAPKEY_LABELRedfine;#QUICK FIX;#REDEFINE;#CONFIRM;
!--------------------------------------------------
mapkey ED @MAPKEY_LABELEdit Definition;%RF;\
mapkey(continued) ~ Activate `main_dlg_cur` `Redefine`;%UI_YES;%UI_OK;%RT;
!--------------------------------------------------
mapkey EF @MAPKEY_LABELEdit REF;%RF;%UI_NO;\
mapkey(continued) ~ Activate `main_dlg_cur` `Redefine`;%UI_YES;%UI_OK;%Edit_Rib;%Edit_Fill;\
mapkey(continued) %Edit_1;%Edit_2;%Edit_3;%Edit_4;%Edit_5;%Edit_31;%Edit_32;%Edit_33;%Edit_34;\
mapkey(continued) %Edit_35;%Edit_36;%Edit_37;%Edit_38;~ Command `ProCmdSketSetup`;
!--------------------------------------------------
mapkey ES @MAPKEY_LABELEdit Sketch;~ Activate `visual_dlg0` `CloseBtn`;%EF;\
mapkey(continued) %Edit_21;%Edit_22;%Edit_23;%Edit_24;%Edit_25;#SECTION;#SKETCH;%Edit_72;

3. NXBF
NXBF实现偏移Front面0,建立一基准面,阵列10个,并建立对应的10个剖面
它先执行Pattern_Front,再调用X_Front_1到X_Front_10
!--------------------------------------------------
mapkey NXBF ;@MANUAL_PAUSECreate 10 X-sec by "FRONT" in Part?;%Pattern_Front;\
mapkey(continued) %X_Front_1;%X_Front_2;%X_Front_3;%X_Front_4;%X_Front_5;%X_Front_6;%X_Front_7;\
mapkey(continued) %X_Front_8;%X_Front_9;%X_Front_10;~ FocusIn `main_dlg_cur` `proe_win`;

Pattern_Front执行偏移Front面0,建立一基准面,并命名为DTM9001,然后阵列增加9个面,新增的名称会自动从DTM9002起递增
!--------------------------------------------------
mapkey Pattern_Front ;~ Command `ProCmdDatumPlane` ;%Find_DTM_FRONT;\
mapkey(continued) ~ Select `Odui_Dlg_00` `pg_vis_tab`1 `tab_3`;\
mapkey(continued) ~ Update `Odui_Dlg_00` `t3.datum_plane_name` `DTM9001`;\
mapkey(continued) ~ Activate `Odui_Dlg_00` `t3.datum_plane_name`;\
mapkey(continued) ~ Activate `Odui_Dlg_00` `stdbtn_1`;~ Command `ProCmdFtPattern` ;\
mapkey(continued) ~ Select `main_dlg_cur` `maindashInst0.ui_pat_type`1 `ui_pat_type_dir`;\
mapkey(continued) %Find_DTM_FRONT;\
mapkey(continued) ~ Update `main_dlg_cur` `maindashInst0.ui_pat_dir_1_num_inst` `10`;\
mapkey(continued) ~ FocusOut `main_dlg_cur` `maindashInst0.ui_pat_dir_1_num_inst`;\
mapkey(continued) ~ Update `main_dlg_cur` `maindashInst0.ui_pat_dir_1_incr` `10`;\
mapkey(continued) ~ FocusOut `main_dlg_cur` `maindashInst0.ui_pat_dir_1_incr`;\
mapkey(continued) @MANUAL_PAUSERESUME to Create Xsec;\
mapkey(continued) ~ Activate `main_dlg_cur` `dashInst0.stdbtn_1`;

Find_DTM_FRONT实现查找并选择Front面,这是从“Proe配置文件生成器”附带的代码中学习并改进的,在此表示感谢其作者!其原理是利用Ctrl+F的查找功能,输入Front查找到该面,并加以选中,其要点是须自动将上次的查找结果清除,而个别版本软件不支持该操作(比如我的2.0,呵呵)
! - - - - - - - - - - - - - - - - - - - - - - - - -
mapkey Find_DTM_FRONT %Find_DTM_Start;%Input_F;%Find_DTM_End;
! - - - - - - - - - - - - - - - - - - - - - - - - -
mapkey Find_DTM_Start ~ Activate `main_dlg_cur` `Edit.Find`;\
mapkey(continued) ~ Activate `selspecdlg0` `SelScopeCheck`0;\
mapkey(continued) ~ Select `selspecdlg0` `SelOptionRadio` 1 `Datum`;\
mapkey(continued) ~ Select `selspecdlg0` `LookByOptionMenu` 1 `Datum`;\
mapkey(continued) ~ Select `selspecdlg0` `ExtRulesLayout.ExtBasicNameLayout.BasNameComp` 1 ` \
mapkey(continued) == `;
! - - - - - - - - - - - - - - - - - - - - - - - - -
mapkey Input_F ~ Update `selspecdlg0` \
mapkey(continued) `ExtRulesLayout.ExtBasicNameLayout.BasicNameList` `FRONT`;
! - - - - - - - - - - - - - - - - - - - - - - - - -
mapkey Find_DTM_End ;@MAPKEY_LABELFind_DTM_End;\
mapkey(continued) ~ Activate `selspecdlg0` `EvaluateBtn`;\
mapkey(continued) ~ Select `selspecdlg0` `SelectedItemsList` -1 ;\
mapkey(continued) ~ Activate `selspecdlg0` `DeleteBtn`;~ Select `selspecdlg0` `ResultList` -1;\
mapkey(continued) ~ Activate `selspecdlg0` `ApplyBtn`;~ Activate `selspecdlg0` `CancelButton`;

X_Front_1是建立剖面过程,先调用 New_Xsc_Start 开始新建剖面,然后输入新名称_Front_01,到选择平面时运行查找功能,选定DTM9001,剖面完成,接着运行更改特征名称功能,改为_Front_01,一为好看,二为避免运行另外几个命令时冲突。其它9个面过程类似。
!--------------------------------------------------
mapkey X_Front_1 %New_Xsc_Start;\
mapkey(continued) ~ Update `visual_dlg0` `Table_INPUT` `_Front_01`;\
mapkey(continued) ~ Activate `visual_dlg0` `Table_INPUT`;#DONE;%Find_DTM_Start;\
mapkey(continued) ~ Update `selspecdlg0` `ExtRulesLayout.ExtBasicNameLayout.BasicNameList` \
mapkey(continued) `DTM9001`;%Find_DTM_End;~ Activate `main_dlg_cur` `Rename`;\
mapkey(continued) ~ Update `main_dlg_cur` `PHTLeft.node_edit` `_Front_01`;\
mapkey(continued) ~ Activate `main_dlg_cur` `PHTLeft.node_edit`;
(在此省略若干)
!--------------------------------------------------
mapkey New_Xsc_Start ~ Command `ProCmdViewVisTool`;\
mapkey(continued) ~ Select `visual_dlg0` `RadioSelApplMgr`1 `xsec`;\
mapkey(continued) ~ Activate `visual_dlg0` `ZoneNmCreate`;\
mapkey(continued) - - - - - - - - - - - - - - - - - - - - - - - - -

另外NXAF、NXBX等过程相仿,但NXBX是旋转阵列,中途有手动选轴和面的交互过程。
此处感叹下PROE的映射键功能是比较笨的,不能通过编程循环来控制语句的执行和变化。PROE的零件和组件中默认基准面和新建面的名称是不同的,不同的剖面数量、名称,意味着不同的代码,现在本套代码2千余行,三分之一为关于自动建剖面的。

发表几条感悟:
1. 为了便于检查,对于复杂的映射键,可将其拆成若干条,再调用它们(嵌套不超过5层)。对于重复使用的代码,这样也可减少文件长度。如我的文件中,直接使用的映射键有200个左右,而实际编录的映射键有500左右。
2. 如果你要手动编辑代码,最好找个有语言着色功能的程序编辑器,会帮你在成百上千行代码中保持清醒的。


3. 修改代码后要重新加载才能使用,我设了一个映射键作实现该功能,不然工作量又大了。注意,重新加载后,有时映射键执行会有混乱情况,那就重启PROE吧。
4. 如果有的映射键用不了,不要立即否定代码的问题。如自动建剖面功能,在自己电脑上4.0能用,2.0不能用,而公司的2.0能用。检查出关键是有一条代码(~ Select `selspecdlg0` `SelectedItemsList` -1 ;)在我的2.0上不能用,原因未知。
5. 虽然PROE的不同版本代码基本通用,但有的差别较大,不好兼容到一个映射键里,最好各版本单独配置。
6. 为了减少按错键带来麻烦,最好将没用上但可能按错的键也加到配置文件中。我加了一百多个,只执行重画功能。


四、我的困惑,有请高人指点
1. 为什么有的代码我自己电脑上4.0能用,2.0不能用,而公司的2.0能用,就那一条。
2. 在别人的一份代码中,执行部分几乎全是#开头的,如#VIEW ,#LAYER DISP,#ENVIROMENT,#DBMS,#SAVE,#EXIT,#PURGE等,而自己录制的仅有几个是这种形式的,如#DONE,#DONE/RETURN,#INSERT MODE等,这是为什么?
如果你有经验,请不吝赐教;如有其它问题,欢迎交流。
我的:[email=yeegle@#@139.com]yeegle@#@139.com[/email] (防扰)


五、我的映射键布局和代码下载
由于经常修改,加了版本号,如:
映射键布局 Proe Mapkeys' Map H13
映射键代码 Proe Mapkeys H8
字母从A开始,表示布局有大的改动,数字表示布局或代码各自的较小改动,无关联。
代码和布局的字母相同即可配套使用。
PROE中GH可查看当前映射键代码。

东西放在豆丁网了,下载地址:
映射键布局 http://www.docin.com/p-51400846.html
映射键代码 http://www.docin.com/p-51407964.html

快捷键不必每人一样,但功能和代码应求其精。如果你有好的想法,不妨上传交流!

【送人玫瑰,手有余香】






[ 本帖最后由 wangye618 于 2010-4-26 21:23 编辑 ]

Proe Mapkeys H8.rar

12.6 KB, 阅读权限: 10, 下载次数: 2262

ProE全套通用快捷键代码

9

主题

185

回帖

1

威望

工程师

Rank: 3Rank: 3

积分
293
发表于 2010-4-25 00:42 | 显示全部楼层
看来楼主对映射键研究的很透彻啊!!不过我还是喜欢用自己设置的!!

32

主题

253

回帖

6

威望

工程师

Rank: 3Rank: 3

积分
341
发表于 2010-4-25 01:55 | 显示全部楼层
每个人都有自己喜欢的  很难统一 不过还是要谢谢LZ了

1260

主题

4万

回帖

899

威望

管理员

Rank: 10Rank: 10Rank: 10

积分
47325

社区建设勋章优秀斑竹勋章原创先锋勋章热心助人勋章宣传大使勋章斑竹勋章

发表于 2010-4-25 06:47 | 显示全部楼层
有两个百度的图片看不到,传到论坛吧

2

主题

155

回帖

0

威望

助工

Rank: 2

积分
170
发表于 2010-4-25 08:41 | 显示全部楼层
青菜萝卜,各有所爱

8

主题

342

回帖

8

威望

工程师

Rank: 3Rank: 3

积分
432
发表于 2010-4-25 10:00 | 显示全部楼层
看一下!!

2

主题

13

回帖

0

威望

实习生

Rank: 1

积分
18
 楼主| 发表于 2010-4-25 10:53 | 显示全部楼层

回复 4# 野火 的帖子

图片是布局表格和代码截图,文章末尾有表格和代码下载地址
我希望看到一些意见,谢谢啊

2

主题

13

回帖

0

威望

实习生

Rank: 1

积分
18
 楼主| 发表于 2010-4-25 10:55 | 显示全部楼层

回复 2# TM1 的帖子

我也持这个观点,重点是分享思路和代码。能否看看你们的设置?

15

主题

565

回帖

11

威望

高工

Rank: 4

积分
770
发表于 2010-4-25 11:05 | 显示全部楼层
图片看不到的。。谢谢分享。。

12

主题

545

回帖

6

威望

高工

Rank: 4

积分
823
QQ
发表于 2010-4-25 11:35 | 显示全部楼层
分析的很详细!学习了,谢谢分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站为非营利性站点,部分资源为网友搜集或发布,仅供学习和研究使用,如用于商业用途,请购买正版。站内所发布的资源,如有侵犯你的权益,请联系我们,本站将立即改正或删除。

QQ|手机版|小黑屋|野火论坛(©2007~2024) ( 苏ICP备11036728号-2 )苏公网安备 32039102000103号

GMT+8, 2024-4-26 10:48 , Processed in 0.116756 second(s), 28 queries .

快速回复 返回顶部 返回列表