(You are currently visiting Pete's Place)
(This Page was last revised: September 28, 2001)
Eons ago, when the world was still young, in an age when mighty creatures roamed the planet, man (and indeed, woman) was forced to make use of primitive writing implements to get his (or indeed, her) message across to the uneducated masses. In these enlightened times, of course, the pens, pencils, and drawing machines of those dark times (five or six years ago) have been replaced by computers, and by CAD.
In this long and bitter struggle, there were many casualties - wise and all-knowing draughtsmen who were unable to adapt themselves to the sweeping changes which were destroying the world they knew. Others, perhaps younger or more resilient, were able to keep up with the times, leaving behind the old ways and forcing themselves to accept the new world order. And, of course, a whole new breed of mighty CAD users came into being - young, all-knowing (just ask 'em); people who whole-heartedly embraced the new ways; people who heard whispered rumours of The Way It Used To Be, and shuddered.
Cor, it's all rather exciting, innit?
Anyway, I am one of this new breed. I have heard the rumours of The Way It Used To Be, and laughed -
all the while glancing over my shoulder, peering into the shadows which seem to gather menacingly when such arcane arts are spoken
of. I have even - once - seen one of the practitioners' unholy objects, and been initiated in the art of its use. ('Twas a
pencil, my child! It should be clenched firmly in one's fist and waved mystically over the blank sheet of paper.
All the while, the mantra of protection should be uttered: Pointy end down! Pointy end down!
)
CAD is my tool - AutoCAD, to be precise. There are other CAD programs available, of course, but AutoCAD seems to be the industry-accepted standard in this part of the world. (I'm sure there'll be someone out there ready to debate this point - you'll find my email address at the bottom of the page!) Of course, CAD is not necessarily any faster than The Old Ways when producing a drawing - it is only when modifying an existing drawing, or producing repetitive work, that the true power of CAD can be fully appreciated.
Of course, AutoCAD itself truly comes into its own when its customisation capability is taken into account. This brings us to the next section: programming.
As long as there are ill-defined goals, bizarre bugs, and unrealistic schedules, there will be Real
Programmers willing to jump in and Solve The Problem, saving the documentation for later.
While AutoCAD is a fairly good CAD program, as CAD programs go, its true power lies in its programmability. Whether creating a minor abbreviation for a command (because when you get right down to it, scraping away all the weighty dross which seems to have been accumulating over the last few years, Autocad is at heart a command-line-driven package), or building a large, specific-purpose application, well, that's what I do best.
AutoCAD is most easily programmed in AutoLISP, its own dialect of the LISP programming language. Of course, AutoLISP is a translated language. As such it is not as fast as a compiled program, which is no doubt why the capability exists to write applications for AutoCAD in a compiled language, such as C. I have not, yet, programmed AutoCAD in any language other than LISP, although I am at the stage now that I could really use the extra speed of a compiled language.
So, what have I written for AutoCAD? Perhaps my Programming CV would be the best place to answer that question!
At the moment, of course, several of the larger programs are actually owned by, and copyright to, the company for which I was working when I wrote them. If I had written them for myself while working there as a draughtsman, I would not be concerned - in that case, I'd have written them to improve my own productivity and they would be mine. However, since I was employed specifically to write the programs - well, what more can I say? I am planning, however, to rewrite the most useful programs for my own use, and without the specific code required by the company in question, thereby developing a core set of routines that I can use anywhere. Like all my other projects, it'll be done soon...
My current programming project is to familiarise myself with ObjectARX, AutoCAD's C++ Software Developer's Kit. At the same time I'm brushing up on my C++ skills themselves. I'm attempting to achieve both these goals in one fell swoop by writing my own wrapper classes to interface with the ARX code. Sounds good in theory; in actuality I seem to be rapidly drowning under a bewildering tangle of cross-linked lists and other fun things... (Note to self: When splitting your source code into multiple files, do not remove the private declarations from the class header files, no matter how much of a good idea it may seem at the time...)
I currently have my resumé available online for your perusal: