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 4098 1

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

admin 楼主

2018-8-23 08:19:35

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

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

x
( }- |! \" C; T' O( I+ z7 r

% X0 P' S  G2 _: B% G2 A( CNX二次开发源码分享: NXOpen C++获取面的面积和周长
  ]! b8 T& ~0 {' T
4 R7 X4 i: y! n# `; M! ]

$ J% Q/ J) t- j, w5 }
) f. }, F8 V+ P0 G: M8 z

' Z: Y. N2 z* P8 ]" _3 W4 |+ h, Z8 I$ S
[mw_shl_code=cpp,true]double MyClass::MeasureFaceArea(TaggedObject* face_tag)
0 N9 `! N% p6 a7 o* L{% i$ |+ f3 N( ]& e/ g+ A
    char str[256];: N1 o+ b6 s9 o8 Q2 M+ |$ N
        6 @& ]' K& p8 e: O# r; Q
    Unit *unit1(dynamic_cast<Unit *>(workPart->UniTCollection()->FindObject("SquareMilliMeter")));6 P) Z& v, W( Y! s
    Unit *unit2(dynamic_cast<Unit *>(workPart->UnitCollection()->FindObject("MilliMeter")));- m( A3 U' O, c  o; I. Z2 J
) j) _+ _) a& ?
    //FaceCollector issue is fixed in NX98 `7 Y3 K% o- F! t. L
    NXObject *nullNXObject(NULL);8 b! _: ?% D6 \" F% @1 U0 F/ q8 }9 t
    MeasureFaceBuilder *measureFaceBuilder1;
3 r# Y$ u/ }& j, M1 F) b1 M) r    measureFaceBuilder1 = workPart->MeasureManager()->CreateMeasureFaceBuilder(nullNXObject);
2 E3 ~9 B% A. a: N$ h  `5 ~% ?' ~        * {8 r# C* W+ N. y! D5 ^3 l
    Face *face1 = dynamic_cast<Face *>(face_tag);
  L$ t* `: y  P9 p3 B2 n    vector<Face *> faces1(1);/ l. Q7 D  {9 d5 H. l8 q
    faces1[0] = face1;
" ]* Q' o. [' S# C; ^$ r    FaceDumbRule *faceDumbRule1;8 u# ]: {& x; Q; L" O# |% ?
    faceDumbRule1 = workPart->ScRuleFactory()->CreateRuleFaceDumb(faces1);3 X: }8 J  v6 q: o9 j
    8 N4 g2 I8 l7 @6 ?! ^9 l
    std::vector<SelectionIntentRule *> rules1(1);
' T3 F- i( o& X/ j    rules1[0] = faceDumbRule1;
3 T- V7 R  b" i5 Y# {$ ~* }    measureFaceBuilder1->FaceCollector()->ReplaceRules(rules1, false);
4 ~- S9 n$ X# I3 E# |$ g    NXOpen::NXObject *nxObjct1 = measureFaceBuilder1->Commit();+ E& K- }$ O) D2 O

4 {. v5 o  g% v    NXOpen::ScCollector *scCollector1 = measureFaceBuilder1->FaceCollector();
" W' g! @3 C% j: _( j: o" R( q; }9 @' Y! r7 M& x$ F2 |
    MeasureFaces *measureFaces1;) h4 @. F0 U& }( k
    measureFaces1 = workPart->MeasureManager()->NewFaceProperties(unit1, unit2, 0.99, scCollector1);. M  j( w" V8 h; C" F7 V9 ?; J
4 Y* L$ u( J# |  v$ w- x! c
    double face_area = measureFaces1->Area();- }! X, N8 S0 A! |8 k/ V: X9 {; W+ c8 i
    sprintf_s(str, sizeof(str), "Selected Face Area: = %f",face_area);2 C- f+ ~$ V) e9 W, E
    print(str);
6 C' ?. k/ o- N  i3 S8 E+ ~* z    4 ~! u7 ^' e8 l/ z8 \
    double face_perimeter = measureFaces1->Perimeter();: w3 F6 H5 d/ F0 a( k
    sprintf_s(str, sizeof(str), "Selected Face Perimeter: = %f",face_perimeter);
+ V3 e1 v9 o8 s1 A: x( S4 {7 n: ~    print(str);- X$ V1 U3 h1 T( G3 v+ x# O2 K% q
- V. ?7 l( U3 D0 S# M+ P
    delete measureFaces1;   
7 a# M3 |: A, M    delete faceDumbRule1;" }# b1 o- D9 }+ Q
    measureFaceBuilder1->Destroy();6 {. x7 P9 b8 u) D  O0 q
    return face_area;( I2 e: V& `- \9 w* f) a% B' {
}; e! o$ i2 V% l* S6 R: C3 R& ?
[/mw_shl_code]
: S1 `( ~. p& {9 B0 z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了