PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-11-4 20:54:40

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

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

x

) b5 d$ b2 m& n7 v( o; BNX二次开发源码分享:查找体中最大的面积
) a' W  E) o$ F: a4 I4 x) s; \" G4 V$ ?通过MeasureFaces 下的area方法可以得到面的面积进行遍历查询  k. B5 @( B9 E, T

' t$ h9 S7 f8 ]/ d: o, |! ^  s" Z7 @. u( v
  1. #include <NXOpen/Session.hxx>
    ; c" g' h) Q9 u' {1 L
  2. #include <NXOpen/Part.hxx>
    " j4 ~" v/ ?9 e
  3. #include <NXOpen/ParTCollection.hxx>6 N+ n$ m8 |% o" c: F- v5 Q
  4. #include <NXOpen/MeasureManager.hxx>2 L3 d4 P  _, x( S9 h# q5 \
  5. #include <NXOpen/MeasureFaces.hxx>0 a4 w" w' Q6 I- R$ G) S
  6. #include <NXOpen/NXObject.hxx>- ^9 ?) e0 A4 }! \) b
  7. #include <NXOpen/NXObjectManager.hxx>
    7 I2 q8 {. W! j( }
  8. #include <NXOpen/Body.hxx>7 t* z& m" c8 D) ?
  9. #include <NXOpen/Face.hxx>: C! M7 B% w3 ^$ F* X
  10. #include <NXOpen/Unit.hxx>
    1 k: x# ]! y+ f% }& k' [1 d
  11. #include <NXOpen/UnitCollection.hxx>
    3 E7 [0 }+ M. Z9 b  b* [
  12. using namespace NXOpen;
    3 B0 Q$ B2 p6 M( Q2 \
  13. " K) \$ ?" ?7 ~
  14. static tag_t ask_largest_face_interop(tag_t body_tag)
    " t$ r0 A& V8 ~! D0 q8 z
  15. {
    $ j* F$ m' k# n9 M8 C4 o' [  z
  16.     Session *theSession = Session::GetSession();
    ) m" u0 _' y4 E
  17. : i  w5 G3 ?3 j$ S
  18.     Part *workPart(theSession->Parts()->Work());
      b7 L; b) I  |8 g
  19. 8 x4 C6 P9 G( \! v7 A
  20.     Unit *area_units = workPart->UnitCollection()->GetBase("Area");
    0 d8 W- t6 w  u  l1 }% m6 b) d
  21.     Unit *length_units = workPart->UnitCollection()->GetBase("Length");
    , }& e8 e" w8 C. y7 W, _1 o, m: |

  22. 0 x; o/ h9 H% s$ H, n- j. p$ l
  23.     Body *theBody = dynamic_cast<Body *>(NXObjectManager::Get(body_tag));9 g+ G. y! d: u/ S
  24.     std::vector<Face *> theFaces = theBody->GetFaces();
    4 O5 s- _! f5 G1 x4 G5 i
  25. " }( _  a3 K/ s) M
  26.     double bigArea = 0;/ p. ?0 `& u: Y4 X
  27.     Face *bigFace;! M5 ^$ d  X& V/ p% }6 H# ^
  28.     std::vector<IParameterizedSurface *> theFace(1);3 e9 J/ p* L8 j! t$ k6 [
  29.     for (int ii = 0; ii < theFaces.size(); ii++)1 g: r8 f% |) v/ _2 r
  30.     {5 f4 T! c$ d/ }3 _
  31.         theFace[0] = dynamic_cast<IParameterizedSurface *>(theFaces[ii]);
    ' D; s1 f2 W4 r& L) J6 |
  32. * }/ l" v8 O2 z- T# m# ^
  33.         MeasureFaces *theMeasure = workPart->MeasureManager()->
    * K: d! P' K* _4 ~1 D# ]" p, R
  34.             NewFaceProperties(area_units, length_units, 0.999, theFace);/ f) \- C4 C8 w
  35. & r$ b% I1 I* p- B8 F  @
  36.         if (theMeasure->Area() > bigArea)) z6 W1 Y7 p8 H, {0 Y1 w
  37.         {! [  ?  S3 ~' d8 ^9 D3 X/ Z
  38.             bigArea = theMeasure->Area();, A5 [, Y# \" d- N
  39.             bigFace = theFaces[ii];. O3 S$ {# P+ s( n# j
  40.         }
    / q2 l' Y$ b- m" p& _
  41.     }
    & B" q" g- j( q. F3 \+ P9 y8 o

  42. 2 I' ?4 u. p& l
  43.     return bigFace->Tag();# d/ f1 f% S# n* o4 l; K
  44. }
    + o$ Q' \+ q, O
复制代码
+ K) W5 v# F' _  A6 b3 r
; G! P! C2 Z/ C9 @/ J: |1 L. o
: q) e* @* e6 \, 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二次开发专题模块培训报名开始啦

    我知道了