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

Catia二次开发源码分享: 获得零件下所有节点

[复制链接]

2018-2-22 13:10:11 2914 0

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82166
QQ
发表于 2018-2-22 13:10:11 | 显示全部楼层 |阅读模式

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

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

x

+ d$ O% _  y9 C& m0 K( W# s8 M' y: E* B5 A$ g1 {# S
获得 CATIPrtPart
/ {9 _' j, l, m* R3 Y/ i! Y5 X0 m9 z- k
参考代码如下:( K  O3 \5 m6 e+ k+ \+ ]3 N/ W- h
CATIPrTContainer_var spPrtContainer = spContainer;
2 g% ~) I* C6 }4 `$ Y3 jCATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();) }0 g- y8 ?# m, \
" Z! J" f- @4 y9 q
获得零件下所有节点+ A" g/ R2 N) H+ h
方法一:利用 CATIDescendants 接口
" H0 ~2 B9 d% Y- F! B. N4 Z& RCATIDescendants_var spDescendantsOnPart = spPrtPart;
1 g( A8 V: l9 e  J% CCATListValCATISpecObject_var spSpecObjects;' R+ [' a& v. q; o
piDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);
1 U4 }4 J- P9 v; G. _" c% j  K+ B  B5 Z" e- [  g8 H4 B
方法二:利用CATContainer 中的ListMembersHere 方法# B/ e3 o% o5 C- R$ n' E
SEQUENCE(CATBaseUnknown_ptr) ListObj;
4 S+ J) [! E6 u5 p7 {5 q6 \: c3 Y$ rlong NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);
7 v6 G- p/ @* c' V0 J7 Cfor(int j=0;j<NbObj;j++)//注意从0 开始
6 [. \. l& X+ T5 u" G{}/ i: n( r9 {0 p
注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该
; E# m7 C& _: Q0 a0 X& Z+ Z" a参数设置为相应的接口,例如"CATPoint"表示所有的点。
2 [7 X+ P8 a+ o
- b" w7 a1 z$ L/ |; m6 @* Y2 q0 y
获得参考平面
: K" a4 A4 T0 b参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:# q  |7 V6 K" u  e
CATListValCATISpecObject_var spReferencePlanes;
) T. E( k' X$ \) `spReferencePlanes = spPrtPart->GetReferencePlanes();" q- l+ m+ h  P. r1 E0 f
注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平1 j3 _7 A1 r6 u1 {6 |& C9 Z/ @
面。
- n" U' e2 d" L+ x' w如果要使用 yz 平面,则参考代码如下:: ^1 ^8 ]8 a7 o# r/ ^+ {7 u
CATISpecObject_var spyzPlane = spReferencePlanes[2];
9 i$ b$ C' c% y6 T+ h: n# i! R( R" V& F6 F) M  E
& C4 W% j0 Y% ~# R. ~& h
获得轴系2 u  P; `  v, ]- j
参考代码如下:
1 C7 F" [- ~3 `* D! {CATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;( T" F) V! K  u' O) \
spPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);
( w, j6 ~& V/ P  C) o* ^2 ~
6 G" I4 q, a6 b! k//得到的所有轴系! k$ l8 X6 m$ f4 C
CATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;( ~, S9 I1 G$ e" ~( f; q
spAxisSystem ->GetAxisSystems(oAxisSystemList);6 s, W& N/ A9 O9 B" y
$ n: g$ B- s$ U2 |2 @# g. G. N
9 A  w1 C" e7 L

/ _5 [" @: B7 h" [0 c6 j. v- j
$ s' v4 a$ L1 X* O; \) Q4 J  A+ `* p/ f

  W; B2 x- ?2 u/ E) n" y9 z
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了