Example #1
0
        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());
            }
        }
Example #2
0
        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}");
                }
            }
        }
Example #3
0
        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.");
            }
        }
Example #4
0
        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());
            }
        }
Example #5
0
        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);
        }
Example #7
0
        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
            }
        }