internal static void OpenDoc() { if (swApp != null) { ISldWorks iSwApp = (ISldWorks)swApp; iSwApp.CloseAllDocuments(true); swDoc = (ModelDoc2)swApp.INewPart(); swDoc.SetUnits((short)swLengthUnit_e.swMM, (short)swFractionDisplay_e.swDECIMAL, 0, 0, false); } }
public void SldConnect() { try { System.Diagnostics.Process[] sw = System.Diagnostics.Process.GetProcessesByName("SLDWORKS"); object processSw = null; if (sw.Length > 1) // kill if more then one copy of sw app is runned { foreach (System.Diagnostics.Process sw_close in sw) { sw_close.CloseMainWindow(); sw_close.Kill(); } } else { processSw = System.Activator.CreateInstance(System.Type.GetTypeFromProgID("SldWorks.Application")); // create or get access to the existace proccess if (processSw == null) { MessageBox.Show(@"Looks like You haven't any installed copy of Solidworks yet"); } } SwApp = (SldWorks)processSw; if (SwApp == null) { return; } SwApp.Visible = true; SwApp.UserControl = true; //// SwApp.INewPart(); SwModel = (ModelDoc2)SwApp.NewDocument(Application.StartupPath + @"tamplate.prtdot", 100, 0, 0); SwModel = SwApp.IActiveDoc2; } catch (Exception) { MessageBox.Show(@"Can't connect to SolidWorks"); } }