PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2014-11-4 20:54:40

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

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

x
) _% R+ w/ Y4 S2 z. a- p  p
NX二次开发源码分享:查找体中最大的面积% O4 y6 ~# J' E; S+ A2 n0 O( R6 e
通过MeasureFaces 下的area方法可以得到面的面积进行遍历查询
# l2 t' m- x) w0 ]1 v! M" W) x  V# T8 B) V1 g; I1 x1 Z

+ J$ J. M/ B. ?0 P# B' g) g
  1. #include <NXOpen/Session.hxx>
    / ~4 Q6 B" d* o* H
  2. #include <NXOpen/Part.hxx>; J5 e- u3 {6 j2 R4 X
  3. #include <NXOpen/ParTCollection.hxx>
    ) S' ^% |1 N% [% T' A/ R" p
  4. #include <NXOpen/MeasureManager.hxx>
    6 V1 G1 q5 m" t+ R
  5. #include <NXOpen/MeasureFaces.hxx>% o# \" Z& c( ]* B
  6. #include <NXOpen/NXObject.hxx>: b6 q( d7 e* A9 ]) ?. r
  7. #include <NXOpen/NXObjectManager.hxx>
    1 r3 B! U  J7 o' h+ u8 x% ]
  8. #include <NXOpen/Body.hxx>
    $ u- Y5 y; N9 U8 V/ u1 j1 Z( M
  9. #include <NXOpen/Face.hxx>
    # b8 S: ?6 O7 P/ x- s
  10. #include <NXOpen/Unit.hxx>
    , R: p) o8 X! J* w6 d
  11. #include <NXOpen/UnitCollection.hxx>
    " b0 g$ r* Q8 M% g: l4 C
  12. using namespace NXOpen;; p5 c3 q9 f- G" @/ h5 [0 P

  13. + Z5 o" |; q, i4 g" q) o
  14. static tag_t ask_largest_face_interop(tag_t body_tag)7 H+ j; g- L/ m% F- v: ~2 |
  15. {. f' M. c5 \& Q" i9 @
  16.     Session *theSession = Session::GetSession();
    7 f( V3 O0 C9 d+ |2 T# |& `
  17. ( r; L, f2 e( N& N  j. t' {
  18.     Part *workPart(theSession->Parts()->Work());. o9 X; o8 ^& T2 `
  19. : q7 x- c! h8 x; ]
  20.     Unit *area_units = workPart->UnitCollection()->GetBase("Area");
    / f+ K* P  c) F
  21.     Unit *length_units = workPart->UnitCollection()->GetBase("Length");
    ! j8 x: ]0 Y" J$ W( C

  22. " L1 z' H1 U* Y& R# v( b5 B* \; f
  23.     Body *theBody = dynamic_cast<Body *>(NXObjectManager::Get(body_tag));' d' ?  Y! D' [, t) I3 }% {4 b
  24.     std::vector<Face *> theFaces = theBody->GetFaces();
    2 @  i/ ]1 p9 s6 Z

  25. . w& R1 u9 H: |' u& ^! p1 G
  26.     double bigArea = 0;
    6 ~5 p- H* @* H) k: K' Z: m4 \  G
  27.     Face *bigFace;8 R$ J8 y9 J$ h1 S0 F+ u& T
  28.     std::vector<IParameterizedSurface *> theFace(1);
    , Q7 ^" E: p# |* O/ w
  29.     for (int ii = 0; ii < theFaces.size(); ii++); F9 O7 O6 q& Q. L. U( v
  30.     {0 g8 O8 s  e: x' ?% g) n7 |0 ]
  31.         theFace[0] = dynamic_cast<IParameterizedSurface *>(theFaces[ii]);( C. N) m3 x  x
  32. # W) L/ g( {' c9 L3 d; M
  33.         MeasureFaces *theMeasure = workPart->MeasureManager()->1 O9 Z5 b( y: T7 G. X, t
  34.             NewFaceProperties(area_units, length_units, 0.999, theFace);
    + u* G6 D7 Y+ d7 W- Q- W9 R
  35. & \9 o. @$ R% x/ c, L* E- s5 {
  36.         if (theMeasure->Area() > bigArea)
    ( `4 L4 n4 W4 G" }; P7 h% \
  37.         {9 G- c5 L( q8 ], o
  38.             bigArea = theMeasure->Area();# a6 }# Z. ^3 R+ \- x. j
  39.             bigFace = theFaces[ii];) T' {- i% z, |) `% B3 q
  40.         }
    ' a" E7 B  I0 K5 T/ N, c( N
  41.     }" \  V/ ?6 l/ a# L! @8 V1 I
  42. $ k: E, \+ ^" K( a% u
  43.     return bigFace->Tag();
    4 F3 A2 N" n" f8 n4 A
  44. }
    $ @5 `+ v* l' |5 C- A) ~
复制代码
; r" ?- f! ?% ]; [9 T" |% r, e
& |* _% S3 h7 N7 b

+ \+ [, a0 i+ N2 V6 f/ p* i
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ 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二次开发专题模块培训报名开始啦

    我知道了