佳工机电网 在线工博会 我的佳工网 手机版 English
关键字  
  选择展区 >>
您的位置: 首页 > CAD/CAM/PDM/PLM展区 > CAD/CAM软件展厅 > 产品库 > 技术论文 > 正文 产品库 会展 人才 帮助 | 注册 登录  
CAD/CAM软件
 按行业筛选
 按产品筛选
查看本类全部文章
e展厅 产品库 最新动态 技术文章 企业目录 资料下载 视频/样本 反馈/论坛
  技术应用 | 基础知识 | 外刊文摘 | 业内专家 | 文章点评 投稿 发表科技文章 
Pro/ENGINEER开发工具Pro/TOOLKIT简介
作者:大连铁道学院 施志辉 王丹
欢迎访问e展厅
展厅
1
CAD/CAM软件展厅
CAD软件, CAD/CAM, CAM, 钣金CAD/CAM, CAI, ...
【摘要】Pro/TOOLKIT可以开发定制、扩展Pro/ENGINEER的功能,介绍其常用函数的功能和使用方法,及其基本操作步骤。
【关键词】 Pro/TOOLKIT程序函数

1 前言

Pro/TOOLKIT是Pro/ENGINEER的一个应用程序接口(API),其的编程语言是C 语言,它可以对Pro/ENGINEER进行功能扩展,满足PTC客户的特定需求。而且,Pro/TOOLKIT提供了定制标准Pro/ENGINEER用户界面的能力,自动执行重复性的程序,通过Pro/ENGINEER集成的内部程序(Dll)或外部应用程序(Exe)可以为造型用户提供自定义的应用程序、设计规划和绘图自动化。

2 Pro/TOOLKIT编程条件和工具

知道如何写C程序,就已经具备了使用Pro/TOOLKIT的条件,应该能够理解指针,当把数据从一个函数传到另一函数时,将经常使用到它。Pro/TOOLKIT帮助,包含2000多个函数,并且可以通过例子代码学习如何使用。除此之外,如果想解决几何学问题,还需要对失量理论有一定的了解。

3 Pro/TOOLKIT程序中的结构体

Pro/TOOLKIT都是用C语言编写的,每个对象都用结构体来描述,因此需要了解对象是如何使用的。为了使用结构体,需要定义它,Pro/TOOLKIT提供许多“typedefs”,这些typedefs只不过是Pro/ENGINEER结构体的伪指令。例如:

typedef struct entity* ProPoint;
typedef struct sld_part* ProSolid;

这些也叫做OHandles (from Opaque handles),在Pro/ENGINEER中它们直接获得对象的内存地址。在某些情况下,这样做可能是危险的,因此PTC提供了另外一种结构体类型,它只包含Pro/ENGINEER的内部数据库中项目的必要信息。这种结构体(labeled DHandle from data handle)是一种类的结构,它包括对象的类型、ID等。许多函数命令都和下面的结构体相联系。

typedef struct pro_model_item
{
ProType type;
int id;
ProMdl owner;
}ProModelitem,ProGeomitem,ProExtobj, ProFeature,ProProcstep,ProSimprep,ProExpldstate,
ProLayer,ProDimension,ProDtlnote,ProDtlsyminst,ProGtol,ProCompdisp

如果处理几何问题,要用到ProModelitem、ProGeomitem 和ProFeature这几个结构体。

4 Pro/TOOLKIT中的常用函数及使用

需要了解的第一个函数是ProMdlCurrentGet()。在Pro/TOOLKIT帮助中其描述如下。

Description
Initializes the p_handle with the current Pro/ENGINEER object.
Synopsis
#include
ProError ProMdlCurrentGet (
ProMdl *p_handle
/* (Out)
The model handle
*/
)

这个函数包含一个参数-指针型参数,定义及使用方法如下。

ProMdl mdlhandle;
ProMdlCurrentGet(&mdlhandle);
mdlhandle 是Ohandle型参数 ,能用这个对象做许多事情。例如,能用ProMdlDataGet()做一个调用并且获得关于这个模型的一些初始信息。

ProMdldata mdldata;
ProMdlDataGet (mdlhandle, &mdldata);

mdldata是一个简单的结构体,包括名称、类型、路径和关于模型的一些其他信息。下面打印这个模型的类型。

