public override void ExecWithArguments(Document doc, NameValueMap map) { try { LogTrace("Processing " + doc.FullFileName); using (new HeartBeat()) { if (doc.DocumentType == DocumentTypeEnum.kPartDocumentObject || doc.DocumentType == DocumentTypeEnum.kAssemblyDocumentObject) // Assembly. { ApplicationAddIn objExportAddin = _inventorApplication .ApplicationAddIns .Cast <ApplicationAddIn>() .FirstOrDefault(item => item.ClassIdString.Equals("{f539fb09-fc01-4260-a429-1818b14d6bac}", StringComparison.OrdinalIgnoreCase)); var translator = (TranslatorAddIn)objExportAddin; if (translator != null) { Trace.TraceInformation("OBJ Export translator is available. Preparing options."); TranslationContext context = _inventorApplication.TransientObjects.CreateTranslationContext(); context.Type = IOMechanismEnum.kFileBrowseIOMechanism; // Set translation options NameValueMap options = _inventorApplication.TransientObjects.CreateNameValueMap(); if (translator.get_HasSaveCopyAsOptions(doc, context, options)) { options.set_Value("ExportFileStructure", 0); // one file options.set_Value("RemoveInternalFacets", true); options.set_Value("ExportUnits", 6); // meters... to match default Unity units options.set_Value("Resolution", 2); // low } DataMedium data = _inventorApplication.TransientObjects.CreateDataMedium(); var outputDir = Path.Combine(Directory.GetCurrentDirectory(), "OBJ"); Directory.CreateDirectory(outputDir); data.FileName = Path.Combine(outputDir, "result.obj"); translator.SaveCopyAs(doc, context, options, data); LogTrace($"Export OBJ to '{data.FileName}'"); } else { LogError("Cannot find OBJ Export translator"); } } else { LogError("Document type is not supported"); } } } catch (Exception e) { LogError("Processing failed. " + e.ToString()); } }
private void SaveAsSVF(Document Doc) { using (new HeartBeat()) { LogTrace("** Saving SVF"); try { ApplicationAddIn svfAddin = _inventorApplication .ApplicationAddIns .Cast <ApplicationAddIn>() .FirstOrDefault(item => item.ClassIdString == "{C200B99B-B7DD-4114-A5E9-6557AB5ED8EC}"); var oAddin = (TranslatorAddIn)svfAddin; if (oAddin != null) { Trace.TraceInformation("SVF Translator addin is available"); TranslationContext oContext = _inventorApplication.TransientObjects.CreateTranslationContext(); // Setting context type oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism; NameValueMap oOptions = _inventorApplication.TransientObjects.CreateNameValueMap(); // Create data medium; DataMedium oData = _inventorApplication.TransientObjects.CreateDataMedium(); Trace.TraceInformation("SVF save"); var sessionDir = Path.Combine(Directory.GetCurrentDirectory(), "SvfOutput"); oData.FileName = Path.Combine(sessionDir, "result.collaboration"); var outputDir = Path.Combine(sessionDir, "output"); var bubbleFileOriginal = Path.Combine(outputDir, "bubble.json"); var bubbleFileNew = Path.Combine(sessionDir, "bubble.json"); // Setup SVF options if (oAddin.get_HasSaveCopyAsOptions(Doc, oContext, oOptions)) { oOptions.set_Value("GeometryType", 1); oOptions.set_Value("EnableExpressTranslation", false); oOptions.set_Value("SVFFileOutputDir", sessionDir); oOptions.set_Value("ExportFileProperties", true); oOptions.set_Value("ObfuscateLabels", false); } LogTrace($"SVF files are output to: {oOptions.get_Value("SVFFileOutputDir")}"); oAddin.SaveCopyAs(Doc, oContext, oOptions, oData); Trace.TraceInformation("SVF can be exported."); LogTrace($"** Saved SVF as {oData.FileName}"); File.Move(bubbleFileOriginal, bubbleFileNew); } } catch (Exception e) { LogError($"********Export to format SVF failed: {e.Message}"); } } }
public void ExportSAT(Document doc) { string currentDirectory = System.IO.Directory.GetCurrentDirectory(); LogTrace("Export SAT file."); TranslatorAddIn SAT_AddIn = (TranslatorAddIn)_inventorApplication.ApplicationAddIns.ItemById["{89162634-02B6-11D5-8E80-0010B541CD80}"]; if (SAT_AddIn == null) { LogTrace("Could not access to SAT translator ..."); return; } TranslationContext oContext = _inventorApplication.TransientObjects.CreateTranslationContext(); NameValueMap map = _inventorApplication.TransientObjects.CreateNameValueMap(); if (SAT_AddIn.get_HasSaveCopyAsOptions(doc, oContext, map)) { LogTrace("SAT: Set context type"); oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism; LogTrace("SAT: create data medium"); DataMedium oData = _inventorApplication.TransientObjects.CreateDataMedium(); LogTrace("SAT save to: " + currentDirectory + "\\export.sat"); oData.FileName = currentDirectory + "\\export.sat"; map.set_Value("GeometryType", 1); SAT_AddIn.SaveCopyAs(doc, oContext, map, oData); LogTrace("SAT exported."); } }
public void RunWithArguments(Document doc, NameValueMap map) { LogTrace("Processing " + doc.FullFileName); try { //string dirPath = System.IO.Path.GetDirectoryName(doc.FullDocumentName); string currentDirPath = System.IO.Directory.GetCurrentDirectory(); #region ExportSAT file Trace.TraceInformation("Export SAT file."); TranslatorAddIn oSAT = null; foreach (ApplicationAddIn item in inventorApplication.ApplicationAddIns) { if (item.ClassIdString == "{89162634-02B6-11D5-8E80-0010B541CD80}") { Trace.TraceInformation("Finded the PDF addin."); oSAT = (TranslatorAddIn)item; break; } else { } } if (oSAT != null) { TranslationContext oContext = inventorApplication.TransientObjects.CreateTranslationContext(); NameValueMap oIgesMap = inventorApplication.TransientObjects.CreateNameValueMap(); if (oSAT.get_HasSaveCopyAsOptions(doc, oContext, oIgesMap)) { Trace.TraceInformation("SAT can be exported."); Trace.TraceInformation("SAT: Set context type"); oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism; Trace.TraceInformation("SAT: create data medium"); DataMedium oData = inventorApplication.TransientObjects.CreateDataMedium(); Trace.TraceInformation("SAT save to: " + currentDirPath + "\\export.sat"); oData.FileName = currentDirPath + "\\export.sat"; oIgesMap.set_Value("GeometryType", 1); oSAT.SaveCopyAs(doc, oContext, oIgesMap, oData); Trace.TraceInformation("SAT exported."); } #endregion GetListOfDirectory(System.IO.Directory.GetCurrentDirectory()); } } catch (Exception e) { LogError("Processing failed. " + e.ToString()); } }
private void SaveAsPdf(Document doc, string fileName) { string dirPath = Directory.GetCurrentDirectory(); TranslatorAddIn oPDF = null; foreach (ApplicationAddIn item in inventorApplication.ApplicationAddIns) { if (item.ClassIdString == "{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}") { Trace.TraceInformation("Found the PDF addin."); oPDF = (TranslatorAddIn)item; break; } else { } } if (oPDF != null) { TranslationContext oContext = inventorApplication.TransientObjects.CreateTranslationContext(); NameValueMap oPdfMap = inventorApplication.TransientObjects.CreateNameValueMap(); if (oPDF.get_HasSaveCopyAsOptions(doc, oContext, oPdfMap)) { Trace.TraceInformation("PDF: can be exported."); Trace.TraceInformation("PDF: Set context type"); oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism; Trace.TraceInformation("PDF: create data medium"); DataMedium oData = inventorApplication.TransientObjects.CreateDataMedium(); string pdfFileName = dirPath + "/" + fileName + ".pdf"; Trace.TraceInformation("PDF save to: " + pdfFileName); oData.FileName = pdfFileName; oPdfMap.set_Value("All_Color_AS_Black", 0); oPDF.SaveCopyAs(doc, oContext, oPdfMap, oData); Trace.TraceInformation("PDF exported."); } } }
private string SaveForgeViewable(Document doc) { string viewableOutputDir = null; //using (new HeartBeat()) { LogTrace($"** Saving SVF"); try { TranslatorAddIn oAddin = null; foreach (ApplicationAddIn item in inventorApplication.ApplicationAddIns) { if (item.ClassIdString == "{C200B99B-B7DD-4114-A5E9-6557AB5ED8EC}") { Trace.TraceInformation("SVF Translator addin is available"); oAddin = (TranslatorAddIn)item; break; } else { } } if (oAddin != null) { Trace.TraceInformation("SVF Translator addin is available"); TranslationContext oContext = inventorApplication.TransientObjects.CreateTranslationContext(); // Setting context type oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism; NameValueMap oOptions = inventorApplication.TransientObjects.CreateNameValueMap(); // Create data medium; DataMedium oData = inventorApplication.TransientObjects.CreateDataMedium(); Trace.TraceInformation("SVF save"); var workingDir = Directory.GetCurrentDirectory(); //Path.GetDirectoryName(doc.FullFileName); var sessionDir = Path.Combine(workingDir, "SvfOutput"); // Make sure we delete any old contents that may be in the output directory first, // this is for local debugging. In DA4I the working directory is always clean if (Directory.Exists(sessionDir)) { Directory.Delete(sessionDir, true); } oData.FileName = Path.Combine(sessionDir, "result.collaboration"); var outputDir = Path.Combine(sessionDir, "output"); var bubbleFileOriginal = Path.Combine(outputDir, "bubble.json"); var bubbleFileNew = Path.Combine(sessionDir, "bubble.json"); // Setup SVF options if (oAddin.get_HasSaveCopyAsOptions(doc, oContext, oOptions)) { oOptions.set_Value("EnableExpressTranslation", false); oOptions.set_Value("SVFFileOutputDir", sessionDir); oOptions.set_Value("ExportFileProperties", true); oOptions.set_Value("ObfuscateLabels", false); } LogTrace($"SVF files are oputput to: {oOptions.get_Value("SVFFileOutputDir")}"); oAddin.SaveCopyAs(doc, oContext, oOptions, oData); Trace.TraceInformation("SVF can be exported."); LogTrace($"Moving bubble file"); File.Move(bubbleFileOriginal, bubbleFileNew); LogTrace($"Deleting result.collaboration"); File.Delete(oData.FileName); viewableOutputDir = sessionDir; LogTrace($"Finished SVF generation"); } } catch (Exception e) { LogError($"********Export to format SVF failed: {e.Message}"); return(null); } } return(viewableOutputDir); }
public void RunWithArguments(Document doc, NameValueMap map) { StringBuilder traceInfo = new StringBuilder("RunWithArguments called with "); traceInfo.Append(doc.DisplayName); Trace.TraceInformation(map.Count.ToString()); // values in map are keyed on _1, _2, etc for (int i = 0; i < map.Count; i++) { traceInfo.Append(" and "); traceInfo.Append(map.Value["_" + (i + 1)]); } Trace.TraceInformation(traceInfo.ToString()); string dirPath = System.IO.Path.GetDirectoryName(doc.FullDocumentName); #region ExportSAT file Trace.TraceInformation("Export SAT file."); TranslatorAddIn oSAT = null; foreach (ApplicationAddIn item in m_inventorServer.ApplicationAddIns) { if (item.ClassIdString == "{89162634-02B6-11D5-8E80-0010B541CD80}") { Trace.TraceInformation("Finded the PDF addin."); oSAT = (TranslatorAddIn)item; break; } else { } } if (oSAT != null) { TranslationContext oContext = m_inventorServer.TransientObjects.CreateTranslationContext(); NameValueMap oIgesMap = m_inventorServer.TransientObjects.CreateNameValueMap(); if (oSAT.get_HasSaveCopyAsOptions(doc, oContext, oIgesMap)) { Trace.TraceInformation("SAT can be exported."); Trace.TraceInformation("SAT: Set context type"); oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism; Trace.TraceInformation("SAT: create data medium"); DataMedium oData = m_inventorServer.TransientObjects.CreateDataMedium(); Trace.TraceInformation("SAT save to: " + dirPath + "\\export.sat"); oData.FileName = dirPath + "\\export.sat"; oIgesMap.set_Value("GeometryType", 1); oSAT.SaveCopyAs(doc, oContext, oIgesMap, oData); Trace.TraceInformation("SAT exported."); } #endregion } }