In the OneSpace Modeling FAQ pages, I sometimes
used or still use the term "macro" for the code snippets which I present there.
Not a wise choice, as it occurred to me a while ago, and I intend to fix that
now, or at least over time as I revisit those pages for other updates.
I used "macro" mostly for historical reasons. "Macro" is an overloaded 
term which can mean (too) many things:
-  In Lisp, a macro is a piece of code defined by
     defmacro. Macros
     in Lisp are a clever way to extend the language. If you want to
     learn more about this (or about Common Lisp in general, in fact), I recommend 
     Peter Seibel's "Practical Common Lisp" - here's 
     the section on macros.
-  CoCreate's 2D package, OneSpace Drafting, has a built-in macro
     interpreter which can be used to customize and extend the product. Since many
 OneSpace Drafting migrate from 2D to 3D, i.e. to OneSpace Modeling,
     they tend to take their nomenclature with them, and so they often call
     pieces of Lisp customization code a "macro", too.
-  In many software packages, users can record the interaction with the product
     and save the result into files, which are then often called macro files.
 OneSpace Modeling's recorder is such a mechanism, and so using
     the word "macro" is kind of natural for many users.
And so many users of OneSpace Modeling call their Lisp functions and 
customizations "macros", although this isn't really the correct term. Well, 
at least in most cases. Many of those customizations use an API called
sd-defdialog which is provided by the "Integration Kit" library which
ships with OneSpace Modeling. This API is, in fact, implemented
using 
defmacro, i.e. 
sd-defdialog is itself a Lisp macro. So if a user
writes code which builds on 
sd-defdialog and then calls the result a macro,
he's actually not 
that far from the truth - although, of course, still
incorrect.
 
Revision: r1.5 - 19 Sep 2007 - 21:58 - ClausBrod