查看: 4217|回复: 3

Catia二次开发源码分享:创建零件设计表

 火 [复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

积分
82265
QQ
发表于 2018-2-22 13:21:35 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×
创建零件设计表
* u+ A6 {# n* D6 b2 r' K  o: }8 X: ?' i  k' g) }- \
//初始化CATICkeParmFactory 工厂
, v7 h# z1 y; x8 I% ]' |  I( j; YCATICkeParmFactory_var spParmFactory = spContainer;
7 v0 O8 a* K; C4 A6 \: ]/ f" t//创建设计表的函数如下
* l( p9 k# z+ W3 T" F. MCATIDesignTable_var CreateDesignTable( const CATUnicodeString& iRelationName,
8 C$ H+ z6 l4 ?) ?  x2 Xconst CATUnicodeString& iComment,
0 u% y5 V) x( a8 i- t  m* mconst CATUnicodeString& iFilePath,* P4 p' g# W  ~+ N8 W
int orientation = 1,4 ]0 u/ z1 K3 G+ \
int sheetWithoutFile = 0 );6 [9 k, \' c( u! ^" W4 s/ n
函数说明:iRelationName 为设计表的名字,iComment 为设计表的说明,iFilePath 为创建( f+ g/ m: V; a8 `' }: q3 o3 {6 S
表的路径。# N4 @$ ?  P- F1 ^: {5 I" A+ Y. t2 _
创建零件族的步骤如下:/ h; x. I+ g) Z9 B
1.创建参数: i3 O; M' X& [4 N  ?  n
CATICkeParm_var spPp1 = spFact->CreateInteger ("Column1",0);
- |2 F/ ~& p" \. i% ICATICkeParm_var spPp2 = spFact->CreateReal ("r",0.0);% a- y! n6 W" A( i
CATICkeParm_var spPp3 = spFact->CreateString ("s","");& k4 B8 I; M5 N, w0 a5 P* o- A* m% h
CATICkeParm_var spPp4 = spFact->CreateBoolean ("b",CATCke::True);% ~6 x1 B2 n( F6 S. W
CATICkeParm_var spPp5 = spFact->CreateLength ("l",0);
& Q! G1 Y9 k' h9 `" v$ [2 t3 bCATICkeParm_var spPp6 = spFact->CreateAngle ("a",0);( d4 J" e, G+ P: z% Y! e% N) [
2.将参数显示在结构树上7 w$ P! H$ Z& |7 W0 J' D! ?' `$ C
CATIPrtContainer_var spPrtCont = spContainer;
+ h& `' g0 m! E6 H+ w0 M  xCATIParmPublisher_var spPubroot = spPrtCont->GetPart();
0 ~7 K5 O: E- G/ MCATICkeFunctionFactory_var fact = CATCkeGlobalFunctions::GetFunctionFactory();( x, U; ~: K& I, m
CATISpecObject_var spParameterSet = NULL_var;
- F  _/ K$ J( C' s# ]. ?8 ]! e8 WspParameterSet=
7 J! ?$ R3 V3 f4 E# k% h+ Ffact->GetCurrentSet(CATICkeFunctionFactory::Parameter,spPubroot,CATCke::True);
* F' J$ r% v6 G+ ^. D, ICATIParmPublisher_var spParmPublisher = spParameterSet;' F' [% k$ U" @& M" P
spParmPublisher->Append(spPp1);
8 V& X5 Z; a+ @" x+ W
4 o, P4 R: s6 i( `7 }' U* P; AspParmPublisher->Append(spPp2);) Y- c6 ]0 d5 R) C0 b+ K' H' B
spParmPublisher->Append(spPp3);. {3 A: {. R4 \' a
spParmPublisher->Append(spPp4);
2 B9 U( Y$ e2 G; |/ ^spParmPublisher->Append(spPp5);
1 O) [+ N; j1 P1 {spParmPublisher->Append(spPp6);
9 ~# j' y" r7 W( D* T$ [8 \3.创建设计表
0 y3 f( C4 o. x5 V- ?& pCATIDesignTable_var spDesignTable = spFact->CreateDesignTable();
' q' M4 {5 _+ h+ e8 w4 `6 {4.将设计表显示在结构树上
7 R2 K: p1 u' f( J. Y: t& n+ sCATISpecObject_var spRelationSet = fact ->GetCurrentSet(
: P/ B( d* w" g# J' bCATICkeFunctionFactory::Relation,spPubroot,CATCke::True);
: V( p0 U# Z! o3 F* fspParmPublisher = spRelationSet;: Y7 U+ e6 G/ E# C. _6 n: x
spParmPublisher->Append(spDesign);/ l% I) t# f. u. z' F3 {7 G9 @
5.将参数与设计表关联,注意参数名字与设计表的列参数名字一定要相同  Z- P: y& w: g7 Q) h& M. U
// 参数列表
5 ]% {/ a" h9 S5 D# L6 \. {CATLISTV(CATBaseUnknown_var) list;/ `7 X9 |1 f1 Z8 J4 q
list.Append(spPp1);6 |3 Q' l$ K# `8 R2 `. D* f
spDesign->AutomaticAssociations(spContainer, NULL_var, &list);2 s( V' x, e4 N9 E* _4 R
// 添加关联
: x/ c+ |( u9 m: ~spDesign->AddAssociation("Column2", spPp2);
5 |7 ~$ r$ T8 @. N& J9 X* d& ZspDesign->AddAssociation("Column3", spPp3);4 G3 Z& E% N  j
spDesign->AddAssociation("Column4", spPp4);# y% c9 \- q: v: x3 a
spDesign->AddAssociation("Column5", spPp5);
7 m0 B5 S; r0 l* s" `6.设置配置
; T9 `/ M+ M$ Q# p, TspDesign->SetCurrentConfiguration(1);+ Y$ f* S% h* L+ n- o
9 g2 T8 z- x, o2 E: z
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

0

主题

22

回帖

52

积分

注册会员

积分
52
发表于 2021-9-2 13:38:15 | 显示全部楼层
学习学习 ,后面希望自己也能学会
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部