找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: hyyfj

[原创] creo3把书上一个例子试运行成功

[复制链接]

4

主题

28

回帖

0

威望

实习生

积分
35
 楼主| 发表于 2022-5-7 23:23 | 显示全部楼层
按楼上大神指导,找到了一个文件。
pro/toolkit程序注册文件内容
编写程序方法介绍:

第一个:name

Pro/toolkit应用程序名称,必须独一无二。字符长度不可以超过PRO_NAME_SIZE(在ProSizeConst.h头文件中定义)定义的长度。

第二个:startup

说明Pro/ENGINEER和Pro/toolkit应用程序之间的通信方式。该参数有三个选项值:

1)spawn Pro/ENGINEER以进程间的通信方式来启动外部应用程序。

2)dll Pro/ENGINEER以动态链接库形式来加载外部应用程序。

3)java Pro/ENGINEER以J-Link来启动外部应用成。

第三个:fail_tol

说明加载外部应用程序失败或者应用程序中途失败时Pro/E的反应。如果值为TRUE那么Pro/E继续运行,如果值为FALSE那么Pro/E自动退出。

第四个:exec_file

值为Pro/Toolkit应用程序编译连接后生成的文件名称,Dll模式时是指向动态链接库文件,多进程时是一个独立可执行文件。如果是startup是spawn,指明外部应用程序名称和路径,包括文件名称。

第五个:text_dir

对话框、信息文件等资源的路径,默认的搜索路径为:
a.当前工作目录;
b.text_dir/text;
c.<proe_loadpoint>/text

第六个:unicode_encoding

说明同步模式字符格式的继承性(暂时这么描述)。在野火4.0环境中默认值为ture,如果该应用程序是在Pro/ENGINEER Wildfire 3.0中开发出来的需要把此值设置为false。
第七个:delay_start

作用为指明外部应用程序是否跟随Pro/E启动,如果值为TRUE那么Pro/E启动时该插件不会自动启动,必须手动启动。如果值为FALSE那么该插件会跟随Pro/E一起运行。

第八个:description
外部应用程序描述和说明

第九个:allow_stop
如果值为TRUE那么可以在Pro/E运行时关闭该外部应用程序,反之不可以。

第十个:revision
外部应用程序的版本。

第十一个:end
注册文件结束标示符。

示例
单个应用程序protk.dat文件内容

name       Product1
exec_file  /home/protk/<machine>/obj/frnpgm1
text_dir   /home/protk
end
多个应用程序protk.dat文件内容

name        Product1
startup       dll
exec_file   /home/protk/<machine>/obj/frnpgm1.dll
text_dir    /home/protk
end
name        Product2
startup     spawn
exec_file   /home/protk2/<machine>/obj/frnpgm2
text_dir    /home/protk2
end
回复

使用道具 举报

4

主题

28

回帖

0

威望

实习生

积分
35
 楼主| 发表于 2022-5-9 20:00 | 显示全部楼层
c++Creo的基本内部函数和对象属性
对象:
ProMdl(模型句柄):模型是Creo中顶级对象。例如,在零件模式中,模型是一部分; 在装配模式下,模型是装配体。
模型的属性为ProParameter;
模型的子对象:ProSolid;
模型又是Promodelitem的属性;

ProSolid(零件或装配体的基础类):实体是一个抽象的Creo Parametric对象,它表示零件和装配体的所有常见特征,如特征,尺寸和参数。
ProSolid的超类(基类||父类)是ProMdl;
实体的子对象有 ProPart,ProAssembly;

ProModelitem(型号项目):模型项目是模型中的所有项目。 每个模型项是具有唯一标识符和类型的数据库对象。
模型项目的属性分别为:ProMdl(模型),ProParameter(参数);
模型项目又是ProSelection的属性;


ProSelection(选择项):作为选择任何Creo Parametric对象的结果,通常会生成选择对象。 选择对象不仅包含所选对象的信息,
还包含其他有用的信息,例如组装层次结构中的Creo Parametric对象的位置,选择的坐标等。 选择用于表示实际的用户选择的项目,
但也用于表示特征和注释的几何参考。
选择对象的属性包含:ProAsmcomppath,ProModelitem等;

