查看: 4024|回复: 3

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

 火 [复制链接]

6

主题

4

回帖

60

积分

管理员

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

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

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

×
创建零件设计表' }3 S7 h, R1 H% b% l
3 T' W$ F: x3 n2 U9 Y2 M" R
//初始化CATICkeParmFactory 工厂
' f' d0 ^" W8 Q5 c! lCATICkeParmFactory_var spParmFactory = spContainer;$ J# _2 E# H2 S- ~2 ~; g# F- f4 f
//创建设计表的函数如下
( q" ~" `* ~; Q- `8 l* i+ yCATIDesignTable_var CreateDesignTable( const CATUnicodeString& iRelationName," D, Q0 _4 D( U( j& o/ N. g
const CATUnicodeString& iComment,; M# j( Z+ O5 i3 X0 d$ c
const CATUnicodeString& iFilePath,% j2 B9 Z8 q& a$ l4 A+ ~
int orientation = 1,: }* g+ c" X( D, b) X
int sheetWithoutFile = 0 );: C/ z( L. e$ l/ s! Z* W
函数说明:iRelationName 为设计表的名字,iComment 为设计表的说明,iFilePath 为创建
2 w2 ^* L  x" N1 D! s表的路径。
( L) H& ^5 U! v创建零件族的步骤如下:5 p. }. d/ v& }
1.创建参数
. J. D" n1 v% HCATICkeParm_var spPp1 = spFact->CreateInteger ("Column1",0);
# ^/ z  P' B2 T( _3 r# j/ _CATICkeParm_var spPp2 = spFact->CreateReal ("r",0.0);( s6 O" x( U9 o  j
CATICkeParm_var spPp3 = spFact->CreateString ("s","");
: O3 [/ u0 ]1 \5 E6 Y8 R1 F+ tCATICkeParm_var spPp4 = spFact->CreateBoolean ("b",CATCke::True);7 p. F5 `2 \9 A, x! G
CATICkeParm_var spPp5 = spFact->CreateLength ("l",0);% d# |- `* L+ y
CATICkeParm_var spPp6 = spFact->CreateAngle ("a",0);
9 c- R5 t3 I5 q" U9 h% ]2.将参数显示在结构树上
0 n4 T1 y" Y+ x4 @- ICATIPrtContainer_var spPrtCont = spContainer;
0 j% M$ C# a& x# {CATIParmPublisher_var spPubroot = spPrtCont->GetPart();( D# t  w6 G4 R2 Z  j7 M6 w
CATICkeFunctionFactory_var fact = CATCkeGlobalFunctions::GetFunctionFactory();5 Y6 e" ~0 o' _+ ^8 a1 Z
CATISpecObject_var spParameterSet = NULL_var;+ c/ p; |* Z  ?. t8 D0 t5 o+ \, r+ i
spParameterSet=
% ^; e- g  s  g7 c) xfact->GetCurrentSet(CATICkeFunctionFactory::Parameter,spPubroot,CATCke::True);# T4 X$ S; @* Z# h
CATIParmPublisher_var spParmPublisher = spParameterSet;# p( b+ j( h7 [  C% z* M; l
spParmPublisher->Append(spPp1);1 k+ Z; i+ P6 c: t" v( n

1 {5 w7 S/ P* B, k2 T6 uspParmPublisher->Append(spPp2);  ^! W+ B! a$ u% \; v
spParmPublisher->Append(spPp3);( |$ w) b, S. L6 f
spParmPublisher->Append(spPp4);
1 ?4 y; ?* w7 V, ]* OspParmPublisher->Append(spPp5);
6 b) N1 F+ H8 Q9 Q2 G1 m, v( YspParmPublisher->Append(spPp6);7 Z& e* ?0 d/ o* p: @) E. C
3.创建设计表
4 a% W" R$ H1 U0 c, oCATIDesignTable_var spDesignTable = spFact->CreateDesignTable();
/ E) F0 G5 H: t8 ~% ^4.将设计表显示在结构树上. C3 @7 `1 a, s! F3 q! ~
CATISpecObject_var spRelationSet = fact ->GetCurrentSet(
3 s- i2 }+ y4 N9 z& ?  ICATICkeFunctionFactory::Relation,spPubroot,CATCke::True);
& M3 K9 }: n7 L/ r+ x! }1 z  lspParmPublisher = spRelationSet;
. [, M! @' N$ X! E. Z! J) {' aspParmPublisher->Append(spDesign);
9 ]8 i/ |' W% z/ T5.将参数与设计表关联,注意参数名字与设计表的列参数名字一定要相同
% I& s# o" i9 [" W  i- R& x) A( \// 参数列表5 s0 }/ e1 A% D8 h( [7 S' u
CATLISTV(CATBaseUnknown_var) list;
  J, t, O9 I2 M) Ilist.Append(spPp1);
& q" j, \: c6 IspDesign->AutomaticAssociations(spContainer, NULL_var, &list);
  e+ u7 u7 c! m  x3 p+ @& m// 添加关联
2 p" e4 H1 m: s' q2 V- \  ?spDesign->AddAssociation("Column2", spPp2);
5 O# A6 e+ {& A+ I4 M; @spDesign->AddAssociation("Column3", spPp3);: [: w' l6 x) D2 I. p- \
spDesign->AddAssociation("Column4", spPp4);, ^" s( S/ d& Z
spDesign->AddAssociation("Column5", spPp5);
: k0 x8 l+ @" i, K! X  m0 f6.设置配置) ~" S( A4 T- O5 `. G; L/ v
spDesign->SetCurrentConfiguration(1);
" }$ H3 b) O3 j8 _5 p8 W) r  ~- [( `* K! m# \4 Z; a' s- A  [  h' I
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.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客服返回顶部