NXOpen 批量導出STP、IGS、DWG、DXF、PDF(五合一)


C++

關鍵代碼

//導出STP
void ExportFile::ExportSTPfile()
{
    try
    {
  UF_initialize();

   string  filepath = strDir +  "\\" ;//拼接路徑
   //獲取圖層過濾
   PropertyList *stringLayerProps = stringLayer->GetProperties();
   NXString filelayer = stringLayerProps->GetString("Value");
   delete stringLayerProps;
   stringLayerProps = NULL; 

   //獲取NX路徑
   char *translationNX;
   UF_translate_variable("UGII_BASE_DIR", &translationNX);
   string fileDIR1 = translationNX;
   string fileDIR2 = "\\step214ug\\ugstep214.def";
   string step214ugfilePath = fileDIR1+fileDIR2;
   //theSession->ListingWindow()->WriteLine(step214ugfilePath);

   for ( int i = 0 ; i < listboxselectStrings.size(); i ++ )
   {
    string ExportPatFilePath = filepath + listboxselectStrings[i].GetLocaleText() + ".prt";
    string ExportStpFilePath = filepath + listboxselectStrings[i].GetLocaleText() + ".stp";
    //theSession->ListingWindow()->WriteLine(ExportPatFilePath);
    //theSession->ListingWindow()->WriteLine(ExportStpFilePath);

   //指定本地數據文件
   int STPPathStatus=0;
   //測試文件或目錄是否存在
   UF_CFI_ask_file_exist (ExportStpFilePath.c_str(),&STPPathStatus);
   //如果文件已存在,先刪除掉
   if ( STPPathStatus == 0 ) // 0表示文件存在 1表示文件不存在
   {
    DeleteFile(ExportStpFilePath.c_str()); 
   }

    //導出STP
   Step214Creator *step214Creator1;
   step214Creator1 = theSession->DexManager()->CreateStep214Creator();
 
   //設置要被導出的PRT
   step214Creator1->SetInputFile(ExportPatFilePath);
 
   //設置導出的位置和文件名
   step214Creator1->SetOutputFile(ExportStpFilePath);
 
   step214Creator1->ObjectTypes()->SetCurves(true);
   step214Creator1->ObjectTypes()->SetSurfaces(true);
   step214Creator1->ObjectTypes()->SetSolids(true);
   step214Creator1->ObjectTypes()->SetCsys(true);
   step214Creator1->ObjectTypes()->SetProductData(true);
   step214Creator1->SetValidationProperties(true);
 
 
   step214Creator1->SetExportExtRef(true);
   step214Creator1->SetSettingsFile(step214ugfilePath);
   step214Creator1->ObjectTypes()->SetProductData(false);
   step214Creator1->SetExportExtRef(false);
 
   step214Creator1->SetValidationProperties(false);
   step214Creator1->SetFileSaveFlag(false);
   step214Creator1->SetLayerMask(filelayer);//圖層過濾
   NXObject *nXObject1;
   nXObject1 = step214Creator1->Commit();
   step214Creator1->Destroy();  
  
   }

   UF_terminate();

 

    }
    catch(exception& ex)
    {
        //---- Enter your exception handling code here -----
        ExportFile::theUI->NXMessageBox()->Show("導出STP", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
}
//導出IGS
void ExportFile::ExportIGSfile()
{
    try
    {
  UF_initialize();

   string  filepath = strDir +  "\\" ;//拼接路徑
   //獲取圖層過濾
   PropertyList *stringLayerProps = stringLayer->GetProperties();
   NXString filelayer = stringLayerProps->GetString("Value");
   delete stringLayerProps;
   stringLayerProps = NULL; 

   //獲取NX路徑
   char *translationNX;
   UF_translate_variable("UGII_BASE_DIR", &translationNX);
   string fileDIR1 = translationNX;
   string fileDIR2 = "\\iges\\igesexport.def";
   string stepigsfilePath = fileDIR1+fileDIR2;
   //theSession->ListingWindow()->WriteLine(step214ugfilePath);

   for ( int i = 0 ; i < listboxselectStrings.size(); i ++ )
   {
    string ExportPatFilePath = filepath + listboxselectStrings[i].GetLocaleText() + ".prt";
    string ExportIgsFilePath = filepath + listboxselectStrings[i].GetLocaleText() + ".igs";
    //theSession->ListingWindow()->WriteLine(ExportPatFilePath);
    //theSession->ListingWindow()->WriteLine(ExportStpFilePath);

   //指定本地數據文件
   int STPPathStatus=0;
   //測試文件或目錄是否存在
   UF_CFI_ask_file_exist (ExportIgsFilePath.c_str(),&STPPathStatus);
   //如果文件已存在,先刪除掉
   if ( STPPathStatus == 0 ) // 0表示文件存在 1表示文件不存在
   {
    DeleteFile(ExportIgsFilePath.c_str()); 
   }

    //導出IGS
   IgesCreator *igesCreator1;
   igesCreator1 = theSession->DexManager()->CreateIgesCreator();
   igesCreator1->SetExportModelData(true);
   igesCreator1->SetExportDrawings(true);
   igesCreator1->SetMapTabCylToBSurf(true);
   igesCreator1->SetBcurveTol(0.0508);
   igesCreator1->SetIdenticalPointResolution(0.001);
   igesCreator1->SetMaxThreeDMdlSpace(10000.0);
   igesCreator1->ObjectTypes()->SetCurves(true);
   igesCreator1->ObjectTypes()->SetSurfaces(true);
   igesCreator1->ObjectTypes()->SetAnnotations(true);
   igesCreator1->ObjectTypes()->SetStructures(true);
   igesCreator1->ObjectTypes()->SetSolids(true);
   igesCreator1->SetSettingsFile(stepigsfilePath);//日記文件
   igesCreator1->SetMaxLineThickness(2.0);
   igesCreator1->SetSysDefmaxThreeDMdlSpace(true);
   igesCreator1->SetSysDefidenticalPointResolution(true);
   igesCreator1->SetInputFile(ExportPatFilePath);//需導出的源文件
   igesCreator1->SetOutputFile(ExportIgsFilePath);//導出的IGS
   igesCreator1->SetFileSaveFlag(false);
   igesCreator1->SetLayerMask(filelayer);//圖層過濾
   igesCreator1->SetDrawingList("");
   igesCreator1->SetViewList("Top,Front,Right,Back,Bottom,Left,Isometric,Trimetric,User Defined");
   NXObject *nXObject1;
   nXObject1 = igesCreator1->Commit();
   igesCreator1->Destroy();
  
   }

   UF_terminate();
    }
    catch(exception& ex)
    {
        //---- Enter your exception handling code here -----
        ExportFile::theUI->NXMessageBox()->Show("導出IGS", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
}
//導出DWG
void ExportFile::ExportDWGfile()
{
    try
    {
   UF_initialize();
  
    string  filepath = strDir +  "\\" ;//拼接路徑
   Part *workPart(theSession->Parts()->Work());
   Part *displayPart(theSession->Parts()->Display());

   //獲取圖層過濾
   PropertyList *stringLayerProps = stringLayer->GetProperties();
   NXString filelayer = stringLayerProps->GetString("Value");
   delete stringLayerProps;
   stringLayerProps = NULL; 

   //獲取NX路徑
   char *translationNX;
   UF_translate_variable("UGII_BASE_DIR", &translationNX);
   string fileDIR1 = translationNX;
   string fileDIR2 = "\\dxfdwg\\dxfdwg.def";
   string step214ugfilePath = fileDIR1+fileDIR2;
   //theSession->ListingWindow()->WriteLine(step214ugfilePath);

   for ( int i = 0 ; i < listboxselectStrings.size(); i ++ )
   {
    string ExportPatFilePath = filepath + listboxselectStrings[i].GetLocaleText() + ".prt";

    //打開文件(沒打開直接打開,已打開重新打開)
    BasePart *basePart1;
    PartLoadStatus *partLoadStatus1;
    try
    {
     // 文件已存在
     basePart1 = theSession->Parts()->OpenBaseDisplay(ExportPatFilePath, &partLoadStatus1);
    }
    catch (const NXException &ex)
    {
     ex.AssertErrorCode(1020004);
    }

    Part *part1(dynamic_cast<Part *>(theSession->Parts()->FindObject(listboxselectStrings[i].GetLocaleText())));
    BasePart *basePart2;
    PartReopenReport *partReopenReport1;
    basePart2 = part1->Reopen(BasePart::CloseWholeTreeFalse, BasePart::CloseModifiedCloseModified, NULL, &partReopenReport1);

    delete partReopenReport1;
    Session::UndoMarkId markId1;
    markId1 = theSession->SetUndoMark(Session::MarkVisibilityVisible, "Change Display Part");

    Part *part2(dynamic_cast<Part *>(basePart2));
    PartLoadStatus *partLoadStatus2;
    PartCollection::SdpsStatus status1;
    status1 = theSession->Parts()->SetDisplay(part2, true, true, &partLoadStatus2);

    workPart = theSession->Parts()->Work();
    displayPart = theSession->Parts()->Display();
    delete partLoadStatus2;
 
   //得到所有圖紙頁
   vector<NXOpen::Drawings::DrawingSheet*> AllSheetsVector;//存到vector
   NXOpen::Drawings::DrawingSheet* AllSheets;//定義類型
   NXOpen::Drawings::DrawingSheetCollection::iterator Ite = workPart->DrawingSheets()->begin();
   for (; Ite != workPart->DrawingSheets()->end(); ++Ite)//迭代器遍歷
   {
    AllSheets = (*Ite);
    AllSheetsVector.push_back(AllSheets);
   }

   for ( int j = 0 ; j < AllSheetsVector.size() ; j ++ )
   {
    //打開圖紙頁
    AllSheetsVector[j]->Open();

    NXString SheetsName = AllSheetsVector[j]->Name();
    //轉到2D
    Drawings::DrawingSheet *drawingSheet1(dynamic_cast<Drawings::DrawingSheet *>(workPart->DrawingSheets()->FindObject(SheetsName)));
    drawingSheet1->Open();
   
    Session::UndoMarkId markId1;
    markId1 = theSession->SetUndoMark(Session::MarkVisibilityVisible, "Enter Drafting");
   
    workPart->Views()->WorkView()->UpdateCustomSymbols();
   
    workPart->Drafting()->SetTemplateInstantiationIsComplete(true);

    //得到當前圖紙頁
    NXOpen::Drawings::DrawingSheet* MySheet = workPart->DrawingSheets()->CurrentDrawingSheet();

    //得到圖紙頁中的所有視圖
    vector<NXOpen::Drawings::DraftingView*> MySheetViews = MySheet->GetDraftingViews();

    //將工程圖頁中的所有視圖進行更新
    workPart->DraftingViews()->UpdateViews(DraftingViewCollection::ViewUpdateOptionAll, MySheet);
    
    string ExportdwgFilePath = filepath + listboxselectStrings[i].GetLocaleText() +"_" + SheetsName.GetLocaleText() + ".dwg";
    //theSession->ListingWindow()->WriteLine(ExportPDFFilePath);

    //指定本地數據文件
    int STPPathStatus=0;
    //測試文件或目錄是否存在
    UF_CFI_ask_file_exist (ExportdwgFilePath.c_str(),&STPPathStatus);
    //如果文件已存在,先刪除掉
    if ( STPPathStatus == 0 ) // 0表示文件存在 1表示文件不存在
    {
     DeleteFile(ExportdwgFilePath.c_str()); 
    }

    //導出DWG
    DxfdwgCreator *dxfdwgCreator1;
    dxfdwgCreator1 = theSession->DexManager()->CreateDxfdwgCreator();
    dxfdwgCreator1->SetExportData(DxfdwgCreator::ExportDataOptionDrawing);
    dxfdwgCreator1->SetAutoCADRevision(DxfdwgCreator::AutoCADRevisionOptionsR2004);
    dxfdwgCreator1->SetViewEditMode(true);
    dxfdwgCreator1->SetFlattenAssembly(true);
    //dxfdwgCreator1->SetExportScaleValue("1:1");
    //dxfdwgCreator1->SetOutputFileType(DxfdwgCreator::OutputFileTypeOptionDxf);//導出DXF
    dxfdwgCreator1->SetOutputFileType(DxfdwgCreator::OutputFileTypeOptionDwg);//導出DWG
    dxfdwgCreator1->SetInputFile(ExportPatFilePath);//需導出的源文件
    dxfdwgCreator1->SetOutputFile(ExportdwgFilePath);//導出的文件
    dxfdwgCreator1->SetSettingsFile(step214ugfilePath);//記錄文件
    dxfdwgCreator1->ObjectTypes()->SetCurves(true);
    dxfdwgCreator1->SetAutoCADRevision(DxfdwgCreator::AutoCADRevisionOptionsR2004);//導出對應的CAD版本
    dxfdwgCreator1->ObjectTypes()->SetAnnotations(true);
    dxfdwgCreator1->ObjectTypes()->SetStructures(true);
    dxfdwgCreator1->SetLayerMask(filelayer);//圖層

    NXObject *nXObject1;
    nXObject1 = dxfdwgCreator1->Commit();

    dxfdwgCreator1->Destroy();
    
  
   }
 
   }


   UF_terminate();
    }
    catch(exception& ex)
    {
        //---- Enter your exception handling code here -----
        ExportFile::theUI->NXMessageBox()->Show("導出DWG", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
}
//導出DXF
void ExportFile::ExportDXFfile()
{
    try
    {
   UF_initialize();
  
    string  filepath = strDir +  "\\" ;//拼接路徑
   Part *workPart(theSession->Parts()->Work());
   Part *displayPart(theSession->Parts()->Display());

   //獲取圖層過濾
   PropertyList *stringLayerProps = stringLayer->GetProperties();
   NXString filelayer = stringLayerProps->GetString("Value");
   delete stringLayerProps;
   stringLayerProps = NULL; 

   //獲取NX路徑
   char *translationNX;
   UF_translate_variable("UGII_BASE_DIR", &translationNX);
   string fileDIR1 = translationNX;
   string fileDIR2 = "\\dxfdwg\\dxfdwg.def";
   string step214ugfilePath = fileDIR1+fileDIR2;
   //theSession->ListingWindow()->WriteLine(step214ugfilePath);

   for ( int i = 0 ; i < listboxselectStrings.size(); i ++ )
   {
    string ExportPatFilePath = filepath + listboxselectStrings[i].GetLocaleText() + ".prt";

    //打開文件(沒打開直接打開,已打開重新打開)
    BasePart *basePart1;
    PartLoadStatus *partLoadStatus1;
    try
    {
     // 文件已存在
     basePart1 = theSession->Parts()->OpenBaseDisplay(ExportPatFilePath, &partLoadStatus1);
    }
    catch (const NXException &ex)
    {
     ex.AssertErrorCode(1020004);
    }

    Part *part1(dynamic_cast<Part *>(theSession->Parts()->FindObject(listboxselectStrings[i].GetLocaleText())));
    BasePart *basePart2;
    PartReopenReport *partReopenReport1;
    basePart2 = part1->Reopen(BasePart::CloseWholeTreeFalse, BasePart::CloseModifiedCloseModified, NULL, &partReopenReport1);

    delete partReopenReport1;
    Session::UndoMarkId markId1;
    markId1 = theSession->SetUndoMark(Session::MarkVisibilityVisible, "Change Display Part");

    Part *part2(dynamic_cast<Part *>(basePart2));
    PartLoadStatus *partLoadStatus2;
    PartCollection::SdpsStatus status1;
    status1 = theSession->Parts()->SetDisplay(part2, true, true, &partLoadStatus2);

    workPart = theSession->Parts()->Work();
    displayPart = theSession->Parts()->Display();
    delete partLoadStatus2;
 
   //得到所有圖紙頁
   vector<NXOpen::Drawings::DrawingSheet*> AllSheetsVector;//存到vector
   NXOpen::Drawings::DrawingSheet* AllSheets;//定義類型
   NXOpen::Drawings::DrawingSheetCollection::iterator Ite = workPart->DrawingSheets()->begin();
   for (; Ite != workPart->DrawingSheets()->end(); ++Ite)//迭代器遍歷
   {
    AllSheets = (*Ite);
    AllSheetsVector.push_back(AllSheets);
   }

   for ( int j = 0 ; j < AllSheetsVector.size() ; j ++ )
   {
    //打開圖紙頁
    AllSheetsVector[j]->Open();

    NXString SheetsName = AllSheetsVector[j]->Name();
    //轉到2D
    Drawings::DrawingSheet *drawingSheet1(dynamic_cast<Drawings::DrawingSheet *>(workPart->DrawingSheets()->FindObject(SheetsName)));
    drawingSheet1->Open();
   
    Session::UndoMarkId markId1;
    markId1 = theSession->SetUndoMark(Session::MarkVisibilityVisible, "Enter Drafting");
   
    workPart->Views()->WorkView()->UpdateCustomSymbols();
   
    workPart->Drafting()->SetTemplateInstantiationIsComplete(true);

    //得到當前圖紙頁
    NXOpen::Drawings::DrawingSheet* MySheet = workPart->DrawingSheets()->CurrentDrawingSheet();

    //得到圖紙頁中的所有視圖
    vector<NXOpen::Drawings::DraftingView*> MySheetViews = MySheet->GetDraftingViews();

    //將工程圖頁中的所有視圖進行更新
    workPart->DraftingViews()->UpdateViews(DraftingViewCollection::ViewUpdateOptionAll, MySheet);
    
    string ExportdxfFilePath = filepath + listboxselectStrings[i].GetLocaleText() +"_" + SheetsName.GetLocaleText() + ".dxf";
    //theSession->ListingWindow()->WriteLine(ExportPDFFilePath);

    //指定本地數據文件
    int STPPathStatus=0;
    //測試文件或目錄是否存在
    UF_CFI_ask_file_exist (ExportdxfFilePath.c_str(),&STPPathStatus);
    //如果文件已存在,先刪除掉
    if ( STPPathStatus == 0 ) // 0表示文件存在 1表示文件不存在
    {
     DeleteFile(ExportdxfFilePath.c_str()); 
    }

    //導出DWG
    DxfdwgCreator *dxfdwgCreator1;
    dxfdwgCreator1 = theSession->DexManager()->CreateDxfdwgCreator();
    dxfdwgCreator1->SetExportData(DxfdwgCreator::ExportDataOptionDrawing);
    dxfdwgCreator1->SetAutoCADRevision(DxfdwgCreator::AutoCADRevisionOptionsR2004);
    dxfdwgCreator1->SetViewEditMode(true);
    dxfdwgCreator1->SetFlattenAssembly(true);
    //dxfdwgCreator1->SetExportScaleValue("1:1");
    dxfdwgCreator1->SetOutputFileType(DxfdwgCreator::OutputFileTypeOptionDxf);//導出DXF
    //dxfdwgCreator1->SetOutputFileType(DxfdwgCreator::OutputFileTypeOptionDwg);//導出DWG
    dxfdwgCreator1->SetInputFile(ExportPatFilePath);//需導出的源文件
    dxfdwgCreator1->SetOutputFile(ExportdxfFilePath);//導出的文件
    dxfdwgCreator1->SetSettingsFile(step214ugfilePath);//記錄文件
    dxfdwgCreator1->ObjectTypes()->SetCurves(true);
    dxfdwgCreator1->SetAutoCADRevision(DxfdwgCreator::AutoCADRevisionOptionsR2004);//導出對應的CAD版本
    dxfdwgCreator1->ObjectTypes()->SetAnnotations(true);
    dxfdwgCreator1->ObjectTypes()->SetStructures(true);
    dxfdwgCreator1->SetLayerMask(filelayer);//圖層

    NXObject *nXObject1;
    nXObject1 = dxfdwgCreator1->Commit();

    dxfdwgCreator1->Destroy();
    
  
   }
 
   }


   UF_terminate();

    }
    catch(exception& ex)
    {
        //---- Enter your exception handling code here -----
        ExportFile::theUI->NXMessageBox()->Show("導出DXF", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
}
//導出PDF
void ExportFile::ExportPDFfile()
{
    try
    {
   UF_initialize();
  
    string  filepath = strDir +  "\\" ;//拼接路徑
   Part *workPart(theSession->Parts()->Work());
   Part *displayPart(theSession->Parts()->Display());

   for ( int i = 0 ; i < listboxselectStrings.size(); i ++ )
   {
    string ExportPatFilePath = filepath + listboxselectStrings[i].GetLocaleText() + ".prt";
    //string ExportPDFFilePath = filepath + listboxselectStrings[i].GetLocaleText() + ".pdf";
    //theSession->ListingWindow()->WriteLine(ExportPatFilePath);
    //theSession->ListingWindow()->WriteLine(Exportx_tFilePath);

    //打開文件(沒打開直接打開,已打開重新打開)
    BasePart *basePart1;
    PartLoadStatus *partLoadStatus1;
    try
    {
     // 文件已存在
     basePart1 = theSession->Parts()->OpenBaseDisplay(ExportPatFilePath, &partLoadStatus1);
    }
    catch (const NXException &ex)
    {
     ex.AssertErrorCode(1020004);
    }

    Part *part1(dynamic_cast<Part *>(theSession->Parts()->FindObject(listboxselectStrings[i].GetLocaleText())));
    BasePart *basePart2;
    PartReopenReport *partReopenReport1;
    basePart2 = part1->Reopen(BasePart::CloseWholeTreeFalse, BasePart::CloseModifiedCloseModified, NULL, &partReopenReport1);

    delete partReopenReport1;
    Session::UndoMarkId markId1;
    markId1 = theSession->SetUndoMark(Session::MarkVisibilityVisible, "Change Display Part");

    Part *part2(dynamic_cast<Part *>(basePart2));
    PartLoadStatus *partLoadStatus2;
    PartCollection::SdpsStatus status1;
    status1 = theSession->Parts()->SetDisplay(part2, true, true, &partLoadStatus2);

    workPart = theSession->Parts()->Work();
    displayPart = theSession->Parts()->Display();
    delete partLoadStatus2;
 
   //得到所有圖紙頁
   vector<NXOpen::Drawings::DrawingSheet*> AllSheetsVector;//存到vector
   NXOpen::Drawings::DrawingSheet* AllSheets;//定義類型
   NXOpen::Drawings::DrawingSheetCollection::iterator Ite = workPart->DrawingSheets()->begin();
   for (; Ite != workPart->DrawingSheets()->end(); ++Ite)//迭代器遍歷
   {
    AllSheets = (*Ite);
    AllSheetsVector.push_back(AllSheets);
   }

   for ( int j = 0 ; j < AllSheetsVector.size() ; j ++ )
   {
    //打開圖紙頁
    AllSheetsVector[j]->Open();

    NXString SheetsName = AllSheetsVector[j]->Name();
    //轉到2D
    Drawings::DrawingSheet *drawingSheet1(dynamic_cast<Drawings::DrawingSheet *>(workPart->DrawingSheets()->FindObject(SheetsName)));
    drawingSheet1->Open();
   
    Session::UndoMarkId markId1;
    markId1 = theSession->SetUndoMark(Session::MarkVisibilityVisible, "Enter Drafting");
   
    workPart->Views()->WorkView()->UpdateCustomSymbols();
   
    workPart->Drafting()->SetTemplateInstantiationIsComplete(true);

    //得到當前圖紙頁
    NXOpen::Drawings::DrawingSheet* MySheet = workPart->DrawingSheets()->CurrentDrawingSheet();

    //得到圖紙頁中的所有視圖
    vector<NXOpen::Drawings::DraftingView*> MySheetViews = MySheet->GetDraftingViews();

    //將工程圖頁中的所有視圖進行更新
    workPart->DraftingViews()->UpdateViews(DraftingViewCollection::ViewUpdateOptionAll, MySheet);
    
    string ExportPDFFilePath = filepath + listboxselectStrings[i].GetLocaleText() +"_" + SheetsName.GetLocaleText() + ".pdf";
    //theSession->ListingWindow()->WriteLine(ExportPDFFilePath);

    //指定本地數據文件
    int STPPathStatus=0;
    //測試文件或目錄是否存在
    UF_CFI_ask_file_exist (ExportPDFFilePath.c_str(),&STPPathStatus);
    //如果文件已存在,先刪除掉
    if ( STPPathStatus == 0 ) // 0表示文件存在 1表示文件不存在
    {
     DeleteFile(ExportPDFFilePath.c_str()); 
    }

    //導出PDF
     tag_t drawing_tag = NULL_TAG;
     UF_DRAW_ask_current_drawing(&drawing_tag);
 
     if (drawing_tag != NULL_TAG)
     {
      PrintPDFBuilder *printPDFBuilder1;
      printPDFBuilder1 = workPart->PlotManager()->CreatePrintPdfbuilder();
 
      printPDFBuilder1->SetColors(PrintPDFBuilder::ColorBlackOnWhite); //ColorAsDisplayed 顯示色
      printPDFBuilder1->SetWidths(PrintPDFBuilder::WidthStandardWidths);
      printPDFBuilder1->SetSize(PrintPDFBuilder::SizeOptionScaleFactor);
      printPDFBuilder1->SetScale(1.0);
      printPDFBuilder1->SetOutputText(PrintPDFBuilder::OutputTextOptionPolylines);
      printPDFBuilder1->SetUnits(PrintPDFBuilder::UnitsOptionMetric);
 
      std::vector<NXObject *> sheets1(1);
      Drawings::DrawingSheet *drawingSheet2(dynamic_cast<Drawings::DrawingSheet *>(NXOpen::NXObjectManager::Get(drawing_tag)));
      sheets1[0] = drawingSheet2;
      printPDFBuilder1->SourceBuilder()->SetSheets(sheets1);
      printPDFBuilder1->SetFilename(ExportPDFFilePath);

      NXObject *nXObject1;
      nXObject1 = printPDFBuilder1->Commit();
      printPDFBuilder1->Destroy();
     }
  
   }
 
   }


   UF_terminate();

    }
    catch(exception& ex)
    {
        //---- Enter your exception handling code here -----
        ExportFile::theUI->NXMessageBox()->Show("導出PDF", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
}

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM