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 2038 0

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

admin 楼主

2018-1-15 14:21:37

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

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

x

6 U% I7 L* t  n$ G: Z
* W$ X; T7 q! h0 |$ [个人认为,比较常见吧,如何遍历得到几何体,通过几何体获取到拓扑体,通过体获取到几何元素,通过几何元素获取到单元,单元再到几何进行判断面的种类,对于BrepAccess的获取需要借用 全局函数 CATBrepAccess !# C+ a, X. ]% M8 N; N* U
! w/ B# z& f8 [5 t. p9 k

+ [' d) n0 A: @; R) w, t  S3 i* r6 {4 z: ?- z2 Y
[mw_shl_code=c,true]* E3 U) p2 \) f( k0 \
        //get the main body
7 [4 O0 F8 ?/ ?! p5 ]8 l        0 o  d  ?. f9 l/ @
        ----   -----* V% Y* s' ~* B# a- g' i: h
{
* L" G0 y! e1 F1 _! S! _        CATIPartRequest_var spPrtRequest = spPrtPart;: j5 R- ]) t& M) t, z
        if (NULL_var == spPrtRequest)! e! N+ ~( b. p
        {; m# t) M& U+ G+ J% S) j
                printMessage("NULL_var == spPrtRequest");
! \- b3 o6 X! m! ?: u- V4 C+ _. M                return;! ^* j2 n) z1 R( o# h5 T/ H! G
        }
1 B9 R1 J1 q  W, a  u3 \% V4 d5 u/ d        CATBaseUnknown_var spMainBody;, Q5 s- N/ a! k1 h% L

' w. R$ Y, k0 d, t3 n4 k        rc = spPrtRequest->GetMainBody("",spMainBody);3 ?) f  c2 X/ ]' y
        if (FAILED(rc))$ W3 i0 v/ ], k3 i# q
        {
# w( o) G% E0 ~+ T% |+ t                printMessage("Failed spPrtRequest");0 p! k( b0 h( X- F9 [
                return;- I0 ?  c7 g# l" K3 b8 V5 r
        }  A2 r& {8 Q/ m% F2 l9 T( t# r
4 M& `+ B% d' o* z; N
        CATIAlias_var spAliasBody = spMainBody;
" z/ ]4 B1 f9 F( S! a7 ~, \) a3 P( d* D: g- l
        printMessage("Main Body" + spAliasBody->GetAlias());1 n7 }& {2 N. E. T6 I/ g

3 |. v0 C. @* {+ q. b. N, e3 _& {        CATIBodyRequest_var spBodyRequest = spMainBody;$ |& v" E- F* D
        if (NULL_var == spBodyRequest)1 `6 Q1 y4 R/ D: t) ?
        {) P& P+ A& r* Y. B4 f
                printMessage("NULL_var == spBodyRequest");" `% w/ q( o8 q8 Y
                return;
+ F9 ^/ o+ {( g6 X9 @        }
7 |) K$ E7 T' O        CATLISTV(CATBaseUnknown_var) ListResult;
) W  s9 A+ J: w$ P9 C        rc = spBodyRequest->GetResults("",ListResult);
6 \8 a8 R  R0 _" y7 r  `% R7 ~& A        if (FAILED(rc)|| 0 == ListResult.Size())" H. _! N9 g2 [. A. N
        {0 o% D) |  r/ \0 F/ [5 k
                printMessage("ListResult failed spBodyRequest");
  A; ~) Q' d& p* A                return;% ^7 {5 F$ {- e: M! ?- j; _
        }
4 i, Q! g. s3 n9 F% v7 v        CATIGeometricalElement_var spFeatureResultGeomElement = ListResult[1];
8 J3 r1 v2 w, h: O9 V
& f8 f4 f$ c0 N+ K- e        if (NULL_var == spFeatureResultGeomElement)
9 d, S1 \: A7 r9 y" M        {+ _; d- }! c9 W1 g
                printMessage("NULL_var == spFeatureResultGeomElement");9 n2 F9 |7 ?6 n$ _  @! b2 u
                return;' Y1 [1 e' |% ^1 G
        }
: p% P: |6 a: N4 W! @4 v- |$ I2 x: P( ~. L
        CATBody_var spTopoBody = spFeatureResultGeomElement->GetBodyResult();
. X( u1 I# t0 G        if (NULL_var == spTopoBody)
, u, H  j1 g  ?' S' r' j        {
: ^+ h6 t( P) g0 k                printMessage("NULL_var == spTopoBody");) _5 W! @! m% _: A1 [1 }' t
                return;
6 s. o& Q4 u& C) _        }
7 a* m5 ^+ y! F8 P9 l7 S
7 G  W/ k! n0 S8 R/ h# d8 _
: c% p) l, a) I        CATLISTP(CATCell) cells;
- l9 E( C$ u- v( f( i) x# j        spTopoBody->GetAllCells(cells,2); //get all the faces% Z" _4 d# s5 P* @( h+ L
8 [! s5 ~% e9 _1 V/ O
        char msg[256];  |/ i' g/ w6 ?
        sprintf_s(msg,sizeof(msg),"Face Number :%d",cells.Size());
3 }- q- q8 ~" X2 {        printMessage(msg);4 f) @% h2 E6 L, T  t

: M: m0 ^$ o4 q* k( n        for (int i = 1; i <= cells.Size();i++)7 N' }* Z# i6 c8 D, G3 V
        {
7 P! V4 g2 [" d" i5 s0 y                CATCell_var pCell = cells;
2 N5 n0 P0 H: a/ o+ @! u                if (NULL_var!=pCell)3 {7 R1 r* A: X* Z1 m+ I
                {$ o, N% O% H& J+ j/ c4 [
                        CATGeometry *pGeometry = pCell->GetGeometry();
) |$ H# H8 Q/ ?2 p" u- j                        if (NULL!=pGeometry && pGeometry->IsATypeOf(CATPlaneType)) //plane face
/ \0 l; r7 r3 ~0 _1 q  X                        {
. f! o* |- Z( p; J$ r- B% g* x0 H9 S3 p$ k( k* C
                                //CATMathPoint CenterPoint;# F3 l# Z  a/ ^6 y8 _/ |
                                //pGeometry->GetBoundingBox().GetBoxCenter(CenterPoint);/ u" R* g- b% _2 M& C
                                //sprintf_s(msg,sizeof(msg),"Face center :%f,%f,%f",CenterPoint.GetX(),CenterPoint.GetY(),CenterPoint.GetZ());3 ]: ~$ _& y9 d9 v2 S0 Y
                                //printMessage(msg);- s5 X7 l: F/ \+ A% F4 p
                                 
0 r* X: L5 q! o                                CATIBRepAccess_var spBrepAccess = CATBRepDecode(pCell, spFeatureResultGeomElement);
5 v9 T5 J) |4 y                            if (spBrepAccess != NULL_var)( b+ ?# L, {$ a: g; M  U& n, l2 ^# e
                            {
; [+ n1 ~. m* w7 M* _                                        //assign color                                $ ]# V) y. a* D; c, [/ [: _! W
                                        CATIVisProperties * pVisProperties = NULL;+ ^2 a7 o- n# v; l1 T
                                        rc = spBrepAccess->QueryInterface(IID_CATIVisProperties,(void **) &pVisProperties);2 a/ V+ `9 X$ x) C
                                        if (SUCCEEDED(rc))
7 ?( U! {; O% s" e0 N                                        {
: d( y4 v- g' F3 g( J                                                CATVisPropertiesValues ivalues;% P' f. N3 P. g8 k
                                                ivalues.SetColor(0,0,255);
- B$ z8 K8 Q! F) x                                                pVisProperties->SetPropertiesAtt(ivalues,CATVPColor,CATVPMesh );
( {6 B% R) r$ ^4 U3 i2 h                                        }
- ~; g; v) Q0 u( e                                        pVisProperties->Release();4 y" U* |/ R2 h2 D7 Y
                                        pVisProperties = NULL;
+ J7 d. D$ A8 ^                                ! ]" x6 ]3 s1 C8 S
                                 }
: N  W8 b. C; W$ S  e
6 F! ]$ T% M7 h' P( d                           }
. i0 W5 D: _7 q6 |& D* Z1 F0 i                                //get alias name and persistentTag to add in the list
# Z; Q1 d; ^0 L( v                        2 p, ]+ v% I7 z. R
                                & J, V6 X5 `+ `  Q
                       
  e; D9 _$ ~/ i                        }5 `  E& ]4 I8 w' U% T

# C5 R3 O  R% X* O2 |                }
( b" B1 K- P* Z! F2 R6 {6 J
& o$ H2 ^9 R- T  P( t/ H        // End of User Code
9 Q% S' D/ x$ L}
+ W% I9 \! G* S) m- O% V( z5 \: p[/mw_shl_code]
* c+ g. e) }, e( l  U  ]. x; w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了