Blog 7.4.2012 No Comments

Have a macro that you’d like to run on all models in a directory while out of the office? Enter the Task Scheduler. Located in the SolidWorks Tools directory in your Start Menu, this program allows you to schedule batch operation tasks like updating the versions of your files, converting your models to DXF, updating custom properties, and so on. Those with SolidWorks Professional or Premium have the “Run Custom Task” option, which allows you to schedule the execution of a macro as well as specify its parameters.

As an example, let’s say that each night at 12:00 AM you want to open up every part in a directory and change the display setting to “shaded without edges”. Here are the steps you would follow:

1. Write a macro that opens up every part in a specified directory and changes the display the setting. In the code below you can see that the current specified directory is “C:\custom_task\”. (Download the files here.)

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Const strFolderPath As String = "C:\custom_task\"
Dim strFileName As String
Sub main()
    Set swApp = Application.SldWorks
    strFileName = Dir(strFolderPath & "*.SLDPRT")
    While strFileName <> ""
        Set swModel = swApp.OpenDoc6(strFolderPath & strFileName, _
            swDocPART, 1, Empty, Empty, Empty)
        swModel.ViewDisplayShaded
        swModel.Save3 1, Empty, Empty
        swApp.QuitDoc swModel.GetTitle
        strFileName = Dir
    Wend
    swApp.ExitApp
End Sub

2. Copy the code from the VB editor to Notepad and change the strFolderPath value to $$$FOLDER_PATH$$$. Your variable declaration for strFolderPath should now look like this:

Const strFolderPath As String = $$$FOLDER_PATH$$$

3. Save the text file as a .swb file.
4. Open Task Scheduler
5. Choose Run Custom Task
6. Click the Browse button next to Macro File Path and locate the .swb you just created
7. In the task parameters section, you should now see a parameter called FOLDER_PATH. Click in the Parameter String cell on the right and enter the directory that contains the files you want to convert to shaded without edges
8. After specifying the running mode, start time, and start date, click Finish and your task should be added to the queue. If you left the start time and date at their initial values then the task should start running immediately.

Some additional comments and notes about using the Task Scheduler with macros:

  • You can also run regular .swp files using the Task Scheduler. With these files, however, you cannot specify parameters. The macro will simply run “as is”. To be able to specify parameters you have to use an .swb file.
  • Optionally, you can simply change the variables in the .swp file to $$$$$$, save the .swp file, and then rename the extension to .swp.
  • You can control string an numeric parameters using the Task Scheduler. Use $$$$$$ for string values and ###### for numeric values.
  • If you do not use ISldWorks::ExitApp at the end of your macro, the SolidWorks application will not close after the task is finished running. Consequently, the task will not be marked as Complete within the Task Scheduler.
  • You do not need to have the Task Scheduler open for the scheduled task to run.
  • Any dialog boxes created by macros run by the Task Scheduler will automatically be closed. This is done to prevent dialog boxes from stalling the execution of the tasks.

Keeping it custom,
Keith

Want to keep up with new CADSharp.com content? Sign up for our newsletter.


Questions and Comments

You must be logged in to post a comment.