Creo二次开发中遍历封装技术详解
需积分: 47 12 浏览量
更新于2024-07-18
4
收藏 33KB DOCX 举报
"Creo二次开发中遍历封装详解"
在Creo二次开发中,遍历封装是非常重要的技术之一。它可以帮助开发者快速地访问和操作ProSolid下的面、点、轴等几何元素。今天,我们将详细介绍Creo二次开发中各种遍历封装的技术,包括ProSolid下的遍历访问封装代码、数组的封装(仿vector)和常用的封装有ProSolid、ProFeature、ProPoint、ProCsys、ProAxis等。
ProSolid下的遍历访问封装代码
在ProE二次开发中,时常需要遍历ProSolid下的面、点、轴等几何元素。我们知道,ProToolkit下的遍历函数还是有点小麻烦的,而ProWebLink中就简单很多。例如要遍历某ProSolid下的所有Group,代码如下:
```c
vargroupList = sld.ListGroups();
for (vari = 0; i < groupList.Count; ++i)
{
// 对每个Group执行操作
}
```
那么,ProToolkit下是否可以封装类似的代码呢?当然可以。下面是一个遍历访问ProSolid下所有DatumPoint的代码:
```c
ProError err;
ProMdl mdl_curr;
err = ProMdlCurrentGet(&mdl_curr);
try
{
// 利用当前Model构造CProSolid对象,并遍历访问其下的所有DatumPoint
CProSolid sld((ProSolid)mdl_curr);
CProList<ProPoint> pntList = sld.ListPoints();
CString cstr;
cstr.Format(TEXT("%d"), pntList.size());
AfxMessageBox(cstr);
// 对每个DatumPoint执行操作
for (int i = 0; i < pntList.size(); ++i)
{
ProPoint pnt = pntList[i];
int id;
err = ProPointIdGet(pnt, &id);
CString cstr;
cstr.Format(TEXT("PointId:%d."), id);
AfxMessageBox(cstr);
}
}
catch (exception& e)
{
AfxMessageBox(TEXT("exception."));
}
```
数组的封装(仿vector)
在Creo二次开发中,我们经常需要使用数组来存储大量的数据。为此,我们可以封装一个类似于vector的数组类CProArray。下面是一个CProArray的实现:
```c
#ifndef C_PRO_ARRAY_H_
#define C_PRO_ARRAY_H_
#include <ProToolkit.h>
template <typename T>
class CProArray
{
public:
CProArray();
~CProArray();
void push_back(T element);
T operator[](int index);
int size();
private:
T* data_;
int size_;
};
#endif // C_PRO_ARRAY_H_
```
常用的封装
在Creo二次开发中,我们经常需要使用一些常用的封装,例如ProSolid、ProFeature、ProPoint、ProCsys、ProAxis等。这些封装可以帮助我们快速地访问和操作ProSolid下的面、点、轴等几何元素。
例如,我们可以封装一个CProSolid类,用于遍历访问ProSolid下的所有DatumPoint:
```c
class CProSolid
{
public:
CProSolid(ProSolid solid);
~CProSolid();
CProList<ProPoint> ListPoints();
private:
ProSolid solid_;
};
CProSolid::CProSolid(ProSolid solid) : solid_(solid) {}
CProSolid::~CProSolid() {}
CProList<ProPoint> CProSolid::ListPoints()
{
CProList<ProPoint> pntList;
// 遍历访问ProSolid下的所有DatumPoint
return pntList;
}
```
Creo二次开发中遍历封装是非常重要的技术之一。它可以帮助开发者快速地访问和操作ProSolid下的面、点、轴等几何元素。通过封装数组和常用的封装,我们可以更方便地进行二次开发。
2018-12-09 上传
2024-10-10 上传
2021-10-02 上传
2014-05-25 上传
2021-10-01 上传
2018-04-02 上传
金舵主
- 粉丝: 22
- 资源: 2
最新资源
- node-silverpop:轻松访问Silverpop Engage API的Node.js实现
- 最小宽度网格图绘制算法研究
- 多数据源事务解决方案:统一管理单应用中的多数据库
- 利用Next.js匿名浏览Reddit子板块图片
- SpringBoot+H5官网模板,覆盖多种网页资源播放
- Gitshots-server:简化开源贡献的提交记录服务
- Scrapy-Dash工具:轻松生成Scrapy文档集
- Node.js v18.12.0发布,优化Linux PPC64LE服务器性能
- 蚂蚁设计专业版快速使用指南与环境配置
- Vue.js 2.3.4源码解读及开发环境配置指南
- LDBase:Lazarus开发者的dbf数据库管理开源工具
- 高效部署WordPress的VENISON脚本教程
- Saffron Bahraman-crx插件:控制产品线的栽培与培养
- Gitpod中运行前后端应用程序的指南
- Node.js v20.3.0新版本发布 - 开源跨平台JavaScript环境
- 掌握非线性方程根的迭代求解-Matlab方法实现