[freearchitecture] An open CAD file format -- SQL db
Steve Hall
digitect at mindspring.com
Mon Feb 17 14:18:43 GMT 2003
Ok, so the big idea we've been discussing is a way to version CAD
files for the purpose of creating a CAD detail library that could be
improved by any number of contributors, without losing any particular
snap shot along the way.
It might be helpful to say here that this discussion doesn't help us
get to a detail library in the short term. (Like the user-moderated
file posting system at http://www.vim.org/scripts.)
Neither does it start to resolve any of the basic standards
considerations we'll have to make as previously discussed:
* Measurement standards (English, metric)
* File format standards (DWG, DXF, XML)
* CAD drawing standards (lineweights, colors)
* Drafting standards (numbering, symbols, text)
* Block or parts standards (steel shape AISC W36x182)
But it's still fun. :)
So I wanted to flesh out my database-as-CAD-file idea for the record
before we move on:
* The CAD file is an SQL database. Individual tables handle each
entity type (line, circle, binary objects, etc.). The database could
be local to the app, shared by many users on a network or <gasp>
over the internet.
* The file is loaded/refreshed by querying the database. Selected
portions can easily be filtered on or off by query.
* Edits to the drawing update the database. Save transactions are
logged by time and user for a progressive versioning (undo), and can
also be benchmarked by name for release/edition snap shots. Edits
might be saved in files apart from the checkout data (like diffs)
for faster updating.
* Both the temp file on local disk during editing and the exported
file for distribution have the same format: human readable SQL
statements defining CAD entities along with associated files and
relative path references for any other information better suited to
binary format (rasters, PDFs, WP spec documents, etc). (Binary
references could also be translated to base64 or packaged in a file
store.)
* Both exported and working files use login and time stamping for
later synchronizations if desired. These can be atomic by entity so
that only the updated entities are versioned each time.
* Updates are possible by multiple users. The CAD app can be set to
update automatically or manually.
* Complex permissioning can restrict reads or edits of drawing
portions by entity type, editor, coordinate, version, view, etc.
I think a system like this would have a lot of benefits despite the
likely speed drawback. Storing info via db is so flexible that it
makes sense to me to collect CAD info this way, too.
--
Steve Hall [ |digitect|AT|mindspring|DOT|com| ]
Try Cream in your Vim... it takes the bitterness out!
http://cream.sourceforge.net
More information about the freearchitecture
mailing list