做个小插件(打开Part路径插件)
Posted 你好我叫赵老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做个小插件(打开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")
以上是关于做个小插件(打开Part路径插件)的主要内容,如果未能解决你的问题,请参考以下文章