PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

admin 发表于 2018-2-22 13:10:11 |阅读模式

admin 楼主

2018-2-22 13:10:11

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

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

x

8 ?  P; z8 l7 I, }- s" \# R, P2 V. R' E
获得 CATIPrtPart9 r0 l+ ?+ T; s" O. o
: F6 v9 y6 O8 F& Y
参考代码如下:
! F+ o" y7 p) `( F6 }0 OCATIPrTContainer_var spPrtContainer = spContainer;$ h" r0 R1 e. b, A" x: I
CATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
4 U. F9 O0 o7 ]4 T# f3 k) m( E! Q% W: a5 E# L' H$ W) |0 j- ~
获得零件下所有节点
0 @! d7 y+ q" Y+ i方法一:利用 CATIDescendants 接口" H; W" n& F* t
CATIDescendants_var spDescendantsOnPart = spPrtPart;
! V% \5 c' [  e) q/ @( WCATListValCATISpecObject_var spSpecObjects;  V( K0 }4 E+ y; B
piDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);; \, U5 Z% v" z0 _4 K* d

/ [/ ^9 v/ Z" k8 d6 ^/ L3 i方法二:利用CATContainer 中的ListMembersHere 方法* A) c  r, b0 t2 g4 ]/ o0 q
SEQUENCE(CATBaseUnknown_ptr) ListObj;1 V8 S( c( y9 _+ S  f( P
long NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);. ]" ^% p5 h6 ^% n$ F
for(int j=0;j<NbObj;j++)//注意从0 开始0 O- u9 `- q- e: m2 e( q
{}
* `5 ~3 \0 m- m2 N1 `, _# `注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该
( k; W  r* m8 U参数设置为相应的接口,例如"CATPoint"表示所有的点。
( k5 x1 ?/ n4 m. R' D- A- d7 h5 a9 [" J0 j

3 K1 ~2 U% g7 G& e3 O7 s获得参考平面
9 r7 V( ]8 c8 p2 `+ I0 E参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:! Q6 P  @1 _5 E# z$ `
CATListValCATISpecObject_var spReferencePlanes;, L* k7 I7 V$ i" L
spReferencePlanes = spPrtPart->GetReferencePlanes();
; k8 [6 ?# T1 E, }: H) C7 c注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平
( u: N; ]: Y' R. F3 ~面。
3 c9 x% }$ a) o) D% n: g) [如果要使用 yz 平面,则参考代码如下:
- c( F6 W% z. c$ j5 n9 zCATISpecObject_var spyzPlane = spReferencePlanes[2];: f- H/ B- I/ S9 e7 L  q+ G
/ X5 C) s+ ]8 b: B8 C
3 Q+ F; k9 M" o: E5 L4 W: _
获得轴系
2 {* ^/ X, q+ A! ?# ?参考代码如下:
! x* J" x3 ?  ECATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;% F; G$ A, N3 ~' Y( f" R6 e
spPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);
- [( n  |' E' [$ J+ \5 J+ _. J5 f
//得到的所有轴系) m1 ^" X7 p4 e4 W- J
CATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;
  F; ^* m, S0 Y: P; K% `8 i, ZspAxisSystem ->GetAxisSystems(oAxisSystemList);
: p2 u; R# T9 O1 k! |
! m# @" x% X+ M1 S9 Q0 a9 d9 q( ?3 [6 b" t& \2 t* k! I1 A# y

& S- X. a' u+ k! n+ }, v  r) L5 Y
7 L% ?! Z$ m0 r: S3 P/ ~+ Y" ?+ `6 J, K4 _' G

8 g2 n- r: q8 D1 v! A/ q6 T5 w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了