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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:10:11

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

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

x

" Q5 x* w% B( w+ L
4 U. s, V4 H" B: |7 h获得 CATIPrtPart5 F/ ]8 e+ o/ k; D- b0 j
# }* e1 `8 n1 y3 m. Q2 b
参考代码如下:) [7 S) J' l8 d9 M% e) s$ v4 [
CATIPrTContainer_var spPrtContainer = spContainer;( P1 K8 Q; H2 v  Z: d
CATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();" w" c0 l# c0 A4 l: \

( V! c5 f/ n/ M7 d3 d获得零件下所有节点8 T% i: N) D" F* m9 ?  u
方法一:利用 CATIDescendants 接口
. Z1 r& h. m% i1 S$ y5 L; [4 zCATIDescendants_var spDescendantsOnPart = spPrtPart;* r" h0 ~) L7 C  y% @3 M/ `
CATListValCATISpecObject_var spSpecObjects;
: |; q6 Z1 v0 F( \" CpiDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);
/ Y+ R& h: k- ^1 N1 Q6 A$ Y1 H; l& |& @7 d9 V) m8 x& z) f
方法二:利用CATContainer 中的ListMembersHere 方法7 h& ^; S1 m% M# l# U1 f
SEQUENCE(CATBaseUnknown_ptr) ListObj;
7 e4 r! D5 t! t! P( ylong NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);
% P2 d9 y3 ^6 ]/ Vfor(int j=0;j<NbObj;j++)//注意从0 开始
6 Y' q# R6 [. l* G{}
  y7 A& ?3 D8 K. _* T0 ^! U注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该
) x3 w' A1 A5 @* {( o参数设置为相应的接口,例如"CATPoint"表示所有的点。" O0 ~; _7 ~) K0 A$ D5 y

0 {8 {' f6 o% K2 @
! t! L% f6 E8 V6 W7 C6 U获得参考平面
! Y# J4 Q  d& B3 b+ Q$ y- y3 q参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:5 ?0 w0 t, {; L9 U2 N3 J+ E
CATListValCATISpecObject_var spReferencePlanes;; _: H3 @/ o2 |1 {
spReferencePlanes = spPrtPart->GetReferencePlanes();
7 E2 h  L3 `# J7 t/ `; O( G注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平5 K; O; a3 L9 X6 N* o9 l
面。$ p3 b  O" m4 ]! q
如果要使用 yz 平面,则参考代码如下:
& h' r& o& q( B% CCATISpecObject_var spyzPlane = spReferencePlanes[2];
# a  @& o% S8 m9 E/ h, c# T1 d- S/ I+ d# ]

1 h8 T; _; B# g+ H) B" H. X. z获得轴系
: P, F* |0 B6 t- m5 ^; Z参考代码如下:1 T: \: c2 ^8 N" Y! A
CATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;" {3 b( G  S9 L: O" T7 I
spPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);
  s& u% V* C) [* c  q6 p. ^! V9 f) K; y0 F# t) ?* X: }
//得到的所有轴系
( S0 `8 W3 s* ^0 q8 CCATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;6 O* C2 V, T; O3 x/ l8 \
spAxisSystem ->GetAxisSystems(oAxisSystemList);# l( U3 q3 P: c& R. q% }. d
( E1 B: q: H4 B; u4 D
3 W, S4 i1 c: W
5 t- f  A- B2 ?

  X  o; d$ }# |& K# J2 E' D, M$ \: `* s! n
8 u2 P1 C! B. K! ?  x: b5 w( B  M
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了