ProParameter(参数):可以属于模型,特征,注记元素,几何项,外部对象,材料或其他Creo参数模型项的参数。
参数是ProModelitem和ProMdl的属性。

ProMatrix(转换矩阵):变换矩阵用于获得相对于其在绘图坐标系中的位置的实体坐标点的位置。 该矩阵由三坐标基准轴的方向和原点的位置构成。

ProAsmcomp(装配组建的功能):组件是组件的构建块。 它们是参数特征。在应用程序组合中,组件可以具有特定类型。 例如,在制造组件中,存在工件部件,设计部件部件等。
ProAsmcomp的超类(基类||父类)是ProFeature
组件的属性是ProAsmcompconstraint
组件是ProAssembly的属性

ProAsmcompconstraint(装配组件约束结构):Creo Parametric TOOLKIT用于构建组件组件约束的细节。 您可以通过建立限定组件在组件中的位置的约束来参数化组件。
组件的位置根据其所限制的组件或装配体特征的变化而变化。

ProAsmcomppath(装配组件路径):在任意级别的组合(包含子组件等的组件)中,组装组件路径使您能够引用组件中的特定组件。
ProAsmcomppath是ProSelection的属性。


函数:
#include <ProMdl.h>

ProMdlCurrentGet:获取使用当前的Creo模型对象初始化p_handle(句柄)
参数是ProMdl(out),即将获取的当前对象模型输出至新建的模型对象中。
返回值:PRO_TK_NO_ERROR 成功初始化句柄;PRO_TK_BAD_CONTEXT 为设置Creo对象

ProSelect:在Creo窗口中选择一个对象。(注意:如果用户在不做任何操作的情况下结束选择,
则ProSelect将以(* p_n_sels)为零,p_sel_array为NULL返回PRO_TK_NO_ERROR。)
参数:1,char option[](选择过滤器,通过index查找要选择地部分:"User Interface:Selection"比如:part,point,csys)
2.int max_count (允许选择的最大选择数量。)
3.ProSelection* p_in_sel(用于初始化选择数组的ProSelection结构(从上一次调用到选择)的指针的ProArray。 这可以是NULL。)
4.ProSelFunctions* sel_func(指向过滤器功能结构的指针。 这可以是NULL。)
5.ProSelectionEnv sel_env(使用ProSelectionEnvAlloc()分配此参数。 可以为NULL。)
6.ProSelAppAction appl_act_data(版本18及更高版本中为NULL。)
7.ProSelection** p_sel_array(指向ProSelection结构数组的指针。 这个参数指向由该函数分配的静态内存。 它在对此功能的后续调用中重新分配。Proselection*数组在装配中选择坐标系,out输出参数)
8.int* p_n_sels(实际选择的数量,out输出参数)
返回值:PRO_TK_NO_ERROR(用户进行了选择,或选择了“完成”)
PRO_TK_USER_ABORT(用户选择退出。)
PRO_TK_PICK_ABOVE(用户从上面菜单上的任何按钮选择中断了选择。)
PRO_TK_E_DEADLOCK(Creo用户界面不准备处理此请求(因为它被另一个进程阻止,例如OLE容器激活)。)

ProMdlRetrieve:检索指定的模型并初始化句柄。该函数将模型检索到内存中,但不显示模型,也不会将其作为当前模型。
如果检索组件,并且在再生中发生错误,则组件将包括抑制的功能。 ProSolidRetrievalErrorsGet函数标识是否发生错误。
参数:1.ProFamilyName name(要检索模型的名称)
2.ProMdlType type(要检索的模型的类型)
3.ProMdl* p_handle(检索模型的句柄)
返回值:PRO_TK_NO_ERROR(该功能成功检索到该模型)
PRO_TK_BAD_INPUTS(一个或多个输入参数无效)
PRO_TK_E_NOT_FOUND(在当前目录中找不到该模型。)
PRO_TK_NO_PERMISSION(该功能无权对此型号进行操作。)

