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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:10:11

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

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

x

3 ~/ E1 E5 K" @) I, u  A# \5 p6 \$ q2 a3 [
获得 CATIPrtPart
0 N! J4 V, H$ l# N
$ Q+ e; }& f) A) V参考代码如下:% H( `5 l% o9 k2 `4 ?
CATIPrTContainer_var spPrtContainer = spContainer;% h6 o# j: K/ Y( |; u; ]3 _
CATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
6 A5 J6 i' |' i8 I
6 R+ t' C1 r: W" h$ }" O$ [7 k获得零件下所有节点; @. b; g3 H  O6 C0 g  M
方法一:利用 CATIDescendants 接口. h6 h3 R# q# g+ `* t3 b
CATIDescendants_var spDescendantsOnPart = spPrtPart;9 q4 j( C* i9 F* l
CATListValCATISpecObject_var spSpecObjects;+ d1 T! s1 o9 |. g2 E# G
piDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);/ f7 @- r; Q. V. j; r1 p

8 z7 R; e  m" c  C1 |方法二:利用CATContainer 中的ListMembersHere 方法
; z+ v# p6 P8 Q7 A1 \1 d- YSEQUENCE(CATBaseUnknown_ptr) ListObj;8 y  X3 v4 X3 n
long NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);
5 Q$ ^* C7 y  b4 mfor(int j=0;j<NbObj;j++)//注意从0 开始" x! S" K" k, a$ Z
{}$ C+ r( R3 q1 O, Z: D) Q0 T! J
注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该6 [8 l* V) \" n" h; h- ]$ Z. K
参数设置为相应的接口,例如"CATPoint"表示所有的点。1 ]8 h9 }, V' N8 S. j

& P$ C9 R' Z7 y7 c/ ?0 u2 C
: W! [- S0 k5 m, J获得参考平面
, U& F* d! ?) U; V  [参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:
/ G8 B. m2 K0 h0 j4 k8 l- NCATListValCATISpecObject_var spReferencePlanes;
) J( U& ?* x  b5 pspReferencePlanes = spPrtPart->GetReferencePlanes();
# @7 l* i: o# i7 m1 x注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平
, H" w7 Q* S2 f面。) L$ j0 P! s0 f, [, n7 S6 T% M
如果要使用 yz 平面,则参考代码如下:4 d  l6 Y1 q6 O( S1 P: d
CATISpecObject_var spyzPlane = spReferencePlanes[2];$ R' [4 n6 n" ?* T4 i
: d' w. x$ v! o3 w' \: w7 |( D$ U
& g" S, z: H6 S* R9 y8 k0 B
获得轴系7 J# t1 P  i4 A' ~. {
参考代码如下:; \6 C/ w1 o/ @
CATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;
! i6 q) \6 P2 b  g/ K; f2 nspPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);
4 c- B1 h' w( O7 ?9 C5 X
% }1 I- n2 o2 o- E- y2 [" T2 ]/ I//得到的所有轴系
9 ^7 H! y' Y4 TCATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;) k& O3 Z4 H5 z7 c" S7 ]0 e4 q& h
spAxisSystem ->GetAxisSystems(oAxisSystemList);
1 _% G7 C& o9 s4 i) q7 ?
, [; Y$ ^6 o* r" _, y  z
9 b8 @# u7 O8 \3 R% `( J: R4 p) h. [, k4 P; h0 Z

; }  A! O1 o! q8 m1 j- a* g, E! w/ O+ X3 F
* b- S5 k. W, {  g  d6 m% N
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了