Using python for a CAD program

Terry Hancock hancock at
Thu May 18 16:48:48 CEST 2006

David Cuthbert wrote:

>baalbek wrote:
>>CAD systems available today (Autocad, Archicad, Architectural Desktop, 
>>etc) have one huge flaw: they don't store data to a SQL database, but to 
>>binary files.
>There's a reason for this.  Most CAD data is not in a form (First Normal 
>Form) suitable for a relational database.  In addition, the sheer number 
>of objects involved in each operation brings performance to its knees. 
>Finally, most RDBMS provide (and are optimized for) transactional 
>semantics -- for a CAD system, this is wasted overhead.
Object database systems (ODBMS) like ZODB are probably a
much better fit for CAD data than RDBMS.  The hierarchical
structure in an object database is a natural fit to the way
CAD drawings are created and manipulated, and most CAD
systems internally represent drawings as some kind of object

Of course, ZODB *can* serialize its data to an SQL backend,
among several other possibilities. One of the more intriguing
possibilities would be using a CVS or Subversion based back-end
to provide more complete version control help.

I disagree that transactions are bad for CAD -- they may have
a different semantic role and the needed granularity may be
different, but the need to roll data back to an earlier revision
is just as present in drawings as it is for code or financial


Terry Hancock (hancock at
Anansi Spaceworks

More information about the Python-list mailing list