Beispiel #1
0
        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");
            }
        }