PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82172
QQ
发表于 2018-2-22 13:10:11 | 显示全部楼层 |阅读模式

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

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

x
1 l& q1 d5 T+ H  T/ M$ `3 o# C! D

" f4 T. j1 W- p; ]. o获得 CATIPrtPart# e# J4 v4 }% q  W9 u/ Q! y
  U, h1 }7 a, A% h
参考代码如下:& k: ?) ^, p$ m* T3 F" J; S, M
CATIPrTContainer_var spPrtContainer = spContainer;
6 Y  p0 W1 x; x# N( dCATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();' ?: D8 D' P9 i
: d4 m5 |% I' e: f/ W0 w$ e
获得零件下所有节点
* X5 @' h" v' o- k4 o# R方法一:利用 CATIDescendants 接口
# j) I, u8 n" Z* ~2 q; V# ^CATIDescendants_var spDescendantsOnPart = spPrtPart;. g, N$ E( X/ a; |; {& ~4 ]
CATListValCATISpecObject_var spSpecObjects;8 m( T# j4 f: ]
piDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);
4 E- U% `' z/ O: \, j
* H" L! Z9 K  Z" D, S6 o方法二:利用CATContainer 中的ListMembersHere 方法
: k( L9 Q/ L3 O  k/ USEQUENCE(CATBaseUnknown_ptr) ListObj;8 J5 ^: a6 L/ N. c; p% X6 O( m0 {9 v
long NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);; X+ Z' g6 U& N
for(int j=0;j<NbObj;j++)//注意从0 开始* d. e' g2 p: {) h% U9 V& O
{}
4 V% k0 ^6 j- V4 x2 r2 |: _: j. F2 U注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该
% c) a- U- b/ V2 o! A  L( b0 A参数设置为相应的接口,例如"CATPoint"表示所有的点。
* M- a1 t: J) h6 v% G. p# G6 X: d3 a( M" I" t2 ]/ Y1 ]9 r
2 i' W7 \1 l) F
获得参考平面5 t: e. }- n, \$ ^
参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:
, `) f# L1 c+ P" @/ Q* e' A$ LCATListValCATISpecObject_var spReferencePlanes;: b( B5 ^) [! R! Q/ x! E* }3 I+ Q2 q
spReferencePlanes = spPrtPart->GetReferencePlanes();
( S6 d  }" o! T' y3 {9 K注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平
! ?& f& |9 Q, L6 J& k! u/ {8 |面。
* F4 _. o5 t: ~; ^% L如果要使用 yz 平面,则参考代码如下:
0 `" x8 {0 f; d6 l7 mCATISpecObject_var spyzPlane = spReferencePlanes[2];  j" Y& e6 d; f& k" Q# y
# W" l* ~- R6 s/ U
, K' \& `5 Z9 k7 [7 s& P8 a
获得轴系5 ?% g$ g8 \: t7 j
参考代码如下:9 s  b$ K8 o+ v; ^
CATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;" P. k" b! d; O; N5 H9 Z# X
spPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);; `4 j1 n& \1 Z# Z

& j" D. I* M% c5 h; J8 M7 [//得到的所有轴系
6 O9 X  m' U2 B! t5 {3 y* Q" aCATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;) k$ g$ f" u( ?* a5 f  w1 i- x
spAxisSystem ->GetAxisSystems(oAxisSystemList);
4 n# U7 \0 ^' f, u* R4 T, \8 x7 K$ N8 y
; Y1 m8 J% `2 \2 j% q' o
5 P9 o3 v/ t" k2 y
) H( z* t6 p& n: i9 {1 [
# b. Y0 Q& J5 n, b; c8 ]  [

7 r: j, j5 i7 \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了