Creo的二次开发配置(creo 二次开发)

ProE/Creo Parametric TOOLKIT 二次开发环境推荐设置(上)

一、ProE/Creo与IDE选择

IDE(Integrated Development Environment):集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。

VS(Microsoft Visual Studio):是微软发布的一个很完整的开发工具集,包含很多高级语言的开发环境,VC只是VS其中的一个开发环境。

VC(Microsoft Visual C ):是微软公司的C 开发工具,具有集成开发环境,可提供编辑C语言,C 以及C /CLI等编程语言。

ProE或Creo低版本上开发的插件一般可以在高版本上运行,或将源代码经过少量修改,然后在高版本上编译后即可在高版本上运行,高版本上开发的插件不可以在低版本上运行。

二、创建MFC DLL项目(Visual Studio 2012 Creo3.0 M140)

1. 启动Visual Studio 2012>文件>新建>项目>模板>Visual C >MFC>MFC DLL>填写项目“名称(N)”>选择项目文件存放“位置(L)”>“确定”

DLL (Dynamic Link Library):动态链接库文件,又称“应用程序拓展”,是一种软件文件类型。

DLL模式:进程内模式,Pro/TOOLKIT插件与ProE或Creo程序之间的信息交换通过直接函数调用的形式完成,插件与程序无缝集成,推荐使用的一种方式。

EXE模型:多进程模式,插件被编译为可执行程序,这个插件程序将是ProE或Creo程序的衍生,并作为主程序的一个子进程来运行。

2. “下一步>”

3. DLL类型:选择“带静态链接MFC 的规则 DLL(R)”>“完成”

使用共享MFC DLL的规则DLL(D):编译后的DLL程序文件中不包含MFC的库,DLL程序文件稍小一些,当发布该程序时,如果对方的机器上没有安装对应版本的MFC的库,那么该DLL程序无法运行。

带静态链接MFC 的规则 DLL(R):编译后的DLL程序文件中包含MFC的库,DLL程序文件稍大一些,当发布该程序时,即使对方电脑即使没有安装对应版本的MFC的库,那么该DLL程序也可以运行。

第一种与第二种类型对于Pro/TOOLKIT插件程序文件大小影响不大,推荐使用第二种类型。

三、项目属性设置

1. 新建x64平台

现在用户安装的ProE或Creo大多是64位版本,所以开发时建议开发64位平台的插件程序,具体还是要以用户安装的程序平台位数来定。

Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息。

Release:发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的。Release模式下生成一个文件.exe或.dll文件(调试信息可在单独的PDB文件中生成)。

建议开发调试的时候使用Debug模式,方便插入断点和捕捉变量值,发布的时候使用Release模式,在创建项目的时候可以将两种方式都配置好,以供后续选择。

2. 常规设置

输出目录:插件DLL程序文件生成的目录,对x64平台建议使用“..binx86e_win64”,对x86平台建议使用“..bini486_nt”。

中间目录:插件程序编译链接是产生的中间文件的目录。

平台工具集:当电脑中安装有多个版本的平台工具集时,可修改当前项目使用的平台工具集,平台共计集的选择请参照【表格1】。

MFC的使用:当新建MFC DLL项目时,如果DLL类型选择“使用共享MFC DLL的规则DLL(D)”,那么此处显示“在共享 DLL 中使用 MFC”;如果DLL类型选择“带静态链接MFC 的规则 DLL(R)”,那么此处显示“在静态库中使用 MFC”。也可在此处修改DLL类型,推荐使用“在静态库中使用 MFC”。

字符集:可以选择“使用 Unicode 字符集”或“使用多字节字符集”,PTC官方推荐选择“使用 Unicode 字符集”。

3. VC 目录

对于x64平台和x86平台,包含目录一样,库目录有所不同。

x64平台:

包含目录:D:PTCCreo 3.0M140CommonFilesprotoolkitincludes

库目录:D:PTCCreo 3.0M140CommonFilesprotoolkitx86e_win64obj

x86平台:

包含目录:D:PTCCreo 3.0M140CommonFilesprotoolkitincludes

库目录:D:PTCCreo 3.0M140CommonFilesprotoolkit i486_ntobj

4. 预处理器定义

运行库选择“多线程 DLL (/MD)”或“多线程调试 DLL (/MDd)”时,添加:_AFXDLL,因为不推荐选择这两种方式,所以不采用这两种方式是不需要添加。

在插件DLL程序中用到头文件“ProMessage.h”中函数时,添加:PRO_USE_VAR_ARGS,一般都会使用该文件中的函数,默然是添加。

5. 运行库

对与Debug和Release模式,运行库的选择有所不同:

Debug模式:多线程调试 (/MTd),推荐。

Debug模式:多线程调试 DLL (/MDd),不推荐。

Release模式:多线程 (/MT),推荐。

Release模式:多线程 DLL (/MD) ,不推荐。

运行库:是程序在运行时所需要的库文件。通常运行库是以DLL的形式提供。

6. 附加依赖项

Creo版本不同,需要添加的库文件也有所不同,一般都需要添加的项有:

mpr.lib

psapi.lib

ws2_32.lib

netapi32.lib

Creo版本

库文件:(/MT)或(/MTd)

库文件:(/MD)或(/MDd)

ProE4.0

protk_dll.lib

protk_dllmd.lib

ProE5.0

protk_dll.lib

protk_dllmd.lib

Creo2.0

protk_dll.lib

protk_dllmd.lib

Creo3.0

protk_dll_NU.lib、ucore.lib、udata.lib

protk_dllmd.lib、ucore.lib、udata.lib

Creo4.0

protk_dll_NU.lib、ucore.lib、udata.lib

