示例#1
0
        void DoOpenSaveInternal(string filePath, OpenSaveSettings openSaveSettings)
        {
            // Register with OLE to handle concurrency issues on the current thread.
            SolidEdgeCommunity.OleMessageFilter.Register();

            try
            {
                SolidEdgeFramework.Application       application = SolidEdgeCommunity.SolidEdgeUtils.Connect(true);
                SolidEdgeFramework.Documents         documents   = null;
                SolidEdgeFramework.SolidEdgeDocument document    = null;

                application.DisplayAlerts = openSaveSettings.Application.DisplayAlerts;
                application.Visible       = openSaveSettings.Application.Visible;

                if (openSaveSettings.Application.DisableAddins == true)
                {
                    DisableAddins(application);
                }

                // Disable (most) prompts.
                application.DisplayAlerts = false;

                // Get a reference to the documents collection.
                documents = application.Documents;

                // Close any documents that may be left open for whatever reason.
                documents.Close();

                // Open the file.
                document = documents.Open <SolidEdgeFramework.SolidEdgeDocument>(filePath);

                application.DoIdle();

                if (document != null)
                {
                    // Environment specific routines.
                    if (document is SolidEdgeAssembly.AssemblyDocument)
                    {
                        DoOpenSave((SolidEdgeAssembly.AssemblyDocument)document, openSaveSettings.Assembly);
                    }
                    else if (document is SolidEdgeDraft.DraftDocument)
                    {
                        DoOpenSave((SolidEdgeDraft.DraftDocument)document, openSaveSettings.Draft);
                    }
                    else if (document is SolidEdgePart.PartDocument)
                    {
                        DoOpenSave((SolidEdgePart.PartDocument)document, openSaveSettings.Part);
                    }
                    else if (document is SolidEdgePart.SheetMetalDocument)
                    {
                        DoOpenSave((SolidEdgePart.SheetMetalDocument)document, openSaveSettings.SheetMetal);
                    }
                    else if (document is SolidEdgePart.WeldmentDocument)
                    {
                        DoOpenSave((SolidEdgePart.WeldmentDocument)document, openSaveSettings.Weldment);
                    }

                    // Save document.
                    document.Save();

                    // Close document.
                    document.Close();

                    application.DoIdle();
                }
            }
            finally
            {
                SolidEdgeCommunity.OleMessageFilter.Unregister();
            }
        }
示例#2
0
        void DoOpenSaveInternal(string filePath, OpenSaveSettings openSaveSettings)
        {
            // Register with OLE to handle concurrency issues on the current thread.
            SolidEdgeCommunity.OleMessageFilter.Register();

            try
            {
                SolidEdgeFramework.Application application = SolidEdgeCommunity.SolidEdgeUtils.Connect(true);
                SolidEdgeFramework.Documents documents = null;
                SolidEdgeFramework.SolidEdgeDocument document = null;

                application.DisplayAlerts = openSaveSettings.Application.DisplayAlerts;
                application.Visible = openSaveSettings.Application.Visible;

                if (openSaveSettings.Application.DisableAddins == true)
                {
                    DisableAddins(application);
                }

                // Disable (most) prompts.
                application.DisplayAlerts = false;

                // Get a reference to the documents collection.
                documents = application.Documents;

                // Close any documents that may be left open for whatever reason.
                documents.Close();

                // Open the file.
                document = documents.Open<SolidEdgeFramework.SolidEdgeDocument>(filePath);

                application.DoIdle();

                if (document != null)
                {
                    // Environment specific routines.
                    if (document is SolidEdgeAssembly.AssemblyDocument)
                    {
                        DoOpenSave((SolidEdgeAssembly.AssemblyDocument)document, openSaveSettings.Assembly);
                    }
                    else if (document is SolidEdgeDraft.DraftDocument)
                    {
                        DoOpenSave((SolidEdgeDraft.DraftDocument)document, openSaveSettings.Draft);
                    }
                    else if (document is SolidEdgePart.PartDocument)
                    {
                        DoOpenSave((SolidEdgePart.PartDocument)document, openSaveSettings.Part);
                    }
                    else if (document is SolidEdgePart.SheetMetalDocument)
                    {
                        DoOpenSave((SolidEdgePart.SheetMetalDocument)document, openSaveSettings.SheetMetal);
                    }
                    else if (document is SolidEdgePart.WeldmentDocument)
                    {
                        DoOpenSave((SolidEdgePart.WeldmentDocument)document, openSaveSettings.Weldment);
                    }

                    // Save document.
                    document.Save();

                    // Close document.
                    document.Close();

                    application.DoIdle();
                }
            }
            finally
            {
                SolidEdgeCommunity.OleMessageFilter.Unregister();
            }
        }
示例#3
0
 public void DoOpenSave(string filePath, OpenSaveSettings openSaveSettings)
 {
     InvokeSTAThread <string, OpenSaveSettings>(DoOpenSaveInternal, filePath, openSaveSettings);
 }
示例#4
0
 public void DoOpenSave(string filePath, OpenSaveSettings openSaveSettings)
 {
     InvokeSTAThread<string, OpenSaveSettings>(DoOpenSaveInternal, filePath, openSaveSettings);
 }