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

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

admin 楼主

2018-1-15 14:21:37

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

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

x
; {* P. Z& w- N' o% L! ]* V
8 g5 f4 n7 |7 t/ T/ d! [8 X
个人认为,比较常见吧,如何遍历得到几何体,通过几何体获取到拓扑体,通过体获取到几何元素,通过几何元素获取到单元,单元再到几何进行判断面的种类,对于BrepAccess的获取需要借用 全局函数 CATBrepAccess !
& X& H2 {$ [# H; P& ]5 W
" }  ?, H& B, X& x: P  t9 u0 K2 a- Z: u
- y8 t4 g9 H5 V, i
[mw_shl_code=c,true]
% c2 M/ V6 l' b% K4 \- X        //get the main body
6 v& t% Z- W, H) @/ t- o  }+ I       
0 U6 r4 Y3 o. r; X# C1 \/ x        ----   -----
8 m3 m' ~$ G* u2 @9 A# j{$ N( ]/ ~) @; N, B0 e
        CATIPartRequest_var spPrtRequest = spPrtPart;
/ I/ J$ y7 F3 Q0 E+ N* m        if (NULL_var == spPrtRequest)
$ W: Z2 u2 y* K4 M$ Q" R        {) w) N6 @6 Z: U
                printMessage("NULL_var == spPrtRequest");
- E+ I, T: G' Q/ H. ^                return;$ t3 l8 _* V( ]( |, ^" O0 \' i, t
        }% U9 B, C# s  @$ s3 ~8 ~
        CATBaseUnknown_var spMainBody;/ a$ P# ?7 W% }
4 Y2 v* d: C6 y0 B  d% B3 u( V" q; ]
        rc = spPrtRequest->GetMainBody("",spMainBody);
, H$ c# p0 y0 S4 h- y) E. N        if (FAILED(rc))
/ T$ p1 N1 a( Y$ @' V0 z% ^        {
/ j, c8 ~- ]( Z( c& ~                printMessage("Failed spPrtRequest");
) w& t' |1 Z; d) L0 l                return;
; p1 d( W: k2 u9 U6 q% g$ R        }1 |& {/ N( s: @- V! C. C. h1 P4 t
3 s2 r' Z' U. a9 ]- W9 [2 t$ @
        CATIAlias_var spAliasBody = spMainBody;6 o  o$ Q9 l7 N% `( A' y

6 U3 i2 }6 V! @' B        printMessage("Main Body" + spAliasBody->GetAlias());2 {: ~* [' C& R" v0 S" b+ c* u

" d  [9 E9 K* g' G/ X2 \# z        CATIBodyRequest_var spBodyRequest = spMainBody;
1 k" R3 f( b7 R! z        if (NULL_var == spBodyRequest)
+ x: {1 u9 S% T% e4 d, |2 b7 N        {
, A3 Z- f; D* Q4 O                printMessage("NULL_var == spBodyRequest");# z$ E) w4 x3 I1 T/ m- M% W
                return;
; Y& @/ k1 k! l  t) C  _2 t        }
; s1 n# f  J& e) x9 U- }$ ^        CATLISTV(CATBaseUnknown_var) ListResult;
$ E% G" u. ^. t: s. D        rc = spBodyRequest->GetResults("",ListResult);! C4 b+ g7 Y) {$ ~7 v, H+ |; }, l
        if (FAILED(rc)|| 0 == ListResult.Size())
' m4 K' X' c. ~. O0 i4 q        {
4 l( l* {. T5 Y" H: y8 b4 |+ H                printMessage("ListResult failed spBodyRequest");
, ?# b# k0 k# A: u$ i' q$ J" |* h                return;8 X7 f+ u- z' @* U$ |  T  L* ?1 d
        }
7 u) Q4 e2 \" ?5 ^2 P        CATIGeometricalElement_var spFeatureResultGeomElement = ListResult[1];( S) V) }9 y3 }
* Q1 l" j4 p5 L( m4 R1 N8 B
        if (NULL_var == spFeatureResultGeomElement)
+ ~; N. A( t& m6 `$ k        {1 v/ I3 U- v$ {: m
                printMessage("NULL_var == spFeatureResultGeomElement");: V: Q4 P$ l' w& m4 j9 ^) s! n
                return;( [2 `" d9 f% e( P9 J
        }
6 D+ N0 v- V/ g6 _6 B3 I9 j$ V' }, G; x+ M) N' c
        CATBody_var spTopoBody = spFeatureResultGeomElement->GetBodyResult();
4 p) x* ?' `8 i" V) @! k2 r4 _  x  v        if (NULL_var == spTopoBody)
2 e, l+ \. }# @( q- J$ L* Y( P2 r8 s        {
/ e0 f8 W' A1 A' C- H6 ~. E                printMessage("NULL_var == spTopoBody");. ?: e+ v: F3 W# f
                return;
. i, M/ X! R+ H6 f4 V; q8 H+ r        }! M. h/ p$ \! ^( H- x" l
$ p% n+ F8 P5 `2 y: V9 ?3 i
) I1 x( h( i% t8 y
        CATLISTP(CATCell) cells;
5 K- d$ j7 K4 n5 e        spTopoBody->GetAllCells(cells,2); //get all the faces: C2 T* q, S+ Z$ y, q9 v3 B
) J1 ~  t, w2 Z# v* N
        char msg[256];9 [0 C% k0 H2 E3 I/ \6 R
        sprintf_s(msg,sizeof(msg),"Face Number :%d",cells.Size());' ~% a. {$ R5 k! o
        printMessage(msg);$ x# M9 ]. f/ S$ e' F5 x; d$ M+ h  b

4 b# r! |% H7 _6 ~* k1 T  N! @        for (int i = 1; i <= cells.Size();i++)
( R* C" t) ~- M        {
1 D+ S4 ?6 B* W                CATCell_var pCell = cells;! k; T: B8 O  i* r( R
                if (NULL_var!=pCell)
9 I7 ~2 _& J/ e* G7 C                {; b3 J. o( v$ N6 K7 n$ X3 G
                        CATGeometry *pGeometry = pCell->GetGeometry();( u3 h2 r) O0 ]: [! e# Q/ F
                        if (NULL!=pGeometry && pGeometry->IsATypeOf(CATPlaneType)) //plane face
9 P, z9 n/ [* p                        {
# \) b3 V) D  T2 k- o1 T$ n+ F  P9 U6 ~) Z% F/ }5 f
                                //CATMathPoint CenterPoint;* J0 V' ~/ F' @  ^( ?
                                //pGeometry->GetBoundingBox().GetBoxCenter(CenterPoint);/ E; L: s. T- {+ D7 u+ d1 i, J( a& }
                                //sprintf_s(msg,sizeof(msg),"Face center :%f,%f,%f",CenterPoint.GetX(),CenterPoint.GetY(),CenterPoint.GetZ());# j9 I. k4 }; N; q
                                //printMessage(msg);/ ?1 }* D1 |! `
                                 ( J' e4 k' Y2 |/ D
                                CATIBRepAccess_var spBrepAccess = CATBRepDecode(pCell, spFeatureResultGeomElement);5 G' p- T/ x8 `9 D
                            if (spBrepAccess != NULL_var)
  c, Z7 L" d: s$ I8 U8 a! N                            {  T- _: }  ?7 k1 H
                                        //assign color                                . H# M7 c; e& X7 m
                                        CATIVisProperties * pVisProperties = NULL;
/ I3 T1 N8 _! }/ \/ j2 @+ _( V                                        rc = spBrepAccess->QueryInterface(IID_CATIVisProperties,(void **) &pVisProperties);7 O# V# h4 l& B; t9 Q, |. G; p
                                        if (SUCCEEDED(rc))& [7 p% @, H6 H/ \2 H0 p( s- m, E
                                        {4 E/ I3 J; A6 L* y7 O, i( v
                                                CATVisPropertiesValues ivalues;
  A" S# \1 Q9 M5 b                                                ivalues.SetColor(0,0,255);
$ H, ^% }9 F) f* N7 U, x                                                pVisProperties->SetPropertiesAtt(ivalues,CATVPColor,CATVPMesh );1 T; M' I5 L; A$ ?
                                        }3 M8 x; L, P4 ]
                                        pVisProperties->Release();
! x4 J" Y2 O$ C                                        pVisProperties = NULL;
4 l1 R8 n0 l8 w8 a' c  z                               
, |/ I, k0 q, @                                 }
" _  M2 M+ S) |
# u: B& i/ a' \8 V/ u6 g                           }6 j+ t  M0 n4 s$ q5 L2 Q& [
                                //get alias name and persistentTag to add in the list
- m! s( i8 A: X! N- s                       
4 g# p2 i& u% j2 C6 Q9 K9 X& ?                                8 Q; B8 `8 d) I+ u, a  a5 S
                        4 u/ F7 o% a8 M; @" B3 A
                        }
+ o' f7 q1 H+ K8 h. E# ^6 {8 H$ w' D$ x; L' t  F
                }) o4 c4 R3 Y$ O( Z" [
" m: y, l8 q. s3 f5 b+ b6 Y$ L6 [
        // End of User Code; r$ P* b% u% _
}; w- I9 ^9 y" F+ `. s. B
[/mw_shl_code]
" d9 g. k6 _6 k- q! 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二次开发专题模块培训报名开始啦

    我知道了