#include <ProAsmcomppath.h>

ProAsmcomppathMdlGet:检索由组件路径指定的模型
参数:1.ProAsmcomppath* p_path(组件路径)
2.ProMdl* p_model(在组件路径末尾找到的模型,out)
返回值: PRO_TK_NO_ERROR (该功能成功检索到该模型。)
PRO_TK_BAD_INPUTS (输入参数无效。)
PRO_TK_GENERAL_ERROR (指定的组件路径错误,或包含缺少的成员。)

#include <ProAsmcomp.h>

ProAsmcompAssemble:在指定的初始位置向组件或子组件添加组件。
参数:1.ProAssembly owner_assembly(组件/子组件,添加组件。 NULL是一个有效的参数。在这种情况下使用了本程序集)
2.ProSolid component_model(装配组件模型)
3.ProMatrix init_pos(组件初始位置)
4.ProAsmcomp* feature(处理新创建的程序集组件,out输出)
返回值: PRO_TK_NO_ERROR (该函数成功创建了一个assembly =组件)
PRO_TK_BAD_INPUTS(输入无效)

#include <ProArray.h>

ProArrayAlloc:分配一个对象数组。 分配的最大内存大约为2Mb,除了alpha_unix(或其他64位平台),其最大值是两倍。
有关获取可以存储在指定ProArray中的obj_size的最大对象数量的数据,请参阅ProArrayMaxCountGet。
参数:1.int n_objs(在数组中分配的对象的初始数量。)
2.int obj_size(数组中每个对象的大小)
3.int reallocation_size(如果Creo Parametric TOOLKIT调整数组大小,则添加或删除的对象的最小数量,例如 在调用ProArrayObjectAdd。)
4.ProArray* p_array(分配的数组,out输出)
返回值: PRO_TK_NO_ERROR (该函数成功分配了数组)
PRO_TK_BAD_INPUTS (一个或多个输入参数无效。)
PRO_TK_OUT_OF_MEMORY (数组太大,无法分配)

#include <ProModelitem.h>

ProModelitemByNameInit:给定一个模型项目句柄,给定项目的名称和类型(p_item是预分配的)。
参数:1.ProMdl mdl(模型句柄)
2.ProType type(要查找的项目类型。)
3.ProName name(要查找的项目的名称。)
4.ProModelitem* p_item(指向找到的项目。out)
返回值: PRO_TK_NO_ERROR (该项目被发现。)
PRO_TK_E_NOT_FOUND (没有找到该项目。)
PRO_TK_BAD_INPUTS (一个或多个输入参数无效)

ProSelectionAlloc:分配并可选地填充选择对象。
输入参数的允许组合如下:p_cmp_path p_mdl_itm
!NULL !NULL
NULL !NULL
NULL NULL
参数:1.ProAsmcomppath* p_cmp_path(组件路径(可以为NULL))
2.ProModelitem* p_mdl_itm(模型项(可以为NULL))
3.ProSelection* p_selection(分配的选择对象,out输出)
返回值: PRO_TK_NO_ERROR (功能成功分配了选择)
PRO_TK_BAD_INPUTS (分配失败。)

ProAsmcompconstraintAlloc:为组装组件约束结构分配内存
参数:ProAsmcompconstraint* p_constraint(Asmcomp约束结构,out输出)
返回值:PRO_TK_NO_ERROR (该功能为结构成功分配了内存。)
PRO_TK_OUT_OF_MEMORY (内存不足。)
PRO_TK_BAD_INPUTS (输入无效。)

ProAsmcompconstraintTypeSet:设置指定约束的约束类型。
参数:1.ProAsmcompconstraint constraint(组件零件约束)
2.ProAsmcompConstrType type(约束类型。)
返回值: PRO_TK_NO_ERROR (功能成功设置信息。)
PRO_TK_BAD_INPUTS (参数无效。)

