1 Reply Latest reply on Jun 2, 2015 7:57 AM by Adam Hoffman

    How to change recorded macro to be universal (selection)

    kk cheng

      I am horribly new to macro/programming.

       

      I just finished recording a macro by selecting a part in an assembly and set it to transparent. I was planning to use this macro on other places where I could multi -select parts where I want to toggle transparency.

       

      But as I guess, the macro only worked with the part that I selected during the recording.

      So my first question is which part of the code should I change to make it more "universal". Like set transparent on selected parts only and can work on other assemblies.

       

      Also I can see "boolstatus = swAssembly.SetComponentTransparent(true);"  if True set to false I guess that would be setting a part from transparent to opaque. My second part of the question is what code do I put it so that I can do a transparency toggle. In other words, the selected parts would be set transparent if they are currently opaque and vice versa.

       

      My last question would be is there other places to pick up APIs for beginners like me?

       

      Thanks

       

      This is my code below

       

       

      using SolidWorks.Interop.sldworks;

      using SolidWorks.Interop.swconst;

      using System.Runtime.InteropServices;

      using System;

       

      namespace Transparent.csproj

      {

          public partial class SolidWorksMacro

          {

       

       

              public void Main()

              {

       

                 

                  ModelDoc2 swDoc = null;

                  PartDoc swPart = null;

                  DrawingDoc swDrawing = null;

                  AssemblyDoc swAssembly = null;

                  bool boolstatus = false;

                  int longstatus = 0;

                  int longwarnings = 0;

                  swDoc = ((ModelDoc2)(swApp.ActiveDoc));

                  boolstatus = swDoc.Extension.SelectByID2("", "FACE", -0.13356289656850606, 0.020099154942499808, 0.023311305031086249, false, 0, null, 0);

                  boolstatus = swDoc.Extension.SelectByID2("machined_05-1@Assem1", "COMPONENT", 0, 0, 0, false, 0, null, 0);

                  swAssembly = ((AssemblyDoc)(swDoc));

                  boolstatus = swAssembly.SetComponentTransparent(true);

                  swDoc.ClearSelection2(true);

              }

       

              /// <summary>

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

              /// </summary>

              public SldWorks swApp;

          }

      }