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

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

admin 楼主

2018-8-23 08:19:35

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

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

x

2 c* F$ i2 A+ ]' C9 N) g1 x
1 N1 _- o" k+ c2 Q5 NNX二次开发源码分享: NXOpen C++获取面的面积和周长
; O6 O- B. T/ b3 x, Q3 |5 y* u) q8 ?
* D5 H" m$ Q+ S( X/ g
; S8 M  a, t7 s" r/ U( D3 L8 Z- a

6 ^0 g6 X% ~& Z" ], f

, L) {# t/ D% o
& C, G/ F  {# U. g[mw_shl_code=cpp,true]double MyClass::MeasureFaceArea(TaggedObject* face_tag)
# l+ r8 r' t/ c+ Y$ Q{
* i) z% B1 F7 ]: m5 Z) i7 F    char str[256];
& T& w* o% x! }& A+ @4 j7 d' u        
, U# q, s% e& {0 z& k& ?    Unit *unit1(dynamic_cast<Unit *>(workPart->UniTCollection()->FindObject("SquareMilliMeter")));
) R$ p5 j5 |9 N) f( O$ X  g. }$ Z    Unit *unit2(dynamic_cast<Unit *>(workPart->UnitCollection()->FindObject("MilliMeter")));
: q' q* x" }# `; ~
( I! |; D# T) \9 B. J5 |- B2 O    //FaceCollector issue is fixed in NX9
+ K* O$ f' H' I4 c. m* G    NXObject *nullNXObject(NULL);* a2 Y2 Z5 B1 W2 J  x3 ~
    MeasureFaceBuilder *measureFaceBuilder1;" b8 T2 G( @& n& K: H/ S
    measureFaceBuilder1 = workPart->MeasureManager()->CreateMeasureFaceBuilder(nullNXObject);
, r0 Q$ Z# N1 E) y        
5 u6 ]" ^% z7 D( Q3 @    Face *face1 = dynamic_cast<Face *>(face_tag);- z7 J' P# Q7 v3 ]
    vector<Face *> faces1(1);
9 `: X4 w* m6 g5 z8 |& ?( t& B    faces1[0] = face1;
3 [$ E2 `2 Y, P. J    FaceDumbRule *faceDumbRule1;( T, ~( z7 u& y# H! d
    faceDumbRule1 = workPart->ScRuleFactory()->CreateRuleFaceDumb(faces1);) p7 [3 _( X4 P2 |/ W& d' \% G
   
8 Z8 S3 t5 V" h' h/ s    std::vector<SelectionIntentRule *> rules1(1);3 }2 V; u1 Y0 e) s$ d3 o1 y
    rules1[0] = faceDumbRule1;: G6 l( y, r) m# `: f0 ~6 ~6 H
    measureFaceBuilder1->FaceCollector()->ReplaceRules(rules1, false);! M1 \+ z' z/ p: t( h. M
    NXOpen::NXObject *nxObjct1 = measureFaceBuilder1->Commit();. k- F% H, o2 W6 W- R2 f/ T# T7 ^& _
; H+ _# ^& I8 p, {0 `8 S
    NXOpen::ScCollector *scCollector1 = measureFaceBuilder1->FaceCollector();
- ?: T2 m& r. L! Z( c5 C7 s: e+ m5 z2 s+ p
    MeasureFaces *measureFaces1;
6 U" k8 f  G+ A* w    measureFaces1 = workPart->MeasureManager()->NewFaceProperties(unit1, unit2, 0.99, scCollector1);
* A6 R9 `7 P5 F7 v
& A+ F2 h  |- c: `! {8 A. g    double face_area = measureFaces1->Area();; D/ p" p. T; e0 X( y0 i9 m, ~
    sprintf_s(str, sizeof(str), "Selected Face Area: = %f",face_area);; l8 o: O) B; z
    print(str);- H8 T- W7 e4 e, W
   
/ ~* ~- [5 a2 g" d    double face_perimeter = measureFaces1->Perimeter();' X: v+ h, R4 v# d9 Z2 C: T
    sprintf_s(str, sizeof(str), "Selected Face Perimeter: = %f",face_perimeter);4 Y, @9 z! e" A6 A# h0 O) u8 w
    print(str);8 I! O- A* Z6 u$ I. a$ {
: Y0 @' h3 T- [( u
    delete measureFaces1;   , e9 e4 e) u4 y$ n8 a- h! s
    delete faceDumbRule1;6 D; M6 G1 f" i, Q! m! i
    measureFaceBuilder1->Destroy();
0 U# D6 ]7 N! [1 {    return face_area;& W" V, b( k1 @4 [  V4 O6 ]0 H
}& B* B" d+ G' _- W- q: M
[/mw_shl_code]; W) G5 [" q) L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了