教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 机械制图教程 · ProEngineer教程 · ProEngineer零件设计

Pro/ENGINEER设计工具Pro/TOOLKIT简略介绍

学院最新推荐文章
教程推荐
『Pro/ENGINEER设计工具Pro/TOOLKIT简略介绍』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2005-6-5 

    【摘    要】Pro/TOOLK99v可以开发定制、扩展Pro/ENGINEER的功能,介绍其常用函数的功能和使用方法,及其基本操作步骤。

    【关键词】 Pro/TOOLK99v    程序    函数


1 前言

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

2 Pro/TOOLK99v编程条件和工具

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

3 Pro/TOOLK99v程序中的结构体

    Pro/TOOLK99v都是用C语言编写的,每个对象都用结构体来描述,因此需要了解对象是如何使用的。为了使用结构体,需要定义它,Pro/TOOLK99v提供许多“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/TOOLK99v中的常用函数及使用

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

Description
Initializes the p_handle with the current Pro/ENGINEER object.
Synopsis
#include <ProMdl.h>
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<int> *fids = (vector<int> *)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<int> feat_ids;
// the main Pro/TOOLK99v call
ProSolidFeatVisit((ProSolid) mdlhandle,(ProFeatureVisitAction)user_action_get_feat_i

[1] [2] 下一页  

】【关闭窗口
·上页:
·下页:
相关文章
     机械制图教程 - ProEngineer零件设计
推荐教程Pro/ENGINEER模拟纵置板簧运动
普通教程怎么样在 Pro/ENGINEER 里面运
普通教程Pro/E动画设计模块在产品设计过
普通教程运用Pro/INTRALINK 建立产品设
普通教程Pro/ENGINEER在成形车刀设计与
普通教程Pro/ENGINEER 用设计来简化复杂
普通教程ProENGINEER软件在压铸模具设计
普通教程Pro/E和ANSYS软件在天线结构设
普通教程PTC设计系统环境下地产品模块化
普通教程基于Pro/E平台地工程图纸自动化
普通教程Pro/E二次设计运用toolkit设计
普通教程Pro/ENGINEER在家用电器设计里
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光