AnsweredAssumed Answered

Error while running any macro example from API help

Question asked by Pratik Pawar on Oct 6, 2018
Latest reply on Oct 30, 2018 by Pratik Pawar

using SolidWorks.Interop.sldworks;

using SolidWorks.Interop.swconst;

using System.Runtime.InteropServices;

using System;

using System.Diagnostics;

 

namespace UpdateBoxCSharp.csproj

{

    public partial class SolidWorksMacro

    {

 

        public void ProcessAssyBox(SldWorks swApp, AssemblyDoc swAssy)

        {

            object box = null;

            double[] boxArray = new double[6];

            box = (object)swAssy.GetBox((int)swBoundingBoxOptions_e.swBoundingBoxIncludeRefPlanes);

            boxArray = (double[])box;

            Debug.Print("  Min = (" + boxArray[0] * 1000.0 + ", " + boxArray[1] * 1000.0 + ", " + boxArray[2] * 1000.0 + ") mm");

            Debug.Print("  Max = (" + boxArray[3] * 1000.0 + ", " + boxArray[4] * 1000.0 + ", " + boxArray[5] * 1000.0 + ") mm");

        }

 

        public void Main()

        {

 

            ModelDoc2 swModel;

            AssemblyDoc swAssy;

            ModelDocExtension swModelDocExt;

            Dimension swDimension;

            string fileName;

            int errors = 0;

            int warnings = 0;

            bool status;

 

            fileName = "C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\samples\\tutorial\\api\\key pad_1.sldasm";

            swModel = (ModelDoc2)swApp.OpenDoc6(fileName, (int)swDocumentTypes_e.swDocASSEMBLY, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors, ref warnings);

            swAssy = (AssemblyDoc)swModel;

            swModelDocExt = (ModelDocExtension)swModel.Extension;

 

            // Print the two diagonal corner points

            // of the bounding box before modifying the

            // assembly

            Debug.Print("Before:");

            ProcessAssyBox(swApp, swAssy);

 

            // Change a dimension of one of the assembly components

            status = swModelDocExt.SelectByID2("Sketch1@Pad_1-1@key pad_1", "SKETCH", 0, 0, 0, false, 0, null, 0);

            swModel.EditSketch();

            swModel.ClearSelection2(true);

            status = swModelDocExt.SelectByID2("D1@Sketch1@Pad_1-1@key pad_1", "DIMENSION", 0.00306153201295202, 0.0373842545521677, -0.0323079625553351, false, 0, null, 0);

            swModel.ClearSelection2(true);

            swDimension = (Dimension)swModel.Parameter("D1@Sketch1@pad_1.Part");      

  errors = (int)swDimension.SetSystemValue3(0.04, (int)swSetValueInConfiguration_e.swSetValue_InThisConfiguration, null);

            swModel.ClearSelection2(true);

 

            // Update the bounding box

            swAssy.UpdateBox();

 

            // Print the two diagonal corner points of the

            // bounding box after modifying the assembly

            Debug.Print("After:");

            ProcessAssyBox(swApp, swAssy);

 

 

        }

 

        /// <summary>

        ///  The SldWorks swApp variable is pre-assigned for you.

        /// </summary>

        public SldWorks swApp;

    } }

 

Errors:

IMG_20181006_172523.jpg

Outcomes