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二次开发源码分享: NXOpen C++获取面的面积和周长

[复制链接]

2018-9-11 21:23:07 3983 1

admin 发表于 2018-8-23 08:19:35 |阅读模式

admin 楼主

2018-8-23 08:19:35

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

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

x
  }: @* Y  @3 N5 p

7 A1 R; x0 N/ H: K* _$ xNX二次开发源码分享: NXOpen C++获取面的面积和周长
3 E1 L9 z- U# i" A% `) e  B% f
5 g# h; \4 K$ d0 K
1 j9 {: C; S$ u
+ B, M, ]* b& E  Q# w6 C6 w( k; n" Y

* ^+ \  M! b6 x9 U0 R) x0 {1 k( m, k* Y
" K, m5 V' ]7 S! M& v2 H4 m[mw_shl_code=cpp,true]double MyClass::MeasureFaceArea(TaggedObject* face_tag)
2 J6 {1 Z! ]+ B, O{
9 [% o0 a( r# G7 F2 Q3 b( u    char str[256];8 y, N& A* ]' ^) P3 I8 G. x: i% p! m
        8 V+ S: I5 y% h) D! x- L( W  U# h
    Unit *unit1(dynamic_cast<Unit *>(workPart->UniTCollection()->FindObject("SquareMilliMeter")));2 K3 \, x1 v0 \: K* v! {% B
    Unit *unit2(dynamic_cast<Unit *>(workPart->UnitCollection()->FindObject("MilliMeter")));
& v& U" n% @2 \: l% e) Z+ W- g3 S1 _# @" S( Z' {1 r7 f
    //FaceCollector issue is fixed in NX9
6 ~+ @0 j2 N) T+ [% |    NXObject *nullNXObject(NULL);
, t9 o& |. y1 s' @" @" U    MeasureFaceBuilder *measureFaceBuilder1;! R* Q7 l( }9 U5 I
    measureFaceBuilder1 = workPart->MeasureManager()->CreateMeasureFaceBuilder(nullNXObject);
2 U5 h# c0 x6 p9 v        
- m9 u* G/ G! t4 c5 T3 x8 Z) K    Face *face1 = dynamic_cast<Face *>(face_tag);9 ^. s( O" \6 S) z3 T
    vector<Face *> faces1(1);# N/ S) K0 t; ], [
    faces1[0] = face1;
7 Q1 G) q2 O6 I5 e/ M2 o& U: o/ K/ d    FaceDumbRule *faceDumbRule1;
% b, e% E/ i7 U6 x6 I! u. w    faceDumbRule1 = workPart->ScRuleFactory()->CreateRuleFaceDumb(faces1);; u0 }9 w# X3 T, i& z6 I) t
    6 i6 C1 k! p8 z4 b/ X. U; o
    std::vector<SelectionIntentRule *> rules1(1);
5 Z/ q4 I3 z! W# t7 K    rules1[0] = faceDumbRule1;
& U+ F. i) M: Y$ K. s, M    measureFaceBuilder1->FaceCollector()->ReplaceRules(rules1, false);$ x3 j. w. t5 L1 ~! z
    NXOpen::NXObject *nxObjct1 = measureFaceBuilder1->Commit();# h/ N+ u1 \8 a% }' R: L% C

& W! n& \" f) c% P6 |    NXOpen::ScCollector *scCollector1 = measureFaceBuilder1->FaceCollector();% B0 M' q8 N2 z* g5 B
/ ~5 h1 M9 }) F
    MeasureFaces *measureFaces1;* K. b4 i& H8 g* _) U! T- A- R
    measureFaces1 = workPart->MeasureManager()->NewFaceProperties(unit1, unit2, 0.99, scCollector1);
0 r. b' p3 g$ {# u" V, X. B# \( S- r% G( v% Q+ D( S# c9 m  F
    double face_area = measureFaces1->Area();. X4 E; i9 D& J$ s! I
    sprintf_s(str, sizeof(str), "Selected Face Area: = %f",face_area);2 g; M4 z  B! q2 d
    print(str);
( B9 l/ i" w! ?    - D% l+ {; s5 \) O' T. O( @6 T) y
    double face_perimeter = measureFaces1->Perimeter();  I0 ]( g+ Y. H- Z7 `; m
    sprintf_s(str, sizeof(str), "Selected Face Perimeter: = %f",face_perimeter);6 d3 q, A  o; X( ?1 k
    print(str);
8 Z$ V. [; e! l  ^4 F, O- d' E, q3 D! O) ~* g/ N8 o! j" ?
    delete measureFaces1;   # m+ n4 F3 `0 E. d
    delete faceDumbRule1;
; c+ g0 A7 Z# E! G- t: g# g! D  B7 e    measureFaceBuilder1->Destroy();
$ G, o. s, W0 p& O    return face_area;! b" p: E! n6 I  Q' P
}
. i  P, p, ^, ^( }[/mw_shl_code]* e% I$ S3 Y4 [) O& g0 v" |
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

rkc_555 发表于 2018-9-11 21:23:07

rkc_555 沙发

2018-9-11 21:23:07

这个方法我试过了,我8.5的版本好像不行,计算的面积为0,可以直接创建measureFaces对象,用另一个重载函数,只要两行代码就能计算出面积
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了