PLM之家PLMHome-工业软件践行者

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

  [复制链接]

2022-2-13 11:25:14 3694 2

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

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

x
创建零件设计表" H* g" K- a) `. E; |$ _

* n7 N; Y" f3 |. h//初始化CATICkeParmFactory 工厂
! z5 T. n) O0 }8 i/ p! k4 G3 y- iCATICkeParmFactory_var spParmFactory = spContainer;' l  @. H1 G3 H: N. I
//创建设计表的函数如下3 Q( v8 @8 c! B# j' i
CATIDesignTable_var CreateDesignTable( const CATUnicodeString& iRelationName,5 k% Y! i. A; S, \) c$ x, H
const CATUnicodeString& iComment,
/ E  y  T0 W5 p. j& Jconst CATUnicodeString& iFilePath,
, z" f! B: o2 }% J/ _0 A# Fint orientation = 1,
. D: L9 s) a0 Y! O, ^% v( h& tint sheetWithoutFile = 0 );* X& M8 ^$ D: i9 f7 w3 ^7 m8 L) U
函数说明:iRelationName 为设计表的名字,iComment 为设计表的说明,iFilePath 为创建
1 V. V0 s3 Z1 U+ T0 ]表的路径。; W9 k( ~0 B$ `" z+ N+ g
创建零件族的步骤如下:
6 M/ [% R9 O( r1.创建参数
9 D! y* t. i! o1 i. `CATICkeParm_var spPp1 = spFact->CreateInteger ("Column1",0);6 |8 |: i1 \% ~- ^2 j/ D
CATICkeParm_var spPp2 = spFact->CreateReal ("r",0.0);
" n5 }4 K% f2 N) Y' ~CATICkeParm_var spPp3 = spFact->CreateString ("s","");
1 p5 `# ?# C8 `# U( ~. v0 C- kCATICkeParm_var spPp4 = spFact->CreateBoolean ("b",CATCke::True);1 ~5 T5 ^7 ]$ `3 ~: v* W. z
CATICkeParm_var spPp5 = spFact->CreateLength ("l",0);
) `& s! r+ p: W$ F9 CCATICkeParm_var spPp6 = spFact->CreateAngle ("a",0);: [- V/ e. g* ?* Y) _) ^( o" C
2.将参数显示在结构树上
1 e1 Q: E5 u( S9 SCATIPrtContainer_var spPrtCont = spContainer;
9 a5 H7 b' r2 x2 N) PCATIParmPublisher_var spPubroot = spPrtCont->GetPart();
; D" X  @" U* p* P# ?& @, P5 mCATICkeFunctionFactory_var fact = CATCkeGlobalFunctions::GetFunctionFactory();
. k) T0 e; c( n% |+ f* @CATISpecObject_var spParameterSet = NULL_var;2 W4 p% y, `% L0 I" R- W
spParameterSet=  h8 E1 v1 h( f# a. R
fact->GetCurrentSet(CATICkeFunctionFactory::Parameter,spPubroot,CATCke::True);8 O$ b: P& P8 I2 N9 Q# O! B/ ~5 }
CATIParmPublisher_var spParmPublisher = spParameterSet;
' G  L4 I3 Y6 e8 D9 ZspParmPublisher->Append(spPp1);
: r8 H. V/ C  V, X3 j! {4 S
3 }9 a, S5 K# x' w+ C( t" \spParmPublisher->Append(spPp2);( v) v: v9 J9 ]6 U3 l! M& z
spParmPublisher->Append(spPp3);2 F% S2 W6 Y" a4 ~
spParmPublisher->Append(spPp4);
1 r& g* N" q$ Q( |4 q2 x( ^' gspParmPublisher->Append(spPp5);- t) ]5 E3 H( ^' [& L1 y9 S
spParmPublisher->Append(spPp6);
% k8 h% l% Q% p$ k8 O8 o. P$ \/ Q% H( U/ I3.创建设计表/ _/ {0 D* ~" \+ ~  g1 I
CATIDesignTable_var spDesignTable = spFact->CreateDesignTable();
$ @. t1 _. V3 V& Z1 e# u$ L4.将设计表显示在结构树上
; Y. _. y6 r1 V2 Z& ?* ACATISpecObject_var spRelationSet = fact ->GetCurrentSet(
6 J5 n8 r/ C) KCATICkeFunctionFactory::Relation,spPubroot,CATCke::True);) F. X2 H, i; R; A  o
spParmPublisher = spRelationSet;
; j: b! ^$ q& [spParmPublisher->Append(spDesign);0 {/ C5 q1 m$ Z( L4 O9 f3 j
5.将参数与设计表关联,注意参数名字与设计表的列参数名字一定要相同3 V$ I8 B% A+ \$ w9 E2 p
// 参数列表
: @% w. C9 t0 I1 _7 ZCATLISTV(CATBaseUnknown_var) list;% ]; v7 f0 x' o- ?& D$ ]
list.Append(spPp1);; C- f. m4 o" G$ N7 b
spDesign->AutomaticAssociations(spContainer, NULL_var, &list);
+ x3 N% \% h+ L- P0 y4 B// 添加关联& I1 Q8 O, S5 m: L5 [2 ~
spDesign->AddAssociation("Column2", spPp2);# S2 Y8 c* h! I( `; [
spDesign->AddAssociation("Column3", spPp3);
. ^4 Q( z0 a3 h- E2 AspDesign->AddAssociation("Column4", spPp4);
9 @8 G" D5 e$ tspDesign->AddAssociation("Column5", spPp5);6 |4 D7 X  w) A( h2 t
6.设置配置
  L" Z9 r+ G7 `spDesign->SetCurrentConfiguration(1);0 \+ D# F, y! ^  G
9 M& h0 ]- a( J& }  S
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复3

zwz 发表于 2021-9-2 13:38:15

zwz 沙发

2021-9-2 13:38:15

学习学习 ,后面希望自己也能学会
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了