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

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

[复制链接]

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

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

admin 楼主

2014-11-4 20:54:40

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

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

x

7 M# I) r% G4 q' S9 h. s7 E$ ?8 qNX二次开发源码分享:查找体中最大的面积
2 [' W' T( P& ^" f: A通过MeasureFaces 下的area方法可以得到面的面积进行遍历查询" F$ n0 }3 Y3 Y- N) f
: D2 ^; r( b& A* @, m

% s7 z+ b  b: f
  1. #include <NXOpen/Session.hxx>  v, ^7 R; g4 S
  2. #include <NXOpen/Part.hxx>
    7 B5 T2 Y) q0 L- \9 ~% ]: P
  3. #include <NXOpen/ParTCollection.hxx>
    : F6 ^7 q9 \1 W  _# q, ^
  4. #include <NXOpen/MeasureManager.hxx>
    ! c: ^9 y% K5 I9 |% A2 j
  5. #include <NXOpen/MeasureFaces.hxx>  y4 s( \3 i( e( f; w+ G
  6. #include <NXOpen/NXObject.hxx>/ `9 J- `0 V% O* u
  7. #include <NXOpen/NXObjectManager.hxx>
    : _# ]8 z- p3 j. a' ^2 D
  8. #include <NXOpen/Body.hxx>
    : g1 t3 X5 I! Z: m' ~3 A
  9. #include <NXOpen/Face.hxx>
    $ U& [) o5 ~) z0 i+ S
  10. #include <NXOpen/Unit.hxx>
    " r+ [" t7 h; y0 |
  11. #include <NXOpen/UnitCollection.hxx>8 L, X* A4 p1 g, b3 b/ i( Q
  12. using namespace NXOpen;) h5 y' S" Y+ ?/ @# y

  13. 0 w; Z# v2 t! @8 c7 I$ u1 d; F; X
  14. static tag_t ask_largest_face_interop(tag_t body_tag)4 B& ?2 a  t8 _- u
  15. {
    # c; \: T5 a! ~; {1 P4 a+ g
  16.     Session *theSession = Session::GetSession();- d) p: i4 H. @. x" R2 C# q4 p

  17. + y* E1 m7 e1 [( D
  18.     Part *workPart(theSession->Parts()->Work());
    ) \5 y! b6 E  q/ X8 ]
  19. 1 Q* v: b) L# ^$ D2 o' w
  20.     Unit *area_units = workPart->UnitCollection()->GetBase("Area");
    1 C6 ?! o+ I9 O2 J; a8 A- m, O6 i
  21.     Unit *length_units = workPart->UnitCollection()->GetBase("Length");
    - G* l6 b4 q8 L' x. w2 e6 v
  22. 0 j7 T/ [  m# M) P3 W
  23.     Body *theBody = dynamic_cast<Body *>(NXObjectManager::Get(body_tag));) A2 m. J8 J' h% s% [5 ~
  24.     std::vector<Face *> theFaces = theBody->GetFaces();6 d- w1 R9 W5 E  q0 E$ b* ?
  25. " C  r0 Q! Z( a  s5 Z- w' l% `& \7 p
  26.     double bigArea = 0;  r) V' j# E! T  Q
  27.     Face *bigFace;
    ) N% T: y  B2 J& y0 G+ N
  28.     std::vector<IParameterizedSurface *> theFace(1);
    8 o5 R# |! t6 n$ [
  29.     for (int ii = 0; ii < theFaces.size(); ii++)
    : r, J2 C3 U8 W7 T# Q9 j9 ~
  30.     {
    + \; c1 R% I+ }( ^
  31.         theFace[0] = dynamic_cast<IParameterizedSurface *>(theFaces[ii]);
    ! K' a& G& |: l6 R

  32. - ~/ W- T) K5 P; G$ z, c2 u; U9 s
  33.         MeasureFaces *theMeasure = workPart->MeasureManager()->' }( n9 [9 w% m) R& t0 v7 \
  34.             NewFaceProperties(area_units, length_units, 0.999, theFace);6 d) x; D* c9 |. ^0 q

  35. ! f' @- I/ Q3 d/ V# J
  36.         if (theMeasure->Area() > bigArea)7 F/ `5 d4 W# \9 A. W
  37.         {+ Q# }( b' {2 ?4 x
  38.             bigArea = theMeasure->Area();3 t- [0 `0 H+ @
  39.             bigFace = theFaces[ii];& m8 b, x8 l2 `  e
  40.         }/ X5 K0 h/ i. U; V# I5 j9 u
  41.     }6 E" v8 V6 A6 G1 c0 N
  42. 8 s2 G) [' p6 @- M' O
  43.     return bigFace->Tag();
    6 s6 R5 n# m7 \  z- x# V
  44. }  c0 f* E, X0 `( e# ^1 u* ~
复制代码

- f7 ~: Q; I2 C7 O; D, d6 G+ `1 s5 ]* }+ ^3 ]4 _1 F) o3 Z

3 Q6 r$ T4 v# ]9 H8 O" R) T
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了