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

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

admin 楼主

2018-1-15 14:21:37

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

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

x

9 |% ~/ R3 a9 c4 g' ?7 `, `! I
% D' @4 f1 U0 u, c个人认为,比较常见吧,如何遍历得到几何体,通过几何体获取到拓扑体,通过体获取到几何元素,通过几何元素获取到单元,单元再到几何进行判断面的种类,对于BrepAccess的获取需要借用 全局函数 CATBrepAccess !$ P& m9 _- n5 @% h% z1 t- T

; P) l9 ?, l+ |. G. \
# z, y# j; w1 V5 ~& O9 W8 v9 Y
2 d" M9 j* _8 B2 K- R. f[mw_shl_code=c,true]2 @: O- F; Y2 @' x: L# O
        //get the main body
7 j- A; {3 E; d8 H8 ]1 P       
, D) @/ |2 u) u2 a& T8 t        ----   -----9 |" M6 V  r# z6 m+ k
{
3 p6 e2 T4 @: [- |' G3 G! g        CATIPartRequest_var spPrtRequest = spPrtPart;9 ?  `; E% u" m/ I3 y
        if (NULL_var == spPrtRequest)! ]  X- d7 b9 P4 S$ W0 t
        {
1 \( ~" S: c. D2 P                printMessage("NULL_var == spPrtRequest");9 L2 A* F" }' ]7 D: |) ^
                return;. f1 t( n( u+ k$ v: N
        }
) f. m0 S" A' R4 c8 A# ^, `        CATBaseUnknown_var spMainBody;8 D# E, Q% X$ P/ F3 v9 y
5 Y9 M) w1 t( T, M; b( K0 M% _
        rc = spPrtRequest->GetMainBody("",spMainBody);' J( d$ l4 o8 x; u3 J- i9 c
        if (FAILED(rc))/ U3 Z# m4 b; {2 x% s: e
        {% V5 X3 s% |0 i2 l- K: j; S
                printMessage("Failed spPrtRequest");+ l6 Z5 w: y# ?1 _& E5 w
                return;
, D' a: b# A$ \! a- }        }
  A1 m1 k( v4 x' ~6 H8 F
, f) P. _. S5 A- f; |/ I) M        CATIAlias_var spAliasBody = spMainBody;
6 f' D# z% e2 v0 x4 G5 i/ Q/ B0 C5 f, r! F: t: @
        printMessage("Main Body" + spAliasBody->GetAlias());! j" a$ k$ Q7 _9 R$ h$ c
. e" `  [+ F0 ]* c' _4 b: V
        CATIBodyRequest_var spBodyRequest = spMainBody;
+ l- m/ a  j% g% U. n        if (NULL_var == spBodyRequest), n' c) N1 ~1 O. g! ?
        {% W# X1 |* k9 w' l% o
                printMessage("NULL_var == spBodyRequest");5 ?7 |0 p0 {! w8 w
                return;
8 D. R1 z$ F) u. U( G        }
5 Q9 `9 s8 n8 P; i+ l5 m9 e" {8 f& C        CATLISTV(CATBaseUnknown_var) ListResult;  w& A7 f: @+ @! H8 e# i
        rc = spBodyRequest->GetResults("",ListResult);
5 e$ @% o' k: g# K* \$ h        if (FAILED(rc)|| 0 == ListResult.Size())( o, u/ i, I. ^- R
        {+ u& o6 a% d/ z5 y/ j% z1 f
                printMessage("ListResult failed spBodyRequest");
8 q* f' ]& P4 D6 E+ I                return;
0 _+ T+ ~$ t5 J3 L9 T- V$ M, V+ B        }
( e( d( }# q- G3 e* y2 k        CATIGeometricalElement_var spFeatureResultGeomElement = ListResult[1];
+ I( l: A$ n# a5 ^/ j- W7 ~- E3 n; o. i( w2 ~2 d/ k9 p
        if (NULL_var == spFeatureResultGeomElement)
  _" |& Z/ Q7 D# ^) p        {: J0 S4 T3 I" L& A9 F# M7 N
                printMessage("NULL_var == spFeatureResultGeomElement");  V- w- S5 B! D* p' C
                return;# ?3 F! p* ]; Y( e, o3 V
        }
6 y+ s( O  q1 p6 J0 ~+ F3 r" z
/ i  @4 D% A6 I: D6 Q: V+ y        CATBody_var spTopoBody = spFeatureResultGeomElement->GetBodyResult();
- Q$ J, S' v- j& ?; V+ ^        if (NULL_var == spTopoBody)$ U& _: U7 {3 d
        {2 v% e3 y3 J; o" S( I& V+ {
                printMessage("NULL_var == spTopoBody");: q/ _9 p3 ~) K, S# N
                return;
& X7 g9 b0 S/ g+ F* q        }
$ v" \* p; }+ ?& k" Q, q; Z0 e3 J2 o% o) [# {) M
: M& \& Q9 G2 T+ V5 ~
        CATLISTP(CATCell) cells;
/ c; z; U- t: W        spTopoBody->GetAllCells(cells,2); //get all the faces. p7 Q2 D- O3 n) T8 x4 E4 @

4 J$ U% f2 F- ?0 x# A9 n6 b        char msg[256];0 E7 h4 v& @+ b  _1 D+ _
        sprintf_s(msg,sizeof(msg),"Face Number :%d",cells.Size());& K/ u2 l" Q, R, g! b( e( z6 H
        printMessage(msg);0 P% Q( T6 {  U" M  J; Z
% |3 ^. W% O3 o7 r
        for (int i = 1; i <= cells.Size();i++)0 w9 X! e" w/ i, R7 z  Q& Z
        {
- X% M" x. q( C6 h5 q7 l0 y! a% |( q                CATCell_var pCell = cells;9 y$ E3 `" |& ]3 I
                if (NULL_var!=pCell)
5 l0 t0 s. b2 {$ a% Y                {
, G+ c6 t- O+ |" Z# |1 N                        CATGeometry *pGeometry = pCell->GetGeometry();# b/ u) h' t2 P1 O
                        if (NULL!=pGeometry && pGeometry->IsATypeOf(CATPlaneType)) //plane face/ U) W3 p% \% O5 R* I: }
                        {
8 }9 y; T; R) Y) ]* m2 j9 K$ J1 w7 W2 C3 |( |
                                //CATMathPoint CenterPoint;
- G4 H! I0 F# v1 Y                                //pGeometry->GetBoundingBox().GetBoxCenter(CenterPoint);5 ]4 b5 R% m( V% Z% g+ }
                                //sprintf_s(msg,sizeof(msg),"Face center :%f,%f,%f",CenterPoint.GetX(),CenterPoint.GetY(),CenterPoint.GetZ());8 y: }' y; r/ i0 B
                                //printMessage(msg);5 p! B9 T$ a' O* J
                                 - E5 m5 A  F. F& B; D2 g
                                CATIBRepAccess_var spBrepAccess = CATBRepDecode(pCell, spFeatureResultGeomElement);
/ Q8 Z, r1 o/ @6 I# P" @9 N# H                            if (spBrepAccess != NULL_var)
& o7 d/ o" T3 A1 I; d' i  N4 O0 N                            {) F/ {8 J! o( O7 G4 V6 i8 Z* Y
                                        //assign color                                7 E8 a$ p; b) \& }- ]
                                        CATIVisProperties * pVisProperties = NULL;$ ?; q& g% {0 O$ W) J+ m' w
                                        rc = spBrepAccess->QueryInterface(IID_CATIVisProperties,(void **) &pVisProperties);: @- \& Q' r* ^( {
                                        if (SUCCEEDED(rc))* R, J7 x2 W9 M* [. J) _
                                        {
4 R/ v. }7 h# b. L. ?$ [8 |                                                CATVisPropertiesValues ivalues;
/ o9 d/ @- {+ m+ q$ M                                                ivalues.SetColor(0,0,255);
$ A: `1 o6 B* \8 p) D) K                                                pVisProperties->SetPropertiesAtt(ivalues,CATVPColor,CATVPMesh );% _3 v7 b+ q7 M. p, R1 T
                                        }
" f" ^9 U2 {  N) T- K                                        pVisProperties->Release();9 U* I4 D+ B# b) g
                                        pVisProperties = NULL;
- O+ n  d( }, I4 B" n                                7 d; H! b* f0 b8 }2 Z7 C
                                 }
( `, U8 y7 `' K, q+ G8 [& Q8 l8 v& Y" Q
                           }
7 j5 O5 D8 U; U6 M% c                                //get alias name and persistentTag to add in the list: z1 T8 K* c3 j7 w2 w  m3 y/ ~0 g
                        9 U8 s0 j* X0 {  n; J
                               
. P4 j" M) f4 l# `- N  g" K                        & f4 ]* k* ~+ R
                        }1 x2 A9 _3 o5 N( b- ]

5 W( x/ g# H! L: n; Y2 S                }
) e! R/ N+ Z! \7 t: z& g
+ i' P5 s' J+ U; b6 b        // End of User Code5 O3 v( m/ O: o+ \8 x6 C" D9 M
}
& w; I4 I/ O1 C. G. e2 u  B[/mw_shl_code]# k7 i3 V% U- M# n3 L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了