protk_dllmd_NU.lib、ucore.lib、udata.lib

Creo5.x.x.x

protk_dll_NU.lib、ucore.lib、udata.lib

protk_dllmd_NU.lib、ucore.lib、udata.lib

四、代码编辑

以下是该插件程序中,需要在文件“TkPlugin.cpp”中输入的代码:

//头文件

#include \”ProMenubar.h\”

#include \”ProMenu.h\”

#include \”ProUtil.h\”

#include \”ProMessage.h\”

//菜单状态

static uiCmdAccessState AccessDefault(uiCmdAccessMode access_mode)

{

return(ACCESS_AVAILABLE);

}

//自定义函数

void SayHello()

{

//消息文件

ProFileName msg_file;

ProStringToWstring(msg_file, \”message.txt\”);

//消息转换

ProLine msg;

ProMessageToBuffer(msg, msg_file, \”Hello World\”);

//显示消息

AfxMessageBox(msg);

}

//入口函数

extern \”C\” int user_initialize()

{

ProError status = PRO_TK_NO_ERROR;

//菜单文件

ProFileName menu_file;

ProStringToWstring(menu_file,\”menu.txt\”);

//创建菜单

status = ProMenubarMenuAdd(\”TkPluginMenu\”,\”TkPluginMenu\”,\”Help\”,PRO_B_TRUE,menu_file);

//第一个命令

uiCmdCmdId FirstCmd_Id;

status = ProCmdActionAdd(\”FirstCmd_Act\”,(uiCmdCmdActFn)SayHello,uiCmdPrioDefault,

AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&FirstCmd_Id);

status = ProMenubarmenuPushbuttonAdd(\”TkPluginMenu\”,\”FirstCmd\”,\”FirstCmd\”,

\”This button will show a message\”,NULL,PRO_B_TRUE,FirstCmd_Id,menu_file);

status = ProCmdIconSet(FirstCmd_Id,\”FirstCmd.gif\”);

//返回值

return (0);

}

//出口函数

extern \”C\” void user_terminate()

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

}

Creo的二次开发配置(creo 二次开发)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月16日 下午3:31
下一篇 2024年5月16日 下午3:49

相关推荐

  • 管理者的项目管理思维(管理者的项目管理思维导图)

    【课程背景】 项目管理不仅仅是项目经理的事! 事实上,管理者的工作中同样存在着不少的项目型活动,而为了适应组织发展与市场需求的快速变化,管理者还将不得不持续应对越来越多的项目挑战。…

    科研百科 2024年6月12日
    35
  • 忻州金石壹號总经理杨峻玮:为家乡打造智慧社区的引领者

    近些年,忻州的城市发展可谓日新月异。从全面脱贫,到创文、创卫;从古城旧貌换新颜,到创建全域旅游、助推太忻一体化发展。勤劳朴实的忻州人民在不断地发展中积极探索,勇于创新,各行业均涌现…

    科研百科 2022年8月25日
    300
  • APP软件开发的流程(app软件开发的流程是什么)

    APP开发是个复杂的系统,一个APP往往需要多工种多人员的合作下才能完成。 第一步:软件开发需求评估 项目正式开发之前,客户应该对自己的需求进行评估、确认项目的开发周期及报价。前期…

    科研百科 2024年9月14日
    17
  • 许昌科研项目

    许昌科研项目 许昌市位于中国中部,是一个历史悠久,文化底蕴深厚的城市。近年来,许昌市一直致力于推动科技创新,建设现代化城市。在许昌市,有许多科研项目正在开展,这些项目旨在推动城市的…

    科研百科 2025年2月5日
    0
  • 项目档案管理系统 翻译

    项目档案管理系统翻译 项目档案管理系统是一种用于管理项目文件和资料的软件系统,能够帮助项目管理人员更好地掌握项目进度、质量和成本等信息,提高项目管理的效率和准确性。本文将介绍项目档…

    科研百科 2025年1月21日
    0
  • 科研项目负责人意见怎么写(科研项目负责人的任职资格)

    科研项目负责人的任职资格 作为一名科研项目负责人,需要具备高度的责任心和领导能力,以确保项目的成功完成。以下是我对于如何成为一名优秀的科研项目负责人的一些建议和资格要求。 1. 具…

    科研百科 2024年4月4日
    293
  • 信息系统项目管理师论文参考十(2021年信息系统项目管理论文)

    论信息系统项目的规划绩效域 摘要:本文以我参与管理的人脸识别智能门禁大数据安防管理信息系统项目为例,探讨了信息系统项目规划绩效域的相关要点。首先,介绍了项目的背景、规模、发起单位、…

    科研百科 2024年6月11日
    45
  • 文化站免费开放经费管理办法

    文化站免费开放经费管理办法 为加强文化站免费开放工作,提高文化站的服务质量和水平,促进文化事业的发展,现将文化站免费开放经费管理办法制定如下: 一、适用范围 本管理办法适用于我县境…

    科研百科 2024年7月12日
    43
  • 智能仓储解决方案是什么?(智能仓储整体解决方案)

    智能仓储解决方案是什么?  我国有大量的传统仓储设施,对传统仓储设施和管理提供智能方案是仓储管理智能化和智慧物流供应链管理的重要工作。智能仓储解决方案就是通过利用现代信息技术、5G…

    科研百科 2022年7月11日
    172
  • 18号文研究类报价经费

    18号文研究类报价经费 尊敬的各位经费申请方: 感谢您对我们公司的研究类报价经费申请予以关注。在此,我代表公司,向各位提供最新的研究类报价经费申请报告,以便各位进行参考和评估。 本…

    科研百科 2024年10月14日
    17