PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:10:11

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

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

x

  g: I, @/ p: t9 g* g- O* u& l, K2 s4 t" n2 j$ }# B( r4 f3 I, V  w7 R, E0 }
获得 CATIPrtPart( {3 H$ z/ z4 H! O. B  \# x

" s/ D: `+ o/ u! w: C参考代码如下:
$ p" N1 l* R! s1 ~; ?/ P& pCATIPrTContainer_var spPrtContainer = spContainer;1 f$ v3 U  }  l( t: B6 Y
CATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
. s+ T  V0 v0 A3 t2 m! ~6 h% j! U! Q7 |
获得零件下所有节点5 U) X; S. @4 n9 @, d; x0 [( x) u
方法一:利用 CATIDescendants 接口& V; t# x3 g( h* v2 U* E9 g# q
CATIDescendants_var spDescendantsOnPart = spPrtPart;
8 v* A) h! o* {: kCATListValCATISpecObject_var spSpecObjects;( A. ?6 x. h. j6 J1 j
piDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);2 l& P8 a: f' M  M* r$ O# u

6 g2 j3 C; i' m) \3 R方法二:利用CATContainer 中的ListMembersHere 方法
4 t7 H1 L: I6 H7 g! @8 a- s6 dSEQUENCE(CATBaseUnknown_ptr) ListObj;
9 S- ]! r! x+ R. p+ l0 Rlong NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);2 S# ?3 [4 J' I8 R& s
for(int j=0;j<NbObj;j++)//注意从0 开始
$ X5 n) X& A5 f' S! a) V{}, |5 C/ A* s% a1 e
注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该
' q" ?! }" K, e& O0 k参数设置为相应的接口,例如"CATPoint"表示所有的点。; C. @+ I, Y9 k. B# [, ]2 G

" `$ e. w4 @& [5 v. g! \2 ]7 G2 v6 }2 Z7 J$ a/ d$ Q! c9 `; p+ V
获得参考平面& a: I- H% W$ E  M9 ]9 i
参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:$ `& N( \! E! n. Y
CATListValCATISpecObject_var spReferencePlanes;: E% {% B& x. k! U* b/ p) O
spReferencePlanes = spPrtPart->GetReferencePlanes();
; P0 j$ l$ {6 o3 j- Q" v: M注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平; Y) H# N3 w, G- w. k. V8 b) o
面。& o& Q+ D8 N6 K1 \
如果要使用 yz 平面,则参考代码如下:% i' u6 M. z8 P% ]5 R' ]: p$ o
CATISpecObject_var spyzPlane = spReferencePlanes[2];
9 u4 t& Q3 \9 ^
& P+ v4 a/ S+ w5 r1 n
6 ~6 O5 Y% q! x. h8 Q: z4 ^7 |获得轴系
2 R; b9 J% X1 J2 g" z0 P8 R参考代码如下:- e/ n% W0 H; h
CATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;
) l1 K0 v" z6 H# l5 ^( p. q, gspPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);/ R7 `8 \) D% {( _: |! U% h3 c; `
! e% T4 v- f. \$ }0 ?. ^
//得到的所有轴系6 v; U, X& w$ i, u4 T. t
CATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;' E* g! B- I; q: A
spAxisSystem ->GetAxisSystems(oAxisSystemList);7 {6 n6 j( L" [; t2 B
( C4 t5 m8 }" ]0 d

' C/ C' x1 U  S) A7 X+ x2 y- C' ]* s3 n( f

. b; t5 ?1 B4 }" X% O4 o
; j( [2 b& Z. z" X/ Q/ f- A9 C; Q, H( O; M4 ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了