Programming Resources for CAD Managers (CAD Manager Column)30 Sep, 2007 By: Robert Green
Learning to program can make you more independent and more valuable.
To program or not to program — that is the CAD management question. I'd like to give you some solid reasons as to why programming is a valuable skill for you, point you toward some resources, and give you a strategy for building your knowledge, whether you're a beginner or seasoned veteran. I think everyone will be able to gain something from this discussion.
Why Program At All?
This question is reasonable, especially for CAD managers who face the project pressures of staying billable and managing CAD production tasks. The main reasons I see for CAD managers to become programmers are as follows:
Making things easier for users. Programming allows you to collapse complex processes into automated processes that require little or no time on users' parts. And when you make things easier for users, they get more work done with less chance of error, all of which is good for your company.
Becoming more independent. If you can do your own programming, you won't be dependent on somebody else. As you gain more comfort, you'll jump at the chance to automate tasks or create custom interfaces for specific projects or tasks without having to worry about support resources.
Becoming more marketable. During the past several years of my CAD manager's survey, the importance of programming skills have become more pronounced. More companies want CAD managers with programming skills and, most importantly, are willing to pay more for CAD managers with those skills. Want to be more marketable and better compensated? Programming helps you achieve both goals.
A Glossary of Programming Terms
Now that you're pumped up about programming, you need to take concrete action to start or expand your learning curve in the right place. Part of this first task is assessing honestly what you know and don't know, so you can begin educating yourself with the right sources.
To help you assess your skill set, I'll present a short list of programming technologies, their benefits, and some diagnostics so you can figure out where you stack up. I'll present my list starting from the most basic and get more advanced as I go. Along the way I may refer to some programming buzzwords, which I'll define in the Glossary sidebar above.
Menu and toolbar customization. Some people might not call this programming, but I like to include it because it's a way that you can transform out-of-the-box CAD tools into a customized user interface (CUI). The level of customization varies for each CAD tool, with AutoCAD-based CAD tools being extremely customizable with the built-in CUI command. Almost all CAD tools allow you to control the toolbar interfaces by adding, subtracting, or combining various command tools onto custom toolbars. Some, including AutoCAD, even allow you to perform lightweight programming via script or macro language to accelerate repetitive tasks.
Learning tip. If you've never performed these types of customizations, start here, because customizing the user interface is the basis for delivering more advanced programming later. And because menu and toolbar customization is the easiest topic to learn, you're well advised to take this task on first.
AutoLISP. AutoLISP is specific to Autodesk products (such as AutoCAD or any of the Desktop series) that save their files to a DWG format. AutoLISP is an older language that predates Visual Basic, but it's still in widespread use and offers a huge amount of shareware and freeware code that you can modify for your own use. AutoLISP offers the advantage of requiring no external compilers and simple program file editing using NotePad, so you don't have to learn anything new other than the language. AutoLISP is so well established that I can never see it becoming obsolete, and it's easy enough that it's a logical place for novice programmers to learn basic concepts.
Resources for Programming
Learning tip. If you don't use AutoCAD-based CAD products, you won't need AutoLISP. However, a good knowledge of AutoLISP is the best place to start for an AutoCAD-based shop. For extra power, deploy your AutoLISP programs via customized toolbars for maximum user productivity.
VBA. Visual Basic Automation (VBA) is a reduced set of Visual Basic tools that allows you to construct programs that will run inside your CAD application. VBA is widely supported not only by CAD tools but also by Microsoft Office applications such as Word and Excel, so anything you learn in VBA will pay dividends outside the CAD department as well.
VB and .NET. These two systems are Microsoft's older (Visual Basic [VB]) and newer (.NET) development environments for custom programming. They are the most powerful environments in which to work — and the most challenging to learn.
Learning tip. Any CAD manager can use VBA, but serious programmers should start learning .NET. Strong knowledge in these technologies will serve you in CAD environments and in more general IT/office environments as well. You may want to take a class to get started with these technologies.
No matter your skill level or years of experience, an occasional training class will jolt you out of old ruts and let you see your programming skills from a new viewpoint. For beginners, training classes provide a jumpstart into what can be a confusing new world. The availability of training classes varies greatly according to your location, but you can always start by working with your CAD reseller to see what they offer. Community and technical colleges frequently offer programming classes (be they CAD-focused or not) that can help as well.
CAD managers who customize and program their own CAD tools have a decided leg up on those who don't, and I hope that tone has come through in this month's column. And you don't have to be the world's best programmer to make a big difference in how you approach your CAD environment. As you start understanding more about the process, your thinking will change from "I wish my CAD tools would work better" to "I'm going to make my CAD tools work better." What a profound difference.
So, pick your point of entry based on your current knowledge and use some of the resources I've outlined to get started. You'll be glad you did.