首页 > 其他 > 详细

获取面面积,资料来自录制和网友分享

时间:2020-09-16 14:41:39      阅读:53      评论:0      收藏:0      [点我收藏+]
 1 #include <NXOpen/MeasureBuilder.hxx>
 2 #include <NXOpen/MeasureFaceBuilder.hxx>
 3 #include <NXOpen/MeasureFaces.hxx>
 4 #include <NXOpen/Unit.hxx>
 5 #include <NXOpen/UnitCollection.hxx>
 6 #include <NXOpen/NXObject.hxx>
 7 #include <NXOpen/NXObjectManager.hxx>
 8 
 9 double GetFaceArea(Face* face)//获取面积
10 {
11     Session* theSession = Session::GetSession();
12     Part* workPart(theSession->Parts()->Work());
13     Part* displayPart(theSession->Parts()->Display());
14     NXObject* nullNXObject(NULL);
15     NXOpen::MeasureFaceBuilder* measureFaceBuilder1;
16     measureFaceBuilder1 = workPart->MeasureManager()->CreateMeasureFaceBuilder(nullNXObject);
17     std::vector<IParameterizedSurface*> objects1(1);
18     objects1[0] = face;
19     MeasureFaces* measureFaces1;
20     measureFaces1 = workPart->MeasureManager()->NewFaceProperties(NULL, NULL, 0.9999, objects1);
21     measureFaceBuilder1->Commit();
22     ///measureFaceBuilder1->FaceObjects()->Clear();
23     measureFaceBuilder1->Destroy();
24     theSession->CleanUpFacetedFacesAndEdges();
25     double areaValue = measureFaces1->Area();
26     return areaValue;
27 }
28 
29 double GetFaceArea(tag_t face)//获取面积//重载tag_t
30 {
31     Session* theSession = Session::GetSession();
32     Part* workPart(theSession->Parts()->Work());
33     Part* displayPart(theSession->Parts()->Display());
34     NXObject* nullNXObject(NULL);
35     NXOpen::MeasureFaceBuilder* measureFaceBuilder1;
36     measureFaceBuilder1 = workPart->MeasureManager()->CreateMeasureFaceBuilder(nullNXObject);
37     std::vector<IParameterizedSurface*> objects1(1);
38     objects1[0] = dynamic_cast<NXOpen::Face*>(NXObjectManager::Get(face));
39     //NXOpen::Unit* unit1(dynamic_cast<NXOpen::Unit*>(workPart->UnitCollection()->FindObject("SquareMilliMeter")));
40     //NXOpen::Unit* unit2(dynamic_cast<NXOpen::Unit*>(workPart->UnitCollection()->FindObject("MilliMeter")));
41     MeasureFaces* measureFaces1;
42     measureFaces1 = workPart->MeasureManager()->NewFaceProperties(NULL, NULL, 0.9999, objects1);
43     measureFaceBuilder1->Commit();
44     ///measureFaceBuilder1->FaceObjects()->Clear();
45     measureFaceBuilder1->Destroy();
46     theSession->CleanUpFacetedFacesAndEdges();
47     double areaValue = measureFaces1->Area();
48     return areaValue;
49 }

 

获取面面积,资料来自录制和网友分享

原文:https://www.cnblogs.com/liuxiaoqing1/p/13678741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!