Extensible CAD Technologies
SolidWorks and PDMWorks Enterprise Development Blog

SolidWorks

Macros 201 – How To Register Your SolidWorks Macro To Receive Notifications For SolidWorks Events

Posted by Jeff Cope at 1 November, 2007, 4:56 pm
10

Why Should I Learn How To Register My Macros To Register For Notifications From SolidWorks? 

The common Macros that you see floating around the SolidWorks community are many and most of them are useful.  However, most of those Macros run only when explicitly commanded to do so by the user.  This is great for most Macros but there are times when it is nice to have some of your code run every time a certain event happens in SolidWorks.  For example, what if you want to have SolidWorks filenames determined based on your company’s part-numbering scheme, which is pulled from a database?  Wouldn’t it be nice to have the situation where every time SolidWorks prompts you to save a file, the filename box was pre-populated with the next number in the sequence? 

You might be thinking, why not just continue

If you enjoyed this post, make sure you subscribe to my RSS feed!

Category : Macros | SolidWorks | SolidWorks API

From King of Prussia, PA With Love

Posted by Jeff Cope at 26 October, 2007, 1:17 am
3

Washington At Valley ForgeSo here is what you missed out on if you were too lazy to weren’t able to attend the SWUGN Technical Summit – Philadelphia, which was held in King of Prussia, PA (right down the road from the city of brotherly love) :

continue

If you enjoyed this post, make sure you subscribe to my RSS feed!

Category : Macros | SolidWorks | SolidWorks API

GetObject( ) or CreateObject( )? Is there a difference? – Part III

Posted by Jeff Cope at 11 October, 2007, 1:24 am
1

At the end of my last post on this topic, I promised you that I would share a “dirty secret” so I guess I now have to come clean. FYI – “Dirty secret” may have been a bit strong but it sounded cool (at least to me). Anyways, there is a difference between how SolidWorks handles CreateObject( ) and how MS Office products handle CreateObject( ). This is something to be aware of when automating across applications.

What is the difference? In a nutshell, calling CreateObject( ) on an MS Office application interface will always create a new instance of the application and then return a handle to that instance. Calling CreateObject( ) on the SldWorks.Application interface will only create a new instance of SolidWorks if one isn’t already running. This basically ensures that only one instance of SolidWorks at a time is ever automated by your Macro. This is a basic coding pattern called “the Singleton” and it prevents untold suffering and countless tears. SolidWorks is so kind to us and many of us didn’t even know it.

Below are two Macros continue

If you enjoyed this post, make sure you subscribe to my RSS feed!

Category : CAD | MS Office | Macros | SolidWorks | SolidWorks API

GetObject( ) or CreateObject( )? Is there a difference? – Part II

Posted by Jeff Cope at 8 October, 2007, 2:52 pm
0

Last time I explained how the SolidWorks application object behaves differently depending on whether it is instantiated via CreateObject( ) or GetObject( ). So now you are probably thinking, “That’s it? That was too easy.” Well, I don’t want to be one to disappoint so I will let you in on the rest of the story including a dirty little secret.

So what else is there? The GetObject( ) call has another trick up its sleeve that I didn’t discuss last time. Taking a look at its Intellisense signature provides a clue as to what this is.

GetObject signature

In the method signature you actually see two parameters, continue

If you enjoyed this post, make sure you subscribe to my RSS feed!

Category : CAD | MS Office | Macros | SolidWorks | SolidWorks API

GetObject( ) or CreateObject( )? Is there a difference? – Part I

Posted by Jeff Cope at 4 October, 2007, 11:23 pm
3

Disclaimer: 99.9% of all the API programming I do these days is in .NET so for the times that I do answer a question incorrectly, 80% of the time it is a VBA (Visual Basic for Applications) question. Since most people start with VBA before they move on to .NET, however, I decided to cover this topic for VBA.

Set swApp = CreateObject(“SldWorks.Application”)

Almost all SolidWorks Macros start out with that same, famous line of code. In fact, whenever you record a Macro in SolidWorks, the SolidWorks Macro Recorder is kind enough to fill that line in for you. What does it really mean, though? And why do a few Macros begin instead with this line of code:

Set swApp = GetObject(,”SldWorks.Application”)

continue

If you enjoyed this post, make sure you subscribe to my RSS feed!

Category : CAD | MS Office | Macros | SolidWorks | SolidWorks API
Generate First-Article Inspection Reports From TIF, PDF and CAD Drawing Files With InspectionXpert. Generate First-Article Inspection Reports From SolidWorks Drawing Files With InspectionXpert.