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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:10:11

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

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

x

6 V* [0 z6 L/ ^* b
6 f" [  W8 f# }# n, ^获得 CATIPrtPart9 ^# u7 j# q, M; D/ a9 `
/ z! j- v7 }; F7 F: B
参考代码如下:
/ n; N& ~3 a9 V1 o# @3 q/ UCATIPrTContainer_var spPrtContainer = spContainer;
) \* i6 s. T. H: ^  G- wCATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
& J0 u8 C) E; U  s- D6 Z+ A6 ~1 l/ M! A( u9 E4 G2 Q, z
获得零件下所有节点
# v9 l2 v* e5 ^9 t. _方法一:利用 CATIDescendants 接口! X9 Q; m3 N9 f
CATIDescendants_var spDescendantsOnPart = spPrtPart;
9 w. ^. z' |; ~0 k+ q/ L7 {$ Z2 m# `CATListValCATISpecObject_var spSpecObjects;
- E' [, ~: I9 VpiDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);
0 U( e" b. \0 `6 e' I# @' C4 u9 W& a3 B: u
方法二:利用CATContainer 中的ListMembersHere 方法
* a0 N1 R( Q- |, b* Y1 o% A0 C% DSEQUENCE(CATBaseUnknown_ptr) ListObj;
+ \' H6 x+ B# P: }( Clong NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);$ _- x0 f0 O* L8 I+ n
for(int j=0;j<NbObj;j++)//注意从0 开始+ t. M+ V( b6 H7 |0 F# ^
{}) L: G: ]& J* y* f
注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该6 C" L! ?. I: |: ?- {" Y
参数设置为相应的接口,例如"CATPoint"表示所有的点。) o0 d) a9 F2 U) o' T/ X' U
! X" h1 I" ~% x; g! E
6 h9 _. q" w% E' b4 x
获得参考平面2 Y" b. ?7 U- x% b! L  Z
参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:
7 c9 l& N& |: L; k2 dCATListValCATISpecObject_var spReferencePlanes;
2 c: E2 a5 Z3 w  a) A6 w& V- [) VspReferencePlanes = spPrtPart->GetReferencePlanes();
. n: j6 w6 G. B% R1 Q7 x注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平
( u" u5 l) v: G+ F6 z面。. Z& j! g0 x' j6 K6 U
如果要使用 yz 平面,则参考代码如下:. X# w1 m$ B4 }+ u
CATISpecObject_var spyzPlane = spReferencePlanes[2];
, Q( M$ h) M$ A) U* J5 ]7 L# `( Q+ ]$ w

) _! E( R- z/ @& C获得轴系
3 e1 a- R0 R% _- j& ^# _/ s# d参考代码如下:
6 K5 k# N" x; g# {1 FCATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;
. f  b, d* ~8 i& zspPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);
; o$ R* D# n6 @, s1 G7 W+ V7 B1 f0 }$ e7 Q5 |
//得到的所有轴系
5 ~% Z5 [7 ]( E7 @CATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;
4 Q9 i; _# j& S; o, ]4 U* |* EspAxisSystem ->GetAxisSystems(oAxisSystemList);
8 G: o9 o$ C0 X$ Q1 P. K: b+ K% o. J6 D" N

' Q4 Q: H- o; @# J
3 A  N; L9 C# g" F
4 o! T. c1 D' P# G8 v) b1 p7 ?" S, F) {
5 ]+ ]9 o6 u8 H2 e
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了