许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  NX二次开发:图纸模块相关函数汇总

NX二次开发:图纸模块相关函数汇总

阅读数 7
点赞 0
article_banner

环境: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;}


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空