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();