针阀厂家
免费服务热线

Free service

hotline

010-00000000
针阀厂家
热门搜索:
成功案例
当前位置:首页 > 成功案例

看一看:Pro-ENGINEER开发工具Pro-

发布时间:2021-11-17 16:09:39 阅读: 来源:针阀厂家

【摘要】Pro/TOOLKIT可以开发定制、扩大Pro/ENGINEER的功能,介绍其常常使用函数的功能和使用方法,及其基本操作步骤。【关键词】 Pro/TOOLKIT程序函数1 前言Pro/TOOLKIT是Pro/ENGINEER的1个利用程序接口(API),其的编程语言是C 语言,它可以对Pro/ENGINEER进行功能扩大,满足PTC客户的特定需求。而且,Pro/TOOLKIT提供了定制标准Pro/ENGINEER用户界面的能力,自动实行重复性的程序,通过Pro/ENGINEER集成的内部程序(Dll)或外部利用程序(Exe)可以为造型用户提供自定义的利用程序、设计计划和绘图自动化。2 Pro/TOOLKIT编程条件和工具知道如何写C程序,就已具有了使用Pro/TOOLKIT的条件,应当能够理解指针,当把数据从1个函数传到另外1函数时,将常常使用到它。Pro/TOOLKIT帮助,包括2000多个函数,并且可以通过例子代码学习如何使用。除此之外,如果想解决几何学问题,还需要对失量理论有1定的了解。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提供了另外1种结构体类型,它只包括Pro/ENGINEER的内部数据库中项目的必要信息。这类结构体(labeled DHandle from data handle)是1种类的结构,它包括对象的类型、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中的常常使用函数及使用需要了解的第1个函数是ProMdlCurrentGet()。在Pro/TOOLKIT帮助中其描述以下。DescriptionInitializes the p_handle with the current Pro/ENGINEER object. Synopsis#include ProError ProMdlCurrentGet (ProMdl *p_handle/* (Out) The model handle*/)这个函数包括1个参数-指针型参数,定义及使用方法以下。ProMdl mdlhandle;ProMdlCurrentGet(&mdlhandle);mdlhandle 是Ohandle型参数 ,能用这个对象做许多事情。例如,能用ProMdlDataGet()做1个调用并且获得关于这个模型的1些初始信息。ProMdldata mdldata;ProMdlDataGet (mdlhandle, &mdldata);mdldata是1个简单的结构体,包括名称、类型、路径和关于模型的1些其他信息。下面打印这个模型的类型。不能直接实行printf("%s\n",mdldata.type),需要采取下面的方式,用ProWstringToString()把这类类型转成1种规定的字符序列: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);现在打印模型的名字,就能够象上面1样,从mdldata结构中取出名字,也能够用另外1种的方法。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);接着,我们看1下访问函数。模型可能有大量包括许多子对象的对象。由于不知道这些对象的数量,需要能够以某种方式搜集要寻觅的对象。对这类类型的问题,需要用到PTC提供的访问函数。假定想访问包括在1个模型中的所有特点并搜集它们的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 callProSolidFeatVisit((ProSolid) mdlhandle,(ProFeatureVisitAction)user_action_get_feat_ids,NULL,(ProAppData)&feat_ids) ;注意前面提到的mdlhandle的使用,在函数调用中ProMdl 和 ProSolid能相互变换。还要注意,对不想使用的过滤函数,赋该参数值为NULL。现在在feat_ids中获得1系列ids,这样就能够使用它们实行1些任务,例如把它们打印出来:for(unsigned int i=0; icout}5 结束语以上提到的是需要学习Pro/TOOLKIT最基本、最常常使用的概念。建议学习这些例子时,可以不断变化的进行实验。另外,通过学习Pro/TOOLKIT帮助中的实例,不断深入理解大量的函数,学会其使用方法,逐步开发出用户需要的Pro/ENGINEER外挂模块,以满足特殊用户的需求。(end)资讯分类行业动态帮助文档展会专题报道5金人物商家文章