The ADG library (Automatic Drawing Generation) is a set of functions focused on automating the drawing of mechanical parts.
It is not a CAD system but a library providing a non-interactive canvas where an application can put common CAD entities such as paths, hatches and quotes, to generate technical drawings.
This library is developed in C using an object-oriented approach. It is primarily focused on GNU/Linux systems but a porting to other environments should not be difficult (if not automatic) as all the underlying libraries are known to run at least on Windows and MacOSX.
Although it is possible (and sometime useful) to use the ADG directly from C code, the library itsself is designed to be used by more interactive languages. LUA bindings are the first candidates.