环境:Win10, VS2017,NX1907
1.获取所有 图纸 页对象
std::vector<tag_t> GetAllSheet(){ int drawCount = 0; tag_t* drawingTag = NULL; UF_DRAW_ask_drawings(&drawCount, &drawingTag); if (0 == drawCount) { return std::vector<tag_t>(); } std::vector<tag_t> res; for (int i = 0; i < drawCount; ++i) { res.push_back(drawingTag[i]); } return res;}2. 使用 NX 对话框,选择对象 控件 ,选中某一个图纸节点时,获取的不是图纸对象,需要转化
//计算得到005-1@0,返回005-1bool CalSheetUINodeName(tag_t sheetObj, std::string &sheetName){ sheetName = ""; if (NULL_TAG == sheetObj) { return false; } bool res = false; std::string endKeyword = "@0"; //界面上选择的图纸会有后缀名字 std::string tmpName = GetObjName(sheetObj); if (tmpName.size() > endKeyword.size()) { std::string endValue = tmpName.substr(tmpName.size() - endKeyword.size()); if (endValue == endKeyword) { res = true; sheetName = tmpName.substr(0, tmpName.size() - endKeyword.size()); } } return res;}3.判断是否图纸模块
bool IsInDafting(){ int module = UF_APP_NONE; UF_ask_application_module(&module); return (module == UF_APP_DRAFTING);}4.进入图纸模块
void UDS::SwitchDraw(){ NXOpen::Session::GetSession()->ApplicationSwitchImmediate("UG_APP_DRAFTING");}5. 打开图纸页
bool OpenSheet(tag_t sheet){ if (NULL_TAG == sheet) { return false; } NXOpen::Session *theSession = NXOpen::Session::GetSession(); NXOpen::Part *workPart(theSession->Parts()->Work()); NXOpen::Part *displayPart(theSession->Parts()->Display()); NXOpen::Drawings::DraftingDrawingSheet *draftingDrawingSheet1 = (dynamic_cast<NXOpen::Drawings::DraftingDrawingSheet *>(ToNXObj(sheet))); if (NULL == draftingDrawingSheet1) { return false; } draftingDrawingSheet1->Open(); //更新视图 workPart->Views()->WorkView()->UpdateCustomSymbols(); workPart->Drafting()->SetTemplateInstantiationIsComplete(true); return true;}6 图纸页 导出图片
//窗口区域导出图片//文件-导出-图像-(图形区域,png)bool ExportImage(std::string exportPicPath){ NXOpen::Session *theSession = NXOpen::Session::GetSession(); NXOpen::Part *workPart(theSession->Parts()->Work()); NXOpen::Part *displayPart(theSession->Parts()->Display()); NXOpen::Gateway::ImageExportBuilder *imageExportBuilder1 = NXOpen::UI::GetUI()->CreateImageExportBuilder(); imageExportBuilder1->SetRegionMode(false); std::vector<int> regiontopleftpoint1(2); const int regiontopleftpoint1_initial_values[] = { 0, 0 }; regiontopleftpoint1.assign(regiontopleftpoint1_initial_values, regiontopleftpoint1_initial_values + 2); imageExportBuilder1->SetRegionTopLeftPoint(regiontopleftpoint1); imageExportBuilder1->SetRegionWidth(1); imageExportBuilder1->SetRegionHeight(1); imageExportBuilder1->SetFileFormat(NXOpen::Gateway::ImageExportBuilder::FileFormatsPng); imageExportBuilder1->SetFileName(exportPicPath); imageExportBuilder1->SetBackgroundOption(NXOpen::Gateway::ImageExportBuilder::BackgroundOptionsOriginal); imageExportBuilder1->SetEnhanceEdges(false); bool res = false; try { NXOpen::NXObject *nXObject1 = imageExportBuilder1->Commit(); res = true; } catch (...) { } imageExportBuilder1->Destroy(); return res;}
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删