CREO Toolkit二次开发心得
1.语言
语言是交流的工具,查看Creo开发文档需要用英语,与计算机交流需要用C和C++,想无障碍交流,语言一定要精通,有特异功能的除外。
2.工具
工欲善其事,必先利其器。Creo和IDE这两个工具必须熟悉。熟悉Creo才能熟悉开发的对象和目标,熟悉IDE(一般是Visual studio)才能快速完成代码的撰写(最起码的工程配置、调试总得会)。
3.文档
Creo的官方开发文档是最权威的教程,所有的教程都只是它的衍生。开发文档分为三类,其中”Creo Parametric TOOLKIT Categories”和”Creo Parametric TOOLKIT Objects”可以查到二次开发中的所有数据和函数,”Creo Parametric TOOLKIT Users’s Guide” 按照Creo的使用方式介绍各类操作的流程和相关函数简介和部分示例代码。一定要学会在Creo的官方开发文档查找需要的信息。
4.数据
TOOLKIT是C语言写的库,这意味着:
TOOLKIT不能采用面向对像的方式获取或设定数据。举例来说,保存模型只能是ProMdlSave(Mdl)而不是Mdl.Save()。
由于c语言没有对象这个概念,部分Creo数据采用结构体来描述。很多关键数据都必须在结构体成员中获得,通过手册可以查到。例如ProModelitem, ProGeomitem, ProFeature等等其实都是pro_model_item类型的结构体,想要获得其类型,只要访问type这个结构体成员即可:
1 | struct pro_model_item |
TOOLKIT大量使用typedef关键字定义数据类型名称。不要被这些复杂的名字搞晕,在开发文档中所有数据类型均设置为超链接,点击它可以打开对应的头文件获取其真正的类型。举例来说,ProLine、ProPath、ProName等等这些常见的数据类型,其实都是wchar_t类型不同长度数组。这就是说,其实任何针对wchar_t*的c函数均可以对这些数据进行操作(由于TOOLKIT是c而不是c++写的,所以这里可以理解为什么需要在工程中配置wchar_t是否为内置类型了)。
TOOLKIT大量使用了指针、指向指针的指针,必须要弄清楚c语言指针概念,否则极易出现内存错误。
4.函数
TOOLKIT采用面向过程的编程风格,所有数据只能通过函数进行赋值和读取。每一个TOOLKIT的函数均采用”Pro + 对象类型名 + 动作名”这样的命名规则进行命名。函数需要输入的数据和输出的数据都是通过函数参数进行操作。需要输出的数据一般作为指针输入,修改后读取其值即可。
TOOLKIT函数的返回值类型都是ProError,ProError是一个枚举类型,包含函数执行成功或失败的具体状态值。函数执行成功最常见的返回值是PRO_TK_NO_ERROR。当函数执行过程中确实出现了问题或是由于一些正常操作上的原因,都会返回错误状态。每个函数可能的返回值在API文档中对应函数的下面都有描述。并且在头文件中函数原型的下面的注释中也有。
TOOLKIT函数都有一个函数原型,其对应的头文件均可在帮助文档的函数说明获得,使用函数时必须包含对应的头文件。
5.流程
二次开发的业务逻辑相对简单,除了一些个性化开发中的算法流程需要相对复杂的逻辑之外,一般的二次开发的业务流程其实和实际操作是对应的。开发时可以考虑手动操作一遍实现对应的功能再根据操作确定相应的业务流程。建议将Creo设置为英文版,通过操作时点击的菜单、工具栏选项等明确操作的关键字后再在帮助文档中查询。