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