Example #1
0
        private void addFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();

            if (swApp != null)
            {
                dialog.InitialDirectory = swApp.GetCurrentWorkingDirectory();
            }

            dialog.Filter      = "Solidworks (*.sldprt;*.sldasm;*.slddrw)|*.sldprt;*.sldasm;*.slddrw|Parts (*.sldprt)|*.sldprt|Assemblies (*.sldasm)|*.sldasm|Drawings (*.slddrw)|*.slddrw|All files (*.*)|*.*";
            dialog.Multiselect = true;


            DialogResult result = dialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                Helper.HelperResult err = Helper.HelperResult.UNKNOWN;

                string[] files = dialog.FileNames;
                if (files.Any())
                {
                    err = Helper.AddFiles(bindingSource_swFolder, files);
                }

                //if (!String.IsNullOrEmpty(file))
                //err = Helper.AddFile(bindingSource_swFolder, file);

                switch (err)
                {
                case Helper.HelperResult.SUCCESS:
                    break;

                case Helper.HelperResult.UNKNOWN:
                    MessageBox.Show("Unknown error");
                    break;

                case Helper.HelperResult.NO_FILES:
                    MessageBox.Show("No cad data");
                    break;

                default:
                    MessageBox.Show("Unknown error");
                    break;
                }
            }
        }
Example #2
0
        public void Main()
        {
            swSuccess = false; errors = 0; warnings = 0;
            string swSourcePath = swApp.GetCurrentWorkingDirectory();
            string swExportPath = Path.Combine(swSourcePath, "IGS");

            string[] tmp = Directory.GetFiles(swSourcePath, "*.SLDPRT", SearchOption.TopDirectoryOnly);

            if (Directory.Exists(swExportPath))
            {
                Directory.Delete(swExportPath, true);
            }

            Directory.CreateDirectory(swExportPath);
            ModelDoc2 swModel = swApp.ActiveDoc as ModelDoc2;

            AssemblyDoc swAssem = (AssemblyDoc)swModel;

            #region TopLevel
            string igsFileName = MakeFileName(swModel.Extension.Document.GetTitle());
            swModel.Extension.SaveAs(Path.Combine(swExportPath, igsFileName), (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Copy, null, ref errors, ref warnings);
            //PrintSaveResults();
            #endregion TopLevel

            #region Subassemblies
            string swExportSubPath = Path.Combine(swExportPath, "Subassemblies");
            Directory.CreateDirectory(swExportSubPath);
            object[]  objComps = (object[])swAssem.GetComponents(true);
            ModelDoc2 igsModel;

            foreach (object obj in objComps)
            {
                swComponent = obj as Component2;
                Debug.WriteLine(String.Format("Working on {0}.. \n\t {1}", swComponent.Name2, swComponent.GetPathName()));
                igsModel = swApp.OpenDoc6(swComponent.GetPathName(), (int)swDocumentTypes_e.swDocASSEMBLY, (int)swOpenDocOptions_e.swOpenDocOptions_ReadOnly, null, ref errors, ref warnings);
                swApp.ActivateDoc2(igsModel.GetTitle(), true, ref errors);
                igsFileName = MakeFileName(igsModel.Extension.Document.GetTitle());
                igsModel.Extension.SaveAs(Path.Combine(swExportSubPath, igsFileName), (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Copy, null, ref errors, ref warnings);
                swApp.CloseDoc(igsModel.GetTitle());
            }
            #endregion Subassemblies

            #region Parts
            string swExportPartPath = Path.Combine(swExportPath, "Parts");
            Directory.CreateDirectory(swExportPartPath);
            string[] swPartFiles = Directory.GetFiles(swSourcePath, "*.SLDPRT", SearchOption.TopDirectoryOnly);
            foreach (string partFile in swPartFiles)
            {
                try
                {
                    igsModel = swApp.OpenDoc6(partFile, (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_ReadOnly, null, ref errors, ref warnings);
                    swApp.ActivateDoc2(igsModel.GetTitle(), true, ref errors);
                    string[] swConfigs     = (string[])igsModel.GetConfigurationNames();
                    int      swConfigCount = igsModel.GetConfigurationCount();
                    string   swConfigFilename;

                    for (int i = 0; i < swConfigCount; i++)
                    {
                        igsModel.ShowConfiguration2(swConfigs[i]);
                        swConfigFilename = igsModel.Extension.Document.GetTitle();
                        if (swConfigCount > 1)
                        {
                            swConfigFilename += String.Format("-CFG{0}", (i + 1).ToString());
                        }
                        igsFileName = MakeFileName(swConfigFilename);
                        igsModel.Extension.SaveAs(Path.Combine(swExportPartPath, igsFileName), (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Copy, null, ref errors, ref warnings);
                    }
                    swApp.CloseDoc(igsModel.GetTitle());
                }
                catch (NullReferenceException e)
                {
                    Debug.WriteLine(e.Message);
                }
            }
            #endregion Parts

            string timeFilename = Path.Combine(swExportPath, "Timestamp.txt");

            using (StreamWriter swTimeStamper = new StreamWriter(timeFilename))
            {
                swTimeStamper.WriteLine("Exported on {0} at {1}", System.DateTime.Now.ToShortDateString(), System.DateTime.Now.ToShortTimeString());
                swTimeStamper.Flush();
            }
        }