Ejemplo n.º 1
0
        // Salva e restituisce il nome completo del doc attivo
        public string SaveDocumentoAttivo()
        {
            string nomeDoc = "";
            try
                {
                application = (SolidEdgeFramework.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("SolidEdge.Application");
                }
            catch
                {
                application = null;
                }
            if (application != null)			// Se SE e` in funzione, cerca di leggere il tipo di documento attivo
                {
                try
                    {
                    document = (SolidEdgeFramework.SolidEdgeDocument)application.ActiveDocument;	// Di tipo Draft
                    nomeDoc = document.FullName;
                    document.Save();
                    document.SaveAs(fullpdfDoc);			// Salva il documento come pdf
                    //document.SaveAs(fulldwgDoc);			// Salva solo il foglio attivo come dwg

                    SolidEdgeDraft.Sheet ActiveSheet;		// Memorizza il foglio attivo
                    ActiveSheet = ((SolidEdgeDraft.DraftDocument)document).ActiveSheet;

                    // Percorre i fogli e li salva singolarmente in dwg
                    SolidEdgeDraft.Sections sections = null;
                    SolidEdgeDraft.Section section = null;
                    SolidEdgeDraft.SectionSheets sectionSheets = null;
                    SolidEdgeDraft.Sheet sheet = null;

                    sections = ((SolidEdgeDraft.DraftDocument)document).Sections;	// Le sezioni del documento dft
                    section = sections.WorkingSection;					// Sezione con i fogli di lavoro (non background)
                    sectionSheets = section.Sheets;						// Ottiene la lista dei fogli

                    for (int j = 1; j <= sectionSheets.Count; j++)		// Percorre tutti i fogli
                        {
                        sheet = sectionSheets.Item(j);
                        sheet.Activate();
                        string dwgSuffix = "";							// Se solo 1 foglio, nessuna estensione
                        if(sectionSheets.Count> 1)
                            dwgSuffix = dwgShExt + j.ToString();
                        document.SaveAs(fulldwgDoc + dwgSuffix + dwgExt);	// Salva il foglio attivo come dwg con estensione
                        }
                    ActiveSheet.Activate();		// Riattiva il foglio memorizzato

                    }
                catch
                    {
                    //nomeDoc = "";
                    }
                finally
                    {
                    if (document != null)
                        {
                        Marshal.ReleaseComObject(document);
                        document = null;
                        }
                    if (application != null)
                        {
                        Marshal.ReleaseComObject(application);
                        application = null;
                        }
                    }
                }
            return nomeDoc;
        }