不能直接执行printf("%s\n",mdldata.type),需要采用下面的方式,用ProWstringToString()把这种类型转成一种规定的字符序列:

char type_in_c[PRO_TYPE_SIZE]; /* uses predefined Pro/T constants like PRO_TYPE_SIZE */
ProWstringToString (type_in_c, mdldata.type);
printf("%s\n",type_in_c);

现在打印模型的名字,就能象上面一样,从mdldata结构中取出名字,也可以用另一种的方法。

ProName current_name;
char current_name_in_c[PRO_NAME_SIZE];
ProMdlNameGet(mdlhandle, current_name);
ProWstringToString(current_name_in_c,current_name);
printf("%s\n", current_name_in_c);

接着,我们看一下访问函数。模型可能有大量包含许多子对象的对象。由于不知道这些对象的数量,需要能够以某种方式收集要寻找的对象。对于这种类型的问题,需要用到PTC提供的访问函数。

假设想访问包含在一个模型中的所有特征并收集它们的ids。执行这个指令的函数是ProSolidFeatVisit()。其包括4个参数: ProSolid句柄、访问函数指针、过滤函数指针和应用数据的结构体指针。过滤函数的目的是能够过滤特定的对象,请看下面的例子:

static ProError user_action_get_feat_ids(
ProFeature *feature,
ProError status,
ProAppData appdata)
{
ProBoolean visible;
vector *fids = (vector *)appdata;
ProFeatureVisibilityGet(feature,&visible); /* only work with visible features */
if(visible == PRO_B_TRUE){ // and collect their ids
fids->push_back(feature->id);
}
return(PRO_TK_NO_ERROR);
}
vector feat_ids;
// the main Pro/TOOLKIT call
ProSolidFeatVisit((ProSolid) mdlhandle,(ProFeatureVisitAction)user_action_get_feat_ids,NULL,(ProAppData)&feat_ids) ;注意前面提到的mdlhandle的使用,在函数调用中ProMdl 和 ProSolid能相互变换。还要注意,对于不想使用的过滤函数,赋该参数值为NULL。

现在在feat_ids中获得一系列ids,这样就能使用它们执行一些任务,例如把它们打印出来:

for(unsigned int i=0; icout<}

5 结束语

以上提到的是需要学习Pro/TOOLKIT最基本、最常用的概念。建议学习这些例子时,可以不断变化的进行实验。另外,通过学习Pro/TOOLKIT帮助中的实例,不断深入理解大量的函数,学会其使用方法,逐步开发出用户需要的Pro/ENGINEER外挂模块,以满足特殊用户的需求。(end)
文章内容仅供参考 (投稿) (如果您是本文作者,请点击此处) (5/13/2005)
查看更多CAD/CAM软件相关文章: more
·迪卡侬利用欧特克衍生式设计重新构想 更轻、更强、更可持续的自行车 Autodesk (11/18/2020)
·NUM助力台湾机床公司,实现机器人专用渐开线齿轮和摆线齿轮的自动化生产 (5/18/2019)
·hyperMILL革命性五轴加工策略 让复杂工件加工时间的节省高达90% OPEN MIND (12/6/2018)
·ESPRIT助力上海泷泽在机床行业寒冬期逆势增长300% DP Technology (8/13/2018)
·小型数控铣床刀具路径(刀路)参数曲面粗精选择 newmaker (3/26/2018)
·线切割加工中电极丝的选用 (12/9/2007)
·新洲软件:让设计成为享受 新洲软件 (10/31/2006)
·用CAXA电子图板设计螺旋梯 河北辛集化工集团 赵静淼 (5/30/2006)
·基于CATIA系统的虚拟装配技术应用研究 newmaker (5/30/2006)
·应用AutoCAD几何计算器实现快速定位 西南石油学院 郑悦明 (2/11/2006)
查看相关文章目录:
·CAD/CAM/PDM/PLM展区 > CAD/CAM软件展厅 > CAD/CAM软件文章
文章点评 查看全部点评 投稿 进入贴吧


对 CAD/CAM软件 有何见解?请到 CAD/CAM软件论坛 畅所欲言吧!


网站简介 | 企业会员服务 | 广告服务 | 服务条款 | English | Showsbee | 会员登录  
© 1999-2024 newmaker.com. 佳工机电网·嘉工科技