BatchProcess 2 Product Review

For people that frequent the SolidWorks Forums and the SolidWorks area on, the name Luke Malpass is likely familiar.  Malpass is the founder of and the author of several SolidWorks API books.  He developed a powerful, yet simple SolidWorks add-in called BatchProcess.  This add-in was recently updated as BatchProcess 2.  The new version is fully integrated within the SolidWorks task pane.

What does BatchProcess 2 do?  It allows the user to quickly perform and repeat complex tasks on any number of SolidWorks documents with very little set up.

Full disclosure

Before I get into more specific details and opinions, let it be known that Luke Malpass has provided me with licenses for BatchProcess 2.  The licenses give me full access to the functionality of the software in real world usage.  This allows me to write this review as accurately as I am able.  No request for content within this review (favorable nor otherwise) was expressed or implied by Luke Malpass.  The content of this review is solely my own.


User Interface

The user interface for BatchProcess 2 is unique in the SolidWorks realm.  It seems to be vaguely reminiscent of colorful flowcharts.  The interface is attractive and flows well with the workflow of the add-in.


BatchProcess 2 requires that Microsoft’s .Net FrameWork 4.0 and SQL Compact 3.5 are installed.  The BatchProcess 2 installer will notify the user if these applications are missing.  I have found that tracking down the correct versions of .Net FrameWork  and SQL Compact on Microsoft’s website can be a cumbersome task, even when URL’s are provided.  I realize that Microsoft controls the distribution of these files.  Even still, it would be nice to have the installer be a bit more proactive in acquiring and installing all software required for BatchProcess 2.  However, once the pre-installations are complete, [T]he BatchProcess 2 installation is a breeze [and it no longer requires the user to perform any pre-installations as of 6/18/2010].  The installer even activates BatchProcess 2 within the SolidWorks Add-ins list.


As with any batch application, before any batch activity can be started, the user is required to select the documents that are to be affected.  In BatchProcess 2, this is done by building a project (a list of documents).  Single files, whole folders, open and recently open documents may all be quickly added to the project.  This may be accomplished by clicking on the appropriate button in the Import Document into Project List row.

Projects may be saved and loaded for repeated use across multiple sessions.

Project Toolbar Strip

Once a project is built, there are functions in the Project Toolbar Strip that allow the user to add associated documents (assembly components, drawing references) and remove specific documents in the project.  Other toolbar tools are also available.

So far, my favorite toolbar tool is the powerful Print button which will automatically print all highlighted documents from the project.  Other tools allow the user to open, preview, and check-in/out files in Enterprise PDM.



For more complex tasks, BatchProcess 2 has a multi-layered job building tool.  What’s a job?  A job is a list of tasks that execute on every document within the open project.  Jobs may include tasks for:

  • Complex printing options
  • Custom properties (add, delete, or modify)
  • Exporting models and drawings into dozens of file formats (such as DXF, IGES, STEP, PDF, etc)
  • Drawings templates (reload, set, or replace)
  • and the execution of API macros

Once a job is created, it may be run.  While a job is running, other activities in SolidWorks are generally not possible.  This is because a running  job makes changes directly to documents within a project. For example, if a job task says “Open”, then each document is visibly opened within SolidWorks.

Once a job is complete, BatchProcess 2 provides a detailed report of the completed tasks for each document in the project.

Functionality improvements

I’ve noticed that BatchProcess is constantly being improved.  New functionality is added regularly.  For example, BatchProcess 2 has a new minor release pack that allows the user to send all jobs to any other instance of BatchProcess 2 that is running on the network.  With this new feature, a CAD administrator can install one extra copy of BatchProcess 2 on a server and have all other seats send their jobs to that one to do their work.

There is one apparent drawback with BatchProcess 2.  There is no access to BatchProcess Help within SolidWorks.  Users have to go to the BatchProcess website to view a written tutorial.  Malpass has stated there are plans to integrate Help at a later date.

Purchase options

Currently, the only purchase outlet for BatchProcess 2 is on the BatchProcess website. Purchases are made in British Pounds.  There are two product options available.  Option 1 is a one-time purchase of BatchProcess 2 for 235.00 Pounds (about $345 as of 6/1/2010).  Option 2 is 525.50 Pounds (about $775.00 as of 6/1/2010) and includes BatchProcess 2 with one year maintenance.  Maintenance includes minor and major updates to BatchProcess for one year, and preferential handling of technical support requests.

With the US Dollar being so strong against the Pound right now, this is a great time for American companies to buy this product.  However, I would like to see a North American purchasing outlet for the BatchProcess line.


