PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

[二次开发源码] NX二次开发源码分享: NXOpen C++获取面的面积和周长

[复制链接]

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

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

admin 楼主

2018-8-23 08:19:35

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

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

x

2 k7 _3 R( M/ k! r3 E6 m! Y' D" z# r
4 _' P" f6 x9 c( x/ K8 oNX二次开发源码分享: NXOpen C++获取面的面积和周长
! s% J, j6 z& ?# U' W0 s5 `3 W  G. `* j9 l9 s- L

! V4 D+ K) v1 V  }9 i  C9 n# P7 K( y/ b; Z- i8 D0 ^3 b, f% N: a' Z1 B
# i% E5 J( a) ?$ m- S

1 c/ ?9 k8 }# x0 \5 S[mw_shl_code=cpp,true]double MyClass::MeasureFaceArea(TaggedObject* face_tag)
+ I( J- |9 p6 L{
# E2 {1 s( B) P1 m8 i; x2 @4 p    char str[256];
4 m3 V5 Q# i0 u8 w# [/ K. ^* c        $ E( t% {2 t2 ?
    Unit *unit1(dynamic_cast<Unit *>(workPart->UniTCollection()->FindObject("SquareMilliMeter")));
7 U1 J; T5 m& G4 \( x" `    Unit *unit2(dynamic_cast<Unit *>(workPart->UnitCollection()->FindObject("MilliMeter")));
: O" ^7 t& ]8 B  l- V! R' G( Z' ?; ]  J% _- R, G* j) Y
    //FaceCollector issue is fixed in NX90 i$ x; I+ F8 n6 Q
    NXObject *nullNXObject(NULL);6 {. D, z+ J# t) P1 o+ k+ @
    MeasureFaceBuilder *measureFaceBuilder1;# k; n4 U- J* q4 y' E
    measureFaceBuilder1 = workPart->MeasureManager()->CreateMeasureFaceBuilder(nullNXObject);; E9 h/ i0 V6 ^- P7 u" O
          G3 G- X( O( P
    Face *face1 = dynamic_cast<Face *>(face_tag);
6 w* f) s1 ^: e% u    vector<Face *> faces1(1);* J3 i2 L6 Q$ W! v7 T5 J
    faces1[0] = face1;
% }* i9 g$ Z/ ~0 J- X3 E1 w2 {1 X' k    FaceDumbRule *faceDumbRule1;
5 t. Z& ^! _9 E: p3 J) v$ n& _, Q    faceDumbRule1 = workPart->ScRuleFactory()->CreateRuleFaceDumb(faces1);
$ F7 ^& |$ D4 w2 h' ~, S   
$ K  m% Y" M/ h7 Q    std::vector<SelectionIntentRule *> rules1(1);
7 B( l( e, z4 s4 F    rules1[0] = faceDumbRule1;3 G2 k8 C- T9 K
    measureFaceBuilder1->FaceCollector()->ReplaceRules(rules1, false);6 r0 F! D9 b9 @
    NXOpen::NXObject *nxObjct1 = measureFaceBuilder1->Commit();: D! }. e9 x7 c! r: i& ]) L; w  ~( W
7 u# K. R& z$ m0 C: `  @% U
    NXOpen::ScCollector *scCollector1 = measureFaceBuilder1->FaceCollector();5 _$ ^0 Q. i1 ]  s* ]5 ?) s

$ A0 t- ~$ C; [    MeasureFaces *measureFaces1;
% h, H0 m* G/ D* x    measureFaces1 = workPart->MeasureManager()->NewFaceProperties(unit1, unit2, 0.99, scCollector1);1 Y. t* q) f& m. o" d" u; m/ i

5 d% A- |- }6 i! B) }9 X1 d    double face_area = measureFaces1->Area();
7 A+ I' P; d4 Y3 @: j+ L    sprintf_s(str, sizeof(str), "Selected Face Area: = %f",face_area);
, w5 h% c0 z+ e3 |+ ?# F. [    print(str);
) U/ p& n, `2 `# `7 z4 i/ F   
; p8 o2 n5 Z6 \9 s4 G    double face_perimeter = measureFaces1->Perimeter();
1 h8 |! v7 a+ x& t8 }0 o    sprintf_s(str, sizeof(str), "Selected Face Perimeter: = %f",face_perimeter);8 [! X% m6 i! D5 S3 F# a" m7 w) K
    print(str);% F6 m) g" Q+ a8 p8 T! n" }

# g. }# c3 @/ U- \    delete measureFaces1;     }; z0 t+ z# x' T/ Z
    delete faceDumbRule1;
. ]& S& ]; d: ^; u    measureFaceBuilder1->Destroy();
# X! G, h6 H) c; J+ g/ X    return face_area;5 \5 d$ Z* k9 P( z5 {# M2 f) n' J
}5 \3 ?" x3 h9 ]- m8 x
[/mw_shl_code]
. e9 P4 g  |' }3 N2 E7 r5 e( Y3 A: b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了