CUFP
SciDude
<p>Bruno Postle has proposed an <a href=http://bugbear.blackfish.org.uk/~bruno/draft/>interesting CAD file format</a>, complete with <a href=http://bugbear.blackfish.org.uk/~bruno/draft/Draft-0.03.tar.gz>proof of concept application</a> written in perl.
<h3>Concept</h3>
<ol>
<li>If it can be a separate file, then that's what it should be.
<ul>
<li>Fast efficient saving
<li>Fast efficient reading
<li>Infinite undo
<li>Changes are easily encapsulated and portable
<li>Full version tagging and release management
<li>Embedded resources are kept external
<li>Fine-grained permissions system
<li>Platform-independent data
<li>Object-oriented data
</ul>
</ol>
<p>The beauty of this concept is the leverage of existing tools (modern filesystems, versioning, perl/tk, etc.) to provide an elegant example of what is now possible <i>but rarely implemented</i>.
<p>With CVS, multiple authors can work on a single CAD project complete with real time display of all changes <i>as they happen</i>.
<p>Each element of the drawing (an object perhaps; line, circle, etc.) can be described in a simple and human readable text file:
<code>
Content-Type: application/drawing; class=line/plain
Version: 1.0
Units: millimetres
0: 10
0: 20
0: 0
1: 10
1: 40
1: 0
License: http://creativecommons.org/licenses/sa/1.0/
Copyright: Jane Doe <jane@example.com>
</code>
<p>Groups of these files make an application which can later be used as a reference, providing object oriented approach to CAD design.
<h3>Making the hard things possible...</h3>
<p>The author makes these points clear in about "400 lines of perl code." I downloaded the <a href=http://bugbear.blackfish.org.uk/~bruno/draft/Draft-0.03.tar.gz>proof of concept application</a>, installed the few modules necessary and it worked perfectly on my Fedora FC2 box. The concepts demonstrated in perl may not provide for the needs of a commercial CAD application and the author states (in various POD comments) that perl is not the solution for long term CAD implementations. <p>What is profoundly important are the concepts demonstrated. Faced with thousands of text files, perl was the natural solution for parsing and display of this information. With a bit more work, I am certain this proof of concept could surprise more than I with the possibilities of perl/tk and GUI applications to visual data display.
<div class="pmsig"><div class="pmsig-127995">
<br>
<font face="arial, helvetica" size="1">
[id://127995]
<br>The first dog barks... all other dogs bark at the first dog.
</font>
</div></div>