ProAsmcompconstraintAsmreferenceSet:将约束引用和方向设置为指定的约束
参数:1.ProAsmcompconstraint constraint(组件零件约束)
2.ProSelection asm_ref(装配参考。)
3.ProDatumside asm_orient(组装方向)
返回值:PRO_TK_NO_ERROR (功能成功设置信息。)
PRO_TK_BAD_INPUTS (参数无效。)

ProAsmcompconstraintCompreferenceSet:将约束引用和方向设置为指定的约束。
参数:1.ProAsmcompconstraint constraint(组件零件约束)
2.ProSelection comp_ref(组件参考。)
3.ProDatumside comp_orient(组件方向)
返回值:PRO_TK_NO_ERROR (功能成功设置信息。)
PRO_TK_BAD_INPUTS (参数无效。)

ProArrayObjectAdd:将一个对象添加到数组的指定位置,或者将一个对象附加到数组的末尾。
例如,如果要在整数数组中插入一个整数,请按如下所示调用该函数:
ProArrayObjectAdd(&int_array,0,1,(void *)&int_val);
如果要在二进制数组中的第二个位置插入3个双打,请调用以下函数:
ProArrayObjectAdd(&dbl_array,2,3,(void *)dbl3_arr);
注意:因为此调用可能导致重新分配阵列,所以必须传递数组的地址。
参数:1.ProArray* p_array(数组的地址。)
2.int index(在数组中插入对象的位置。 如果指定小于0(PRO_VALUE_UNUSED)的值,则该函数将对象附加到数组的末尾。)
3.int n_objects(要添加到数组的对象数)
4.void* p_object(连续的对象数据集将从该地址复制到阵列中)
返回值: PRO_TK_NO_ERROR (该函数成功将对象添加到数组中。)
PRO_TK_BAD_INPUTS(一个或多个参数无效。)
PRO_TK_OUT_OF_MEMORY (数组太大,无法分配。)

ProAsmcompConstraintsSet:为给定的组件组件设置一系列约束。 此功能修改组件特征数据并重新生成组件组件。
参数:1.ProAsmcomppath* component_path(果限制对顶层程序集的其他成员的引用,则到所有者程序集的路径。 如果约束仅在组件中相对于程序集所有者,则应为NULL。)
2.ProAsmcomp* component(组装组件)
3.ProAsmcompconstraint* p_constraints(ProArray数组的约束)
返回值: PRO_TK_NO_ERROR (功能成功设置信息。)
PRO_TK_BAD_INPUTS (输入无效。)
PRO_TK_INVALID_TYPE (组件参数不是有效的程序集组件)
PRO_TK_INVALID_PTR (p_constraints数组不是有效的ProArray。)
PRO_TK_GENERAL_ERROR (使用指定约束的再生失败; 该组件还原到以前的配置。)

ProSolidRegenerate:重新生成指定的ProSolid
参数:1.ProSolid p_handle(ProSolid重新生成。)
2.int flags(位元包含一个或多个位标志PRO_REGEN_ *)
返回值: PRO_TK_NO_ERROR (该功能成功地重新生成ProSolid。)
PRO_TK_UNATTACHED_FEATS (检测到未附着的特征,但没有再生失败)
PRO_TK_REGEN_AGAIN (该模型太复杂,无法再次重新生成)
PRO_TK_GENERAL_ERROR (再生失败)
PRO_TK_BAD_INPUTS (不兼容的标志。)
PRO_TK_BAD_CONTEXT (如果与PRO_REGEN_FORCE_REGEN混合,则无效的regen标志和/或再生标志的组合。)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站为非营利性站点,部分资源为网友搜集或发布,仅供学习和研究使用,如用于商业用途,请购买正版。站内所发布的资源,如有侵犯你的权益,请发邮件联系我们,本站将立即改正或删除。

手机版|小黑屋|野火论坛(©2007~2024) ( 苏ICP备11036728号-2 )苏公网安备 32039102000103号|站长QQ28016688

GMT+8, 2024-11-22 13:35 , Processed in 0.116383 second(s), 19 queries .

快速回复 返回顶部 返回列表