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

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

admin 楼主

2018-1-15 14:21:37

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

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

x

1 l& |6 i% k& _1 d
! i( I5 {" l+ s7 P个人认为,比较常见吧,如何遍历得到几何体,通过几何体获取到拓扑体,通过体获取到几何元素,通过几何元素获取到单元,单元再到几何进行判断面的种类,对于BrepAccess的获取需要借用 全局函数 CATBrepAccess !
6 f. ^$ w8 _0 O" M
$ B6 u, A0 A' {$ ^. C7 B( K
9 I1 U; b, c9 Y2 Y* c/ J/ S+ |+ r
+ R" H% Z; b* N[mw_shl_code=c,true]2 P/ v+ g4 n/ V- |' f+ X0 F
        //get the main body
% X$ @2 _+ l" K3 `3 W: h          Q& Y: D7 w/ ~: H. m( o2 b. Y
        ----   -----
, Z& K2 y0 f; X! t4 Z{, z, a' o0 S9 U3 H' j! \- N
        CATIPartRequest_var spPrtRequest = spPrtPart;
) [8 g" _' w; J        if (NULL_var == spPrtRequest)# `5 _: Y( a$ B- o  z6 q# L
        {
6 d. r; K% O4 A/ ~7 S: @                printMessage("NULL_var == spPrtRequest");6 a) l" ^$ n& h
                return;
: ~! L6 b) W+ @. l* g7 l        }( C8 ^- r8 H; e- L/ i, ^! u! s
        CATBaseUnknown_var spMainBody;
4 {& B! h$ Y# {4 q: T) n- q6 p5 U& C+ G, [# `6 A) |6 K1 ^. S0 @; f. Q
        rc = spPrtRequest->GetMainBody("",spMainBody);
5 c2 Q% M3 ^' a3 G; t0 [: B9 N+ M        if (FAILED(rc))
; Z8 s7 j& S: p) X7 `  D6 Z        {+ m; C1 e: m/ i3 y& \
                printMessage("Failed spPrtRequest");
2 a% H; K, N6 G1 [% ?                return;
9 z% B4 q. l8 H8 p        }
& r( Q( W2 h& K( O. k& G: u6 x; v0 b# l. ?7 Q  |* l# b
        CATIAlias_var spAliasBody = spMainBody;& l3 m7 R5 P  _8 Z9 O

! W" |$ E7 m* M        printMessage("Main Body" + spAliasBody->GetAlias());
6 x" v8 a- C. P, q# N- A. y1 u6 L- F" J- K- h! }% Y4 d
        CATIBodyRequest_var spBodyRequest = spMainBody;$ ^/ u* G9 ^6 c% J
        if (NULL_var == spBodyRequest)
. z( M. i+ m+ z) Q        {
0 d: E* U4 n* T5 I8 R2 y. p$ s8 o& [: P                printMessage("NULL_var == spBodyRequest");6 \6 P: G6 |/ \4 ]9 m# Q3 I
                return;
3 X4 h) H1 [" z; o8 ~        }1 Z7 _3 f1 `+ W  D5 z. O0 h
        CATLISTV(CATBaseUnknown_var) ListResult;# T5 L. E5 y$ f. Q0 P
        rc = spBodyRequest->GetResults("",ListResult);
" ^! k4 R" Y( B        if (FAILED(rc)|| 0 == ListResult.Size())6 J; S4 e3 U& o, b5 G! ?0 t# t3 f
        {
8 {: W/ O, c, N                printMessage("ListResult failed spBodyRequest");& S. f* H. w: \$ u
                return;
# ?' m- @+ i# F, X" |        }
9 I# @( y7 N2 v3 L& |) {        CATIGeometricalElement_var spFeatureResultGeomElement = ListResult[1];
. l1 z( C9 `0 _! x0 h# r; ~" g5 p0 @" n
        if (NULL_var == spFeatureResultGeomElement)
8 s+ w% [5 }0 t& `        {. b3 G5 r  Q" ]0 ]
                printMessage("NULL_var == spFeatureResultGeomElement");
7 u/ l3 |; k6 }* H6 H5 S$ R) d, p                return;/ I# h# _1 K9 K/ K
        }& a9 l. ~/ J/ Y# W+ O

' l0 S0 O( |3 R. j. e        CATBody_var spTopoBody = spFeatureResultGeomElement->GetBodyResult();
4 h( Q6 B5 a4 b, b  O! z        if (NULL_var == spTopoBody), m2 ^2 \: P6 W1 H' C! r
        {4 I" ?. y$ ^2 Y0 b
                printMessage("NULL_var == spTopoBody");; x7 c, q* P; O6 H( d, I
                return;4 j% K" h2 _3 }& h& }# s: G
        }
. B. s3 M! q5 j$ c' H
: |( x$ t8 f+ T/ Y5 C& Y
, D* P; [+ q+ u7 T# c" p! \        CATLISTP(CATCell) cells;& T9 Q3 j0 y; L+ X; E8 l! [
        spTopoBody->GetAllCells(cells,2); //get all the faces. F) I7 s9 \; Y/ Q- M+ t+ J
( s4 |' r% z- h. J: J# @
        char msg[256];
7 X1 S7 s* O$ X3 [( k0 q0 X7 p2 |  ~        sprintf_s(msg,sizeof(msg),"Face Number :%d",cells.Size());
& m1 @5 o! J( k7 a9 N4 {, N5 U        printMessage(msg);
. q+ V6 b( N% ^4 m. h
* o; U% H8 |: Z) z  m        for (int i = 1; i <= cells.Size();i++)+ ^2 C, x3 a. f. v' w
        {) H5 E1 n, ]3 D8 Q( Y: h2 p3 v: B+ F
                CATCell_var pCell = cells;
8 O9 @" a/ M% W  q* o6 F                if (NULL_var!=pCell)
/ z  U: U3 x" D" G$ D                {% s8 X# k3 r: x, {( M
                        CATGeometry *pGeometry = pCell->GetGeometry();$ {5 H5 M+ p* J: Y* a' f( ~
                        if (NULL!=pGeometry && pGeometry->IsATypeOf(CATPlaneType)) //plane face
* M* S) e2 r. e: r                        {
' N  q; V9 @4 @6 R' ]2 y* \' s: P5 }5 O0 C2 f2 V$ |
                                //CATMathPoint CenterPoint;. M; i. F7 l6 h, q; z: R
                                //pGeometry->GetBoundingBox().GetBoxCenter(CenterPoint);
+ s2 V  `7 E+ E& N/ B( M                                //sprintf_s(msg,sizeof(msg),"Face center :%f,%f,%f",CenterPoint.GetX(),CenterPoint.GetY(),CenterPoint.GetZ());
& N! q& t* F6 U( T                                //printMessage(msg);
( j/ h1 b. L+ y& E/ K! F                                 
) b! G# @: A) H( F+ ~                                CATIBRepAccess_var spBrepAccess = CATBRepDecode(pCell, spFeatureResultGeomElement);( X- {* R9 C4 @1 z* b
                            if (spBrepAccess != NULL_var)
- d. N" a% G* q1 Q                            {' B7 r2 P4 l8 o" q+ O
                                        //assign color                               
" P4 B. v" S1 K0 h                                        CATIVisProperties * pVisProperties = NULL;
) l+ _  F$ _8 w, U. ~                                        rc = spBrepAccess->QueryInterface(IID_CATIVisProperties,(void **) &pVisProperties);
, R! w; x. V# Z  s$ d                                        if (SUCCEEDED(rc))9 l9 H$ a: l1 S" I! A
                                        {
1 M% @& ]7 r" l1 T                                                CATVisPropertiesValues ivalues;
5 q% ?7 E5 X9 k) t                                                ivalues.SetColor(0,0,255);
8 i5 w7 |% a$ ^' ^* V4 g& O2 ~                                                pVisProperties->SetPropertiesAtt(ivalues,CATVPColor,CATVPMesh );1 H' E+ q8 Z) b
                                        }
1 a6 l* l# M) h: g( C                                        pVisProperties->Release();
1 v( H' H# E' a1 H" _) s! E7 j                                        pVisProperties = NULL;
! Q8 Q$ |4 Y) S                                4 S7 U" M8 L4 q1 t- W# f
                                 }
6 b" G* M6 A- h  N. x% Y7 z# s
* s1 m7 G7 U( j2 l, I6 Z" j                           }; ^, ~* E6 z" M
                                //get alias name and persistentTag to add in the list& W# P3 I% F" M; z) o1 ^% i
                       
4 ~9 w, L3 g7 [1 D1 a8 \) m! ~                                ( N- w1 u6 M! G) u6 O; q
                       
" U; f% h/ c& `2 j/ E                        }
- P/ d7 J5 ~! L+ R# G
1 E& v$ v2 C  L& K# y! ~4 G                }( {* U+ a9 f1 Y
8 H) _3 E. y" }% h' V9 e8 J: O
        // End of User Code
: O; Z! m9 u  F3 i}2 n: ?( C' |, j9 S2 Z6 |
[/mw_shl_code]
# [0 ], y6 q5 e! v& |4 p" ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了