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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:10:11

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

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

x

! ^. d* w& V! B: m
! j1 ?$ R: `( ?5 X+ A3 d) i  p+ l9 t获得 CATIPrtPart
1 A' |- O6 f8 p( D: y  ~1 N: [! c0 t3 v' A) F: G4 |1 J8 q6 v5 k( W9 M5 v
参考代码如下:
+ v* U6 _5 f  i# s, ~# |4 ICATIPrTContainer_var spPrtContainer = spContainer;3 r) N1 G! S5 D: E+ q0 o7 B3 a
CATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
! H; |1 ?+ I# ?$ f
' p. [' J3 W/ l$ B: X获得零件下所有节点$ P1 y* ^- H+ [
方法一:利用 CATIDescendants 接口
( O1 J; E  H$ W# s5 _7 b! LCATIDescendants_var spDescendantsOnPart = spPrtPart;
8 U6 {- U* d/ G9 F  N" YCATListValCATISpecObject_var spSpecObjects;: T3 v8 ~$ G. l
piDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);
6 h5 g- `4 g$ a+ `, H! U1 H
; N. X- L5 y" d3 k( A方法二:利用CATContainer 中的ListMembersHere 方法
/ r; t+ O' j4 A" t# F* @  }SEQUENCE(CATBaseUnknown_ptr) ListObj;
) e. C$ f  W  q' plong NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);; j9 p1 S% s5 o9 P9 l4 X# y1 B7 o( R
for(int j=0;j<NbObj;j++)//注意从0 开始, }) v8 _. A, N- m
{}
" D! `; K0 y7 j注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该0 S2 f, X$ f2 s( Y9 ?0 u
参数设置为相应的接口,例如"CATPoint"表示所有的点。
5 @8 y4 x8 S1 s' e; `4 S& P$ S5 j$ h

: Q4 C/ E$ E% C' \+ [1 c获得参考平面. R$ D8 U$ z& f
参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:- Y% {2 }0 Q0 T) Q7 D  c. U
CATListValCATISpecObject_var spReferencePlanes;
( n/ |' k( F! F- [, |2 {) KspReferencePlanes = spPrtPart->GetReferencePlanes();
' W5 ]# C# A* ^* t注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平$ q4 K- r* |6 k" @# ^- i$ ]
面。: X+ Q0 U% x* L
如果要使用 yz 平面,则参考代码如下:7 ~: @: M4 Q" Z& E" n
CATISpecObject_var spyzPlane = spReferencePlanes[2];
% o0 I5 R0 X, U" q1 ?+ ^
- e/ g' E8 m. P9 o- D9 l' O+ T, P- E, V+ I; M/ p! d
获得轴系5 i' s9 s' a; ~( N  K' ^
参考代码如下:
; T1 b+ @& y) w6 S7 n7 E" ICATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;
+ l8 E8 D6 u& s0 [- _: YspPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);; m8 I9 T( K+ u* u/ a/ m
- [3 m  e+ F0 P7 A; W9 j
//得到的所有轴系
# z0 B5 j1 {0 t" s( r* l$ W- Y, Q( RCATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;4 Y- W+ I2 \4 }/ Q# H5 @
spAxisSystem ->GetAxisSystems(oAxisSystemList);5 D5 p7 I% C, L; Y

0 F0 I3 H2 B( ^0 s" `
  M1 @9 d' m) V3 e: }1 T' i0 J  r
& X; U& E0 h; ?7 D! ~- n
/ @4 \/ X$ {: l. L* d( s8 o. F. y6 m. W, p( u  U
' E, {1 H9 q9 L+ K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了