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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:10:11

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

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

x
6 j% [" I6 d7 U+ E3 {, m/ _4 i

3 U% [' y) M" {" \1 I3 p3 C获得 CATIPrtPart9 B: X4 U3 K* s9 M9 A' Q
% r1 d! ^0 N2 @
参考代码如下:
( ]# e8 Z# G$ f& [; T  J( SCATIPrTContainer_var spPrtContainer = spContainer;  w( z. m, Q  S, O( ^
CATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
; Q9 l0 f$ Y5 v; m# E9 j. y7 e
. T0 v) S8 K! g获得零件下所有节点
4 K; @8 _: Q/ R4 {( p; k方法一:利用 CATIDescendants 接口) G! c9 d, i7 x( C: c" v
CATIDescendants_var spDescendantsOnPart = spPrtPart;
+ n% S+ v  i% q( r: lCATListValCATISpecObject_var spSpecObjects;
# ]0 A1 b% n! L0 y( ]7 N8 wpiDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);* h3 I; D. n3 \: ~' a' M

1 D6 V; I1 u3 {方法二:利用CATContainer 中的ListMembersHere 方法
* `; i% ~# q, hSEQUENCE(CATBaseUnknown_ptr) ListObj;
2 i4 M6 L% u2 B& ~( ^long NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);
+ O6 n2 {% F4 r( |* f5 Y4 P9 u) pfor(int j=0;j<NbObj;j++)//注意从0 开始
, H* s# r5 p! @7 q{}
: l: x, V6 u) }; Y- _8 U, D7 T/ n: ]注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该* I4 I( |! W6 N: i: f
参数设置为相应的接口,例如"CATPoint"表示所有的点。
: U4 s7 T- ?- q0 h- z6 B) ?/ e& N
6 }5 S% M0 w0 ]- A! D0 L& F% j' q% ~! C, q& Q/ T
获得参考平面# `+ Y  j/ A+ a/ v2 L  q
参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:: b; V* ~4 q) t) _+ l
CATListValCATISpecObject_var spReferencePlanes;* r- ?# W9 S& Q6 @
spReferencePlanes = spPrtPart->GetReferencePlanes();! G5 R2 G7 j- y- \2 C, V1 j
注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平
3 r  i3 Y+ ~2 ^) n/ ~( T, x4 M5 o面。& u8 M" W3 U1 u& [3 X4 n
如果要使用 yz 平面,则参考代码如下:1 T& c) o" n0 V$ e, x
CATISpecObject_var spyzPlane = spReferencePlanes[2];
  B3 a% f1 a6 N% \, P( D9 V& J$ F3 x; E9 S, M% ?4 Q/ u+ |8 h

& `2 Z( l- Q' [" g获得轴系
5 T: E" M: ?2 `6 b+ }参考代码如下:
% p: B+ d& V" I0 DCATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;  X% |7 @/ C1 |6 K; e
spPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);$ z: C4 t! I( x7 a4 p
2 ?2 R' e( N% [! K) R
//得到的所有轴系3 O0 }1 E; ~4 [0 Y! F+ q& B
CATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;
9 r1 v5 z7 {  N- espAxisSystem ->GetAxisSystems(oAxisSystemList);# _7 ]" h* f+ b/ {/ s) R) i
, B5 M- V: p+ e- h, o' E/ j

1 {# u2 B+ V# o+ E: b3 {& b" {. r# Z
  Q9 X! r" g' x- g* I, {

# y7 X7 W' r  t0 e# \6 ^+ O; a/ j7 Z" m' o% p0 \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了