My Introduction to SolidWorks Macros

Recently at work, I’ve been creating a lot of simple parts from 2D drawings.  And when I say simple, this is what I mean:

10-9-2011_12-06-45_pm

Each of these parts was given a part number and description using Custom Properties:

10-9-2011_12-09-47_pm

But then, when I wanted to save the part, I had to type the part number and description in again.

10-9-2011_12-11-44_pm

I realized that adding the custom properties, and then typing them in again to save them was taking longer than modeling the actual parts.  So, I asked the SolidWorks Forums if anyone knew of a faster way to save a part automatically using custom properties.

The infamous Deepak Gupta quickly replied with a macro script that did exactly what I needed. 

 

To create a macro, first show the macro toolbar my right-clicking anywhere in the CommandManager:

10-9-2011_12-18-07_pm

Then, click the New Macro button, which asks you to name your new macro, then launches Microsoft Visual Basic:

10-9-2011_12-22-00_pm
10-9-2011_12-24-12_pm

Write or paste the macro code into the VBA window.  This is the code for saving a part automatically in the format PartNo – Description.sldprt:

   Sub main()

   Dim swApp As SldWorks.SldWorks

   Dim swModel As SldWorks.ModelDoc2

   Dim PartNo As String, Description As String

 

   Set swApp = Application.SldWorks

   Set swModel = swApp.ActiveDoc

 

   PartNo = swModel.CustomInfo(“PartNo”)

   Description = swModel.CustomInfo(“Description”)

 

   swModel.SaveAs (PartNo + ” – ” + Description + “.sldprt”)

 

   End Sub

 

 

Even if you know nothing about macros or VBA, you can probably get the gist of it. The macro focuses on the current open document, grabs the ‘PartNo’ and ‘Description’ properties, and assigns them to spaces in the Save As field.  It also adds a dash, and a .sldprt to the filename.

 

Save your macro and close VBA.  Then, when you’re ready to save your part (after filling out the PartNo and Description fields in custom properties) just click the Run Macro button, and choose the macro you just created.

 

10-9-2011_12-35-50_pm

You’ll notice that the file name at the very top of the SolidWorks window changes from Part1* to the correct PartNo – Description.sldprt filename.  (For my example, this is SK80005 – Plate, Front, Cradle.sldprt)

 

Now go show your boss how efficient you are and get that raise!

Leave a Reply