I found time and labor is saved when using BatchProcess 2 in real world scenarios.  The time it takes to set up and run a job on many documents is almost incomparable to the time spent manually completing those same tasks.  Particularly, I’ve found the Project Toolbar Strip printing function to be very useful. 

One function that I didn’t get to test yet is BatchProcess 2’s execution of API macros.  Hopefully I’ll provide a supplemental report on that at a later date.

With BatchProcess 2, a ROI report should very easy to create (even with a currency exchange rate to consider).  Simply compare how long a user takes to complete a series of tasks on a batch of documents with how long those same tasks can be completed in BatchProcess 2.

Overall, BatchProcess 2 is a good SolidWorks add-in that has accessible functionality and may provide significant cost savings for many SolidWorks users.

Book Review: SolidWorks 2008 API

SolidWorks 2008 API Programming & Automation is recent self-published book by Luke Malpass, founder of AngelSix.  (You will not find his book on Amazon.)  Mr. Malpass wrote this book to fill an apparent gap in guide books about SolidWorks API.  The last book that I know of written specifically on this topic was Automating SolidWorks 2006 using Macros by Mike Spens, published way back in 2005.  Like that book, Mr. Malpass’ new book is spiral bound.

Mr. Malpass states in his introduction that he wrote his book to share his “ways of thinking and programming and hopefully to enlighten at least one other person’s day.”  Much of the book is written in this same friendly manner.  At times, the book is not written in a way that some would consider professional.  Yet, he gets his points across clearly.  The book is accessibly readable by experienced and novice programmers alike. 

The first chapter is correctly labelled “The Basics”.  The first section gets right into the task at hand. The lesson teaches how to make and use recorded macros.  The book next jumps right into writing macros from scratch.  It takes a step by step approach that reveals what code is necessary.  It explains each line in Mr. Malpass’ ever present friendly style. 

As one reads through the book, they will find code examples being built and explained piece by piece in both C# and VBA.  These macros are real world examples that the reader may find immediately useful.  Instructions are so clear that many will be able to apply the demonstrated code in their own macros.

One good example of this is found in the first chapter.  Right near the beginning of the book, Mr. Malpass provides instructions on how to make a macro that save each drawing sheet as an individual DXF File automatically.  This example is great because this question actually comes up a lot in the online message forums.

Many more important topics are extensively covered.  These include working with selected objects, implementation of Property Manager Pages, traversing through each type of document, Custom Property Manager, working with drawings, use of forms, and how to create and use Add-ins (something of special interest to many).  Additionally, all macro examples within the book are included in completed form on a CD. 

Of course, the book covers both C# and VBA code examples.  However, it also often talks extensively about VB.NET.  I found the instructions regarding VB.NET to be distracting, especially since few VB.NET examples appear in the book except for one section written specifically for it.  Granted, VB.NET and VBA are very similar.  However, in my opinion, differences are enough to warrant specific examples for each language.  It should be noted that some VB.NET examples are provided on the CD.  It seems to me that this book may have been better served if it focused on VB.NET and VBA instead of C# and VBA.  C# may have been better handled within its own book.  This would’ve allowed for more room in the book for more specific examples on even more topics, such as more information on how to read and utilize data from external files or methods specifically addressing the handling of BOM’s. 

One minor point of concern I found is within statement of ownership by the author.  It’s a boiler plate “all rights reserved” statement that limits reproduction or distribution without written permission of the publisher.   As this applies to the book itself, I stand by such statements.  However, in my view, it is not practical to place such limitations on code examples.  Doing so kind of defeats the purpose of the book.  That is not to say an author should not hold control over their works, but that if an author chooses to provide examples on how to do something, limitations should not be placed on the examples themselves.   (SolidWorks Corp makes a statement in their API Help that grants permission for the unlimited use of their examples.)

That aside, my opinion is that this book is great for anyone with programming exposure and who wishes to learn how to apply that experience directly to SolidWorks.  It is not meant for the person that has never attempted to program, unless that person is a brave soul willing to dive right in to the process.  I believe this book will be useful for people from novices to those of advanced programming skill.  It may also be a good reference guide to professionally trained expert programmers for SolidWorks specific programming possibilities and requirements.  I recommend this book.

Disclaimer:  This review is unsolicited by the book’s author.  It is based on use of product that I purchased at full price.  I receive no compensation for referrals.

If you are interested in SolidWorks 2008 API Programming & Automation, it may be purchased here: