做个小插件(打开Part路径插件)

 1 (CAIDAN.men)
 2 VERSION 170                                   
 3 EDIT UG_GATEWAY_MAIN_MENUBAR           
 4                       
 5 AFTER UG_HELP
 6     CASCADE_BUTTON TOOLS                
 7     LABEL 工具 
 8 END_OF_AFTER
 9 
10 MENU TOOLS
11         CASCADE_BUTTON PROGRAMMER
12         LABEL 程序相关
13 
14         CASCADE_BUTTON KFTOOLS
15         LABEL 开发帮助相关
16 END_OF_MENU
17 
18 MENU PROGRAMMER      
19 43 
20         BUTTON CAIDAN_1                                 
21         LABEL 打开Prt路径 
22         MESSAGE 打开Prt路径,没有Prt时,打开UGII
23         BITMAP folder_prt
24         ACTIONS create_folder
25 109 
26 END_OF_MENU 
27 
28 MENU KFTOOLS
29     
30         BUTTON CAIDAN_12                                
31         LABEL
32         MESSAGE
33         ACTIONS    
34 
35 
36 END_OF_MENU
1 (GONGJT.TBR)
2 TITLE 编程工具                                   
3 VERSION 170                                         
4 DOCK TOP                                            
5                                     
6 BUTTON   CAIDAN_1                                   
7 LABEL    打开Prt路径                                      
8 BITMAP   folder_prt

以上是挂菜单和工具条显示。可以创建文件夹“Startup”,.dll的文件可以放在文件夹“Application”中

 1 //此函数功能是输入工作部件的tag,返回工作部件的路径
 2 static string path_name(tag_t path_tag)
 3 {
 4     char part_fspec[MAX_FSPEC_SIZE+1]="";
 5     //得到工作部件的路径
 6     UF_PART_ask_part_name(path_tag,part_fspec);
 7     //拆分字符串
 8     string s1_buffer=part_fspec;
 9     string path=s1_buffer.substr(0,s1_buffer.find_last_of("\\"));//  注意此处应是"\\"不能为"\"。
10     return path;
11 }
12 
13 extern DllExport void ufsta( char *param, int *returnCode, int rlen )
14 {
15     /* Initialize the API environment */
16     if( UF_CALL(UF_initialize()) ) 
17     {
18         /* Failed to initialize */
19         return;
20     }
21     
22     /* TODO: Add your application code here */
23     UF_initialize();
24 
25     //以下为函数对应内容
26     tag_t work_part_tag=NULL_TAG;
27     //获取当前工作部件的tag
28     work_part_tag=UF_ASSEM_ask_work_part();
29     //路径名称
30     string name=path_name(work_part_tag);
31     //打开文件夹
32     ShellExecute(NULL,"open",NULL,NULL,name.c_str(),SW_SHOWNORMAL);
33     
34     UF_terminate();
35     /* Terminate the API environment */
36     UF_CALL(UF_terminate());
37 }

注意:ShellExecute测试成功 注意需要加 #pragma comment(lib,"Shell32") 注意需要调一下 项目-》属性-》常规-》字符集(改为未设置(原为unicode 字符集))

 头文件注意:  #include <Windows.h>  #pragma comment(lib,"Shell32")

posted @ 2019-12-14 12:13  你好我叫赵老师  阅读(465)  评论(0编辑  收藏  举报