PLM之家PLMHome-工业软件践行者

[二次开发源码] NX二次开发源码分享:查找体中最大的面积

[复制链接]

2019-4-25 18:43:12 4373 1

admin 发表于 2014-11-4 20:54:40 |阅读模式

admin 楼主

2014-11-4 20:54:40

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

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

x
( D& l( x$ X+ u5 S: c, `' i
NX二次开发源码分享:查找体中最大的面积
( h' K: D) c/ n& Q通过MeasureFaces 下的area方法可以得到面的面积进行遍历查询! J/ \) p- B8 l8 G$ Z
1 _8 N( T5 o$ \4 d! R

5 F% k; y3 V$ L0 j% F1 j
  1. #include <NXOpen/Session.hxx>
    9 J2 A. m/ W5 D  O  _1 w% L
  2. #include <NXOpen/Part.hxx>
    4 d5 O! e& n7 _$ J$ ]
  3. #include <NXOpen/ParTCollection.hxx># Y+ O- A; ~8 ^* Z
  4. #include <NXOpen/MeasureManager.hxx>
    0 Z. H/ b# k6 B
  5. #include <NXOpen/MeasureFaces.hxx>& [$ d: s7 @  v9 T1 m( M# ?
  6. #include <NXOpen/NXObject.hxx>
    " T/ x' `+ H* `' a( g" o& l; s
  7. #include <NXOpen/NXObjectManager.hxx>
    $ t9 ?7 T/ K  W, \, u7 V8 @
  8. #include <NXOpen/Body.hxx>& T1 X% s- R3 c3 ~# K6 I  B
  9. #include <NXOpen/Face.hxx>; X; U0 r! ~% C/ p
  10. #include <NXOpen/Unit.hxx>5 _, Z/ }# ^; h0 d. a6 b
  11. #include <NXOpen/UnitCollection.hxx># z( `. _8 \1 ^& r9 ~0 B! Y% W) P5 v; E
  12. using namespace NXOpen;9 p% h) B' Z1 k
  13. # U$ T- l' h4 {+ R& j% F, j9 N
  14. static tag_t ask_largest_face_interop(tag_t body_tag)
    ! b  D9 q  M6 i9 H$ {
  15. {& S1 j1 D3 G) y% s! E
  16.     Session *theSession = Session::GetSession();* F+ e0 p% l$ U
  17. ! ^) ~: e0 M# e$ K
  18.     Part *workPart(theSession->Parts()->Work());$ G, ]7 i9 l$ o1 f
  19. ) M1 o" w/ \6 W( ^4 Y( M2 C
  20.     Unit *area_units = workPart->UnitCollection()->GetBase("Area");$ K7 f! M( x7 b: v
  21.     Unit *length_units = workPart->UnitCollection()->GetBase("Length");# u2 w% H( K3 v

  22. $ F4 V$ T% N) l8 ^4 E
  23.     Body *theBody = dynamic_cast<Body *>(NXObjectManager::Get(body_tag));/ s: U8 b) i( q! U0 g9 r
  24.     std::vector<Face *> theFaces = theBody->GetFaces();
    % Y7 ]/ ^* |9 m
  25. 9 s: O: z" p6 i# Z, r
  26.     double bigArea = 0;7 ?# k8 Z) |0 M& c* v6 N- I2 y
  27.     Face *bigFace;) p7 z4 R( X1 v9 G  z
  28.     std::vector<IParameterizedSurface *> theFace(1);
    ; }8 Y, j, O* Q, }. M- b/ c
  29.     for (int ii = 0; ii < theFaces.size(); ii++)' h, m8 Z/ r1 W  i! @/ ~! I
  30.     {8 F- x$ S/ J3 n, z2 C0 v
  31.         theFace[0] = dynamic_cast<IParameterizedSurface *>(theFaces[ii]);' b/ b# X( T8 t1 d( P5 [4 ?
  32. + y" k  R! w: r& S. A
  33.         MeasureFaces *theMeasure = workPart->MeasureManager()->4 ^4 q; |* c3 z
  34.             NewFaceProperties(area_units, length_units, 0.999, theFace);6 N' R7 l( O( K# R5 A
  35. , w4 z6 w: U" W4 E' S. j3 c: ~
  36.         if (theMeasure->Area() > bigArea)
    ' ?) O# ~; h: X6 C% v& V: `! |
  37.         {
    , D* ]  u3 e2 t
  38.             bigArea = theMeasure->Area();
    0 A4 N" r* O. E
  39.             bigFace = theFaces[ii];
    1 G5 s) l; m- E
  40.         }. m- t( l4 c0 X  D& h% u; a1 ]
  41.     }
    ! I) j# y% S4 f# T; A
  42. & d2 q; i9 y, c6 d  T6 d7 t
  43.     return bigFace->Tag();- i( i0 b9 J8 }+ N  j0 F
  44. }$ q+ J! l: F& d/ d, c% x
复制代码

9 e* R1 C3 u; v$ G9 b' l! D1 @- K% [3 Y" y/ |, o

7 A' d1 a- F% X, ]8 ?* w" q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

593232280 发表于 2019-4-25 18:43:12

593232280 沙发

2019-4-25 18:43:12

谢谢分享啊
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了