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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:10:11

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

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

x

/ V" y- ^" b0 b' _5 L) M
: @+ q) O% j) |获得 CATIPrtPart+ `- u! A0 e& Q3 V

2 k1 s* @% z8 ]" T参考代码如下:
  L" W2 i8 M1 D$ @1 \, U" Q1 rCATIPrTContainer_var spPrtContainer = spContainer;
6 _7 s% ^3 F! s8 S" a$ mCATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
& u+ q& M7 ^; F% t! y! r% W4 ^; S- j6 H7 U1 \, d7 {
获得零件下所有节点
; m6 H" A) H3 p1 R9 B方法一:利用 CATIDescendants 接口
7 p) s( G! [8 ~* L1 j/ w+ p% D/ aCATIDescendants_var spDescendantsOnPart = spPrtPart;
+ Y' {# {: i( Y' x5 B  e8 O3 F: ICATListValCATISpecObject_var spSpecObjects;$ k! G7 ^: ?0 [
piDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);" R! I5 y1 g3 j# ^+ w) ~

0 ~+ _/ p) E( ^' u9 R1 l3 O方法二:利用CATContainer 中的ListMembersHere 方法
4 M! W3 ?0 b$ B6 O- {* bSEQUENCE(CATBaseUnknown_ptr) ListObj;
' y( D( E" R# w, v4 q, L# B* m$ Mlong NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);' \) M! t5 f7 @$ V' C( w
for(int j=0;j<NbObj;j++)//注意从0 开始
4 \3 ?0 P$ P; |{}
4 f" X# K4 f* g/ s- T$ X& c注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该
1 ]0 l, _2 c$ A1 Q$ ?  l4 j参数设置为相应的接口,例如"CATPoint"表示所有的点。( D: @3 T/ o# v1 Y7 |% q+ I0 K
4 j+ c0 I9 P; ~+ B: m% Z
; |7 t* {4 p5 `) {% }- I9 }
获得参考平面
* d$ a' c/ ^, s# s( k参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:- W  m0 q9 B4 I
CATListValCATISpecObject_var spReferencePlanes;
7 F: S4 G# u4 k. Z  f1 a0 w+ ispReferencePlanes = spPrtPart->GetReferencePlanes();
/ S* }1 `$ o4 p7 \7 @注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平
6 x* a! X# G+ f1 h, u面。
1 n1 A% J5 a8 m+ y: U1 G& {. l如果要使用 yz 平面,则参考代码如下:
9 j, u) G) L; v+ q. VCATISpecObject_var spyzPlane = spReferencePlanes[2];
/ G3 d8 Z2 ~& ]6 z
$ \' w' [+ w1 A$ V1 K( z5 o0 n
/ D3 j: ^" i' I- {4 x6 |) W) P获得轴系
- A" [$ w9 x1 X4 o参考代码如下:1 M9 o, H, l6 @+ k* C1 C, ]8 }
CATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;9 A+ f: r$ i9 y9 c2 {4 F7 @
spPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);' H6 [/ b# _4 J( {9 c  E
: ?6 r$ a5 l5 k4 G: y. w6 l6 [
//得到的所有轴系
" Y9 |3 P# L/ bCATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;
( |8 _1 T2 H! F  S6 e' v; D, g" \spAxisSystem ->GetAxisSystems(oAxisSystemList);0 c( H, h7 ^7 q4 K: }5 M, D
& N$ Q$ q7 ]$ t0 @' y/ i

) b: s5 e6 T5 `* F+ O, V
, P  J3 M" o! U5 b* N$ U- k
" W& v* h" d* F! q1 S
7 A  i* [$ D8 ?: E( w7 q  ~! K. S8 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了