NX二次开发-NXOpen::Drawings::DrawingSheet Class Reference

 1 NX11+VS2013
 2 
 3 
 4 #include <NXOpen/Section.hxx>
 5 #include <NXOpen/SectionCollection.hxx>
 6 #include <NXOpen/Part.hxx>
 7 #include <NXOpen/PartCollection.hxx>
 8 #include <NXOpen/UI.hxx>
 9 #include <NXOpen/Drawings_DrawingSheet.hxx>
10 #include <NXOpen/Drawings_DrawingSheetBuilder.hxx>
11 #include <NXOpen/Drawings_DrawingSheetCollection.hxx>
12 #include <NXOpen/Drawings_DraftingView.hxx>
13 #include <NXOpen/Drawings_DraftingViewCollection.hxx>
14 #include <NXOpen/NXMessageBox.hxx>
15 
16 
17 using namespace NXOpen;
18 using namespace Drawings;
19 using namespace std;
20 
21 
22     NXOpen::Session *theSession = NXOpen::Session::GetSession();
23     NXOpen::Part *workPart(theSession->Parts()->Work());
24     NXOpen::Part *displayPart(theSession->Parts()->Display());
25 
26     //获得当前图纸页
27     NXOpen::Drawings::DrawingSheet* DrawingSheet = workPart->DrawingSheets()->CurrentDrawingSheet();
28 
29     //将此图纸的视图设置为活动草图视图
30     DrawingSheet->ActivateForSketching();
31 
32     //返回边框和区域对象(如果存在)
33     NXOpen::Drawings::BordersAndZones *DrawingBorder = DrawingSheet->BordersAndZones();
34 
35     //获得图纸页上的所有视图
36     std::vector<NXOpen::Drawings::DraftingView *> DrawingViews = DrawingSheet->GetDraftingViews();
37     for (int i = 0; i < DrawingViews.size(); i++)
38     {
39         //获得视图的tag
40         tag_t ViewTag = DrawingViews[i]->Tag();
41 
42         //打印
43         char msg[256];
44         sprintf_s(msg, "%d", ViewTag);
45         UI::GetUI()->NXMessageBox()->Show("标题", NXMessageBox::DialogTypeWarning, msg);
46 
47         //如果定义了工作表区域,则返回工作表的工作表和区域位置或引用
48         NXString SheetZoneReference = DrawingSheet->GetSheetZoneReference(DrawingViews[i]);
49         const char* SheetZoneReference1 = SheetZoneReference.GetLocaleText();
50     }
51 
52     //获得图纸比例
53     double numerator;
54     double denominator;
55     DrawingSheet->GetScale(&numerator, &denominator);
56 
57     //获得图纸的高度
58     double DrawingHeight = DrawingSheet->Height();
59 
60     //如果此图纸的视图是活动草图视图,则返回true。
61     bool IsActive = DrawingSheet->IsActiveForSketching();
62 
63     //返回图纸页是否过期的状态
64     bool IsOutOfDate = DrawingSheet->IsOutOfDate();
65 
66     //获得图纸的长度
67     double DrawLength = DrawingSheet->Length();
68 
69     //打开图纸页
70     DrawingSheet->Open();
71 
72     //获得图纸页的投影角度
73     NXOpen::Drawings::DrawingSheet::ProjectionAngleType ProjectionAngle = DrawingSheet->ProjectionAngle();
74     
75     //设置图纸的参数
76     DrawingSheet->SetParameters(200, 200, 1, 1, DrawingSheet::UnitMillimeters, DrawingSheet::ProjectionAngleTypeFirstAngle, DrawingViews);
77 
78     //返回属于此图纸的SheetDraftingViewCollection实例
79     NXOpen::Drawings::SheetDraftingViewCollection* ViewCollection = DrawingSheet->SheetDraftingViews();
80     
81     //返回属于此图纸的SheetSectionLineCollection实例
82     NXOpen::Drawings::SheetSectionLineCollection * LineCollection = DrawingSheet->SheetSectionLines();
83 
84     //获得图纸的单位
85     NXOpen::Drawings::DrawingSheet::Unit DrawingUnit = DrawingSheet->Units();
86         
87     //返回表示此图纸的视图
88     NXOpen::View* MyView = DrawingSheet->View();

猜你喜欢

转载自www.cnblogs.com/nxopen2018/p/11374130.html