PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

Catia 二次开发源码分享: 获取所有的平面并着色

[复制链接]

2018-1-15 14:21:37 2023 0

admin 发表于 2018-1-15 14:21:37 |阅读模式

admin 楼主

2018-1-15 14:21:37

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

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

x

- s, b" S  v' r3 g  }( ^7 w) K
; }5 Q% G: H4 B; H个人认为,比较常见吧,如何遍历得到几何体,通过几何体获取到拓扑体,通过体获取到几何元素,通过几何元素获取到单元,单元再到几何进行判断面的种类,对于BrepAccess的获取需要借用 全局函数 CATBrepAccess !3 ~1 r+ P/ P0 v
9 q+ d8 K6 R+ \" e5 b# N

' y& I9 T1 `) Z3 v9 V( n: s! S) F7 T8 g+ C# [+ I5 ]
[mw_shl_code=c,true]$ j/ }; q: H7 u: A
        //get the main body
7 \# K& w/ `& R9 z7 W       
/ t6 b; A% l3 c7 b( c9 O! ]        ----   -----0 L( c9 Y2 q- @5 P% h$ z/ p
{
5 ?2 p  \6 i: |: ?, A' W! V        CATIPartRequest_var spPrtRequest = spPrtPart;
8 J4 t( Q6 k5 A  D        if (NULL_var == spPrtRequest): O4 e- y  G0 Q( h
        {
+ `! X3 z" l: e1 p& Z                printMessage("NULL_var == spPrtRequest");
) S. {7 e; E8 ?1 ?( A                return;
9 M" |, F3 l- Y1 K/ O5 |        }
0 w$ J" [3 }" n$ B2 Q+ ?' y        CATBaseUnknown_var spMainBody;
- i( [6 X7 y1 H- v5 u% w1 E
' k# P. a6 d8 W6 ]        rc = spPrtRequest->GetMainBody("",spMainBody);
- |5 [( s; e$ k2 q        if (FAILED(rc))
! e; l- l/ C$ g+ i" Y5 c  I        {
/ ~* j* i) n9 x% b/ V7 X                printMessage("Failed spPrtRequest");2 F  d. ^* N/ ]+ {' E
                return;) H/ t. ~$ v/ Z6 x" }  s4 l
        }
# B+ c* |0 S, k& I4 R  Q) O) q
: O  f+ L  q+ q5 F0 f/ }" V        CATIAlias_var spAliasBody = spMainBody;
6 n8 j0 W- @! }4 ^9 Y. g5 R1 x& Z: q# z  G4 \+ h
        printMessage("Main Body" + spAliasBody->GetAlias());5 Y' c8 p: G, a) B0 y6 }% u* e8 K! }/ u4 _
# F0 l8 ~/ j; ]3 ~/ f8 D
        CATIBodyRequest_var spBodyRequest = spMainBody;
! ]9 }( F- z$ x& S. M        if (NULL_var == spBodyRequest)
) w4 U, O0 ~5 q+ M% s        {
% O3 I- \# H$ C! q# \5 {  T8 _                printMessage("NULL_var == spBodyRequest");4 }5 q2 V3 h0 C% X
                return;
* b9 ^9 |- O# i8 Q+ ^5 {        }# Y6 O3 I0 c7 _. w- O# ]
        CATLISTV(CATBaseUnknown_var) ListResult;
3 R# l  q% ~! l; }$ a        rc = spBodyRequest->GetResults("",ListResult);/ l3 R( d4 W% M, T  D" e( `* E
        if (FAILED(rc)|| 0 == ListResult.Size())6 C' E; T. L* N* F0 f( o) f
        {+ ~' ~' N1 T7 i% l4 r4 V
                printMessage("ListResult failed spBodyRequest");
) f0 e. ^# D9 U                return;; C; W" [# P/ u2 q: y. d( [
        }3 I, a2 [0 \. n& ]& g: T
        CATIGeometricalElement_var spFeatureResultGeomElement = ListResult[1];
1 H7 m) b6 W" n  e
( ~  J* V% |' L9 ?( @$ n/ f% o        if (NULL_var == spFeatureResultGeomElement)
2 u9 J$ m. B4 r- e$ k" Q8 K. d. M        {% `  d1 L, I1 H* V
                printMessage("NULL_var == spFeatureResultGeomElement");
- {' _! J# Q% D                return;
5 a, G( c8 Y9 u7 S6 l  |- s        }9 U  Z# p( y) x$ @$ i( q7 a/ M3 N

6 a+ O6 u' [9 K        CATBody_var spTopoBody = spFeatureResultGeomElement->GetBodyResult();9 O, w) Y2 H6 Q  D0 W
        if (NULL_var == spTopoBody)6 |8 L. W( ?! x
        {
3 C$ ~6 r" k6 k( W% K                printMessage("NULL_var == spTopoBody");
3 e$ D$ Q- d: b7 M                return;
# {0 q4 _0 R7 {/ w        }
  ~& s* m( b  P+ }" {4 G
% Y! \' I$ g/ J2 P$ z2 C2 R, W  _/ d8 |8 _  M
        CATLISTP(CATCell) cells;
  j. z  W% P  s+ q1 |8 j        spTopoBody->GetAllCells(cells,2); //get all the faces
, R5 q6 k  i& t& g. ^# @/ c8 s  j0 [8 W+ `; Z$ a
        char msg[256];3 w1 ^6 A, K+ p% G  H( x1 s/ K
        sprintf_s(msg,sizeof(msg),"Face Number :%d",cells.Size());$ k) ]# |7 @* z8 I0 X( }$ }+ l0 |( w
        printMessage(msg);
0 R1 x, |& t0 k0 U: v, x9 C& v. H
$ \$ I3 Z$ c1 o! N+ E2 c' Z) k        for (int i = 1; i <= cells.Size();i++)% D: G% [8 x: w; b/ H+ F+ T
        {) y9 q8 R- k: t
                CATCell_var pCell = cells;
5 q- A0 x, w% s6 H$ E$ {+ W                if (NULL_var!=pCell)  i7 i, v+ w% N$ b
                {
: O: K; {' T' U# w0 F                        CATGeometry *pGeometry = pCell->GetGeometry();$ f( z' b% E: r$ G2 F8 [* x  P
                        if (NULL!=pGeometry && pGeometry->IsATypeOf(CATPlaneType)) //plane face
( D8 m4 o5 R" b" g0 j! o                        {7 U4 L% ^2 L7 S- ?7 e0 _" o
: J6 @- a/ }0 @* l2 s+ v
                                //CATMathPoint CenterPoint;
% v4 i9 Y( ]$ O                                //pGeometry->GetBoundingBox().GetBoxCenter(CenterPoint);
( S1 ?7 F2 F" X. X. d. s                                //sprintf_s(msg,sizeof(msg),"Face center :%f,%f,%f",CenterPoint.GetX(),CenterPoint.GetY(),CenterPoint.GetZ());
7 E, p8 V4 w: D6 u& V6 ^$ m0 ~$ s                                //printMessage(msg);
/ e& {4 c  o- B0 v: C                                 
' ]5 w3 ~0 [: P! w, n, a* u                                CATIBRepAccess_var spBrepAccess = CATBRepDecode(pCell, spFeatureResultGeomElement);4 z" _1 w8 Q$ g* ?5 e
                            if (spBrepAccess != NULL_var)2 ?# H0 @; i: T( m( U
                            {
" z8 D% p% ~* V4 a* J# @: C6 E                                        //assign color                               
% n; C( ]. C' B- V0 `8 K" v                                        CATIVisProperties * pVisProperties = NULL;
7 J' j/ L" h6 T9 j6 f                                        rc = spBrepAccess->QueryInterface(IID_CATIVisProperties,(void **) &pVisProperties);
! y3 |8 |  n* A% d8 X                                        if (SUCCEEDED(rc))4 _, ^5 c- n* x: C( I! U! k
                                        {
4 M/ K0 G$ e8 a" V7 }                                                CATVisPropertiesValues ivalues;
% O9 C; Y/ M, }! v/ r                                                ivalues.SetColor(0,0,255);2 p) B( z% w4 n- l  Q/ ]8 l1 k) p4 y
                                                pVisProperties->SetPropertiesAtt(ivalues,CATVPColor,CATVPMesh );
3 }- J, ~8 Y1 y, h" u                                        }
8 `/ S& s' P4 ?: z& J4 r# s                                        pVisProperties->Release();. `  K: Z! s9 C6 @
                                        pVisProperties = NULL;  s; i2 u  e5 U6 E% I) ]
                               
" P6 h# i' E# c) z' K7 m, `                                 }" p0 |! `' _4 O+ X( H( ^' a
" W( F8 ?, _( O
                           }
5 f  z: w, B5 M( @: N                                //get alias name and persistentTag to add in the list
/ \5 K/ y; C) v7 c  Q" ^                       
, A- `$ f3 N$ F: D                               
1 U0 P% \8 b5 s% o1 G$ y9 q5 V6 Q                        ) J, P: v; n( W4 T* X! v+ R
                        }8 D+ j/ D7 E$ C

: p( |2 V% I- H# }" A7 ~                }
( W$ p& u+ P% W/ T
, V1 Q2 q3 T2 r0 i        // End of User Code& [/ k$ b1 S2 {' C2 y
}0 T' n3 T1 I$ [0 v
[/mw_shl_code]! Y# ?; n5 v' U; A9 H. |
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了