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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

1 c" F# C% w) s. Z9 R( }
% X$ q3 h  T' ^9 J获得 CATIPrtPart
; X, V. d: q. H$ A: E$ f, G* P* W' [
, |: q& Z- M- H+ E参考代码如下:4 l% f* C! x! ]& d- a, B, x
CATIPrTContainer_var spPrtContainer = spContainer;
/ j% z1 N) o' p- \) g# z( d- QCATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();& a/ g9 e4 s; o

7 P& E4 _8 h' t& j, c2 U获得零件下所有节点
+ p- O5 }. j5 {8 T9 U1 m方法一:利用 CATIDescendants 接口
9 j5 E; a1 n( sCATIDescendants_var spDescendantsOnPart = spPrtPart;4 T8 r* P" ?  T7 |4 \  ~; o
CATListValCATISpecObject_var spSpecObjects;
# p9 ^" v/ ], i% ]  ZpiDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);
/ j+ N- d' Y) Q7 a2 X
) @6 R# Y' l* B4 Z8 ^9 m方法二:利用CATContainer 中的ListMembersHere 方法, p  Q9 O  K1 j! k
SEQUENCE(CATBaseUnknown_ptr) ListObj;2 [+ Z% l0 q8 n- @" o" M* D
long NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);  ?- l" c- ?4 O' _6 D& ^
for(int j=0;j<NbObj;j++)//注意从0 开始
  d' E' D6 {0 v{}
* @. T) x# M4 F6 @- P9 G0 X; P注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该, ?0 ?, B& A* e% m' g
参数设置为相应的接口,例如"CATPoint"表示所有的点。$ S3 I# _- H6 ^6 k, N6 B2 j
: G. \: ?9 Q. o  H; C% s$ d
& C* b7 B+ A2 W& W
获得参考平面
3 x$ i0 `- M. p, m$ H: Y$ U& u参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:
! z, b  S- [% |; g: cCATListValCATISpecObject_var spReferencePlanes;
9 h4 {, j1 H8 q( g% O5 OspReferencePlanes = spPrtPart->GetReferencePlanes();( p8 L( F1 w5 _* C/ y8 B
注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平: X7 v, x4 ~/ I/ V* l6 Q
面。& [- x; o6 b7 c$ k
如果要使用 yz 平面,则参考代码如下:3 D+ S7 x! X( [  w& m5 p
CATISpecObject_var spyzPlane = spReferencePlanes[2];
' V8 i5 \; d8 ^& |) B- h9 G# S2 K
* t9 }- l6 M3 V; T* \
获得轴系
$ M) u" R" {5 ]  G7 i) I1 A: e* Q参考代码如下:
2 w8 o0 D: k1 B" w9 p# U! a7 Y5 MCATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;" ~% Q, G* n, `6 |8 f& t
spPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);# S! b6 r3 O$ Z7 \0 I: ?: f

2 j4 n! M1 X; f& U3 S7 O3 `//得到的所有轴系$ Z' F7 ^0 v+ }/ f+ F  a1 ~
CATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;  ~) S, A- P9 }  m% H
spAxisSystem ->GetAxisSystems(oAxisSystemList);; q) q4 y0 f6 T) A, Q9 V2 _+ s# A
+ Y4 g* \: [! S: Z* o' H3 r

" ]8 V% |, g/ [; k7 ~2 J/ @: z" F: |8 d- K

1 o# G, }4 ?4 }
, R8 e. P. h5 R- d1 k8 s# Y+ j2 h' E+ f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了