コード例 #1
0
        /* Straight forward method, opens the doc in the way we want it, debugs any errors */
        //Returns null on failure
        static SldWorks.ModelDoc2 OpenDoc(SldWorks.SldWorks app, string filePath)
        {
            int errors   = 0;
            int warnings = 0;

            Console.WriteLine("Opening Doc: " + filePath);
            SldWorks.ModelDoc2 doc = app.OpenDoc6(
                filePath,
                (int)(SwConst.swDocumentTypes_e.swDocASSEMBLY),
                (int)(SwConst.swOpenDocOptions_e.swOpenDocOptions_Silent | SwConst.swOpenDocOptions_e.swOpenDocOptions_ReadOnly),
                "default",
                ref errors,
                ref warnings);

            if (errors != 0)
            {
                Console.WriteLine("Error: " + errors);
            }
            if (warnings != 0)
            {
                Console.WriteLine("Warnings: " + warnings);
            }

            return(doc);
        }
コード例 #2
0
        static void Main(string[] args)
        {
            SldWorks.SldWorks swApp;
            swApp = new SldWorks.SldWorks();

            ModelDoc2   swModel = default(ModelDoc2);
            Component2  swComponent;
            AssemblyDoc swAssembly;

            object[]    Components       = null;
            object[]    swMateEntityList = null;
            MateEntity2 swMateEntity;
            Mate2       swMate;
            MateInPlace swMateInPlace;
            int         numMateEntities = 0;
            int         i = 0;
            dynamic     temp;
            Component2  temp2;

            Feature swFeat = default(Feature);
            Feature swSubFeat;
            string  Filename = null;
            int     errors   = 0;
            int     warnings = 0;

            Filename = "F:\\solidWorksAPI\\TEST_20180105\\Assembly_20180105.sldasm";

            // Open document
            swApp.OpenDoc6(Filename, (int)swDocumentTypes_e.swDocASSEMBLY, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors, ref warnings);
            swModel    = (ModelDoc2)swApp.ActiveDoc;
            swAssembly = (AssemblyDoc)swModel;

            /*           // Iterate through parts document and list concentric mate. Would Get repeating ones.
             *          Components = (Object[])swAssembly.GetComponents(false);
             *          foreach (Object SingleComponent in Components)
             *          {
             *              swComponent = (Component2)SingleComponent;
             *              Console.WriteLine("Name of component: " + swComponent.Name2);
             *              Mates = (Object[])swComponent.GetMates();
             *              if (Mates != null)
             *              {
             *                  foreach (Object SingleMate in Mates)
             *                  {
             *                      if (SingleMate is SolidWorks.Interop.sldworks.Mate2)
             *                      {
             *                          swMate = (Mate2)SingleMate;
             *                          if (swMate.Type == 1)
             *                              Console.WriteLine("Found one concentric mate.");
             *
             *                      }
             *
             *
             *                      if (SingleMate is SolidWorks.Interop.sldworks.MateInPlace)
             *
             *                      {
             *
             *                          swMateInPlace = (MateInPlace)SingleMate;
             *
             *                          numMateEntities = swMateInPlace.GetMateEntityCount();
             *
             *                          for (i = 0; i <= numMateEntities - 1; i++)
             *
             *                          {
             *
             *                              Console.WriteLine(" Mate component name: " + swMateInPlace.get_MateComponentName(i));
             *
             *                              Console.WriteLine(" Type of mate inplace: " + swMateInPlace.get_MateEntityType(i));
             *
             *                          }
             *                      }
             *                  }
             *
             *              }
             *          }
             *
             */
            // Get first feature in swModel
            swFeat = (Feature)swModel.FirstFeature();
            // Iterate over features in this part document in
            // FeatureManager design tree

            while ((swFeat != null))
            {
                // Write the name of the feature and its
                // creator to the Immediate window
                Console.WriteLine("  Feature " + swFeat.Name + " created by " + swFeat.GetTypeName());

                if (swFeat.GetTypeName() == "MateGroup")
                {
                    // Get first mate, which is a subfeature
                    swSubFeat = (Feature)swFeat.GetFirstSubFeature();

                    while (swSubFeat != null)
                    {
                        swMate = swSubFeat.GetSpecificFeature2();
                        // Go further analysis if swMate is of concentric type
                        if (swMate != null & swMate.Type == (int)swMateType_e.swMateCONCENTRIC)
                        {
                            Console.WriteLine(swSubFeat.Name);
                            Console.WriteLine("Num of Entity envolved: " + swMate.GetMateEntityCount());
                            //Console.WriteLine(swMate.MateEntity(2).GetEntityParamsSize());
                            for (i = 0; i <= 1; i++)
                            {
                                swMateEntity = swMate.MateEntity(i);
                                // Can't watch entity params in the watch window but works if setting a new variable.
                                temp = swMateEntity.EntityParams;
コード例 #3
0
        private void Button1_Click(object sender, EventArgs e)
        {
            // Declaration of all global variable
            SldWorks.SldWorks swApp;
            var errors   = default(long);
            var warnings = default(long);

            SldWorks.ModelDoc2 swModel;
            object             result;
            Array  moiArray;
            string listBoxVal;

            // Connecting to the Solidworks Application
            swApp = new SldWorks.SldWorks();

            // Storing the file in global swModel
            SldWorks.ModelDoc2 localOpenDoc6()
            {
                int argErrors = Conversions.ToInteger(errors); int argWarnings = Conversions.ToInteger(warnings); var ret = swApp.OpenDoc6(@"E:\Tandemloop\Project\3d-local\Door.SLDPRT", (int)SwConst.swDocumentTypes_e.swDocPART, (int)SwConst.swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref argErrors, ref argWarnings); return(ret);
            }

            swModel = localOpenDoc6();
            if (this.ComboBox1.SelectedIndex == 0)
            {
                result     = COM(swModel);
                listBoxVal = "COM " + result.ToString();
                this.ListBox1.Items.Add(listBoxVal);
                this.ListBox1.Items.Add("");
                this.ListBox1.TopIndex = this.ListBox1.Items.Count - 1;
            }

            if (this.ComboBox1.SelectedIndex == 1)
            {
                // Calling the Density function and storing the double value to the variable as Result.

                result     = Density(swModel);
                listBoxVal = "Density for the model is " + result.ToString();
                this.ListBox1.Items.Add(listBoxVal);
                this.ListBox1.Items.Add("");
                this.ListBox1.TopIndex = this.ListBox1.Items.Count - 1;
            }

            if (this.ComboBox1.SelectedIndex == 2)
            {
                // Calling the Volume function and storing the double value to the variable as Result.

                result     = Volume(swModel);
                listBoxVal = "Volume for the model is " + result.ToString();
                this.ListBox1.Items.Add(listBoxVal);
                this.ListBox1.Items.Add("");
                this.ListBox1.TopIndex = this.ListBox1.Items.Count - 1;
            }

            if (this.ComboBox1.SelectedIndex == 3)
            {
                // Calling the Mass function and storing the double value to the variable as Result.

                result     = Mass(swModel);
                listBoxVal = "Mass for the model is " + result.ToString();
                this.ListBox1.Items.Add(listBoxVal);
                this.ListBox1.Items.Add("");
                this.ListBox1.TopIndex = this.ListBox1.Items.Count - 1;
            }

            if (this.ComboBox1.SelectedIndex == 4)
            {
                // Calling the surfaceArea function and storing the double value to the variable as Result.

                result     = surfaceArea(swModel);
                listBoxVal = "Surface Area for the model is " + result.ToString();
                this.ListBox1.Items.Add(listBoxVal);
                this.ListBox1.Items.Add("");
                this.ListBox1.TopIndex = this.ListBox1.Items.Count - 1;
            }

            if (this.ComboBox1.SelectedIndex == 5)
            {
                moiArray = MOI(swModel);
                this.ListBox1.Items.Add("Moment of Inertia of the Model is");
                listBoxVal = "Lxx =" + moiArray(6).ToString() + " " + "m4";
                this.ListBox1.Items.Add(listBoxVal);
                listBoxVal = "Lyy =" + moiArray(7).ToString() + " " + "m4";
                this.ListBox1.Items.Add(listBoxVal);
                listBoxVal = "Lzz =" + moiArray(8).ToString() + " " + "m4";
                this.ListBox1.Items.Add(listBoxVal);
                listBoxVal = "Lxy =" + moiArray(9).ToString() + " " + "m4";
                this.ListBox1.Items.Add(listBoxVal);
                listBoxVal = "Lxz =" + moiArray(10).ToString() + " " + "m4";
                this.ListBox1.Items.Add(listBoxVal);
                listBoxVal = "Lyz =" + moiArray(11).ToString() + " " + "m4";
                this.ListBox1.Items.Add(listBoxVal);
                this.ListBox1.Items.Add("");
                this.ListBox1.TopIndex = this.ListBox1.Items.Count - 1;
            }

            if (this.ComboBox1.SelectedIndex == 6)
            {
                // Calling the path function and storing the double value to the variable as Result.

                result     = path(swModel);
                listBoxVal = (string)Operators.AddObject("Path of the file is :", result);
                this.ListBox1.Items.Add(listBoxVal);
                this.ListBox1.Items.Add("");
                this.ListBox1.TopIndex = this.ListBox1.Items.Count - 1;
            }

            if (this.ComboBox1.SelectedIndex == 7)
            {
                listBoxVal = "FIle Details are ";
                this.ListBox1.Items.Add(listBoxVal);
                fileDetails(swModel);
                this.ListBox1.Items.Add("");
                this.ListBox1.TopIndex = this.ListBox1.Items.Count - 1;
            }

            if (this.ComboBox1.SelectedIndex == 8)
            {
                configuration(swModel);
            }

            if (this.ComboBox1.SelectedIndex == 9)
            {
                colorDetails(swModel);
            }

            if (this.ComboBox1.SelectedIndex == 10)
            {
                scaleInfo(swModel);
            }
        }