[freearchitecture] Open 3D CAD file format

Christopher Sean Morrison brlcad at mac.com
Fri Oct 31 12:50:04 GMT 2008


> From: Eric Wilhelm <ewilhelm at vectorsection.org>
>
>> From: Terry Hancock <hancock at anansispaceworks.com>
>>
>> There may be some other choices, but these two represent what I  
>> see as
>> the main two strategic choices: either pick an industry-standard (but
>> large, complex, and over-designed), or pick an under-capable but
>> simple community-sourced 3D standard and work to extend its
>> capabilities.

That really is a great summary of those two formats from Terry.   
There are a few other format options, but they not much different.

> How does STEP deal with something like CSG?  From my reading, it seems
> to focus more on BREP.

You can really think of STEP as the union or combination of all major  
CAD formats.  All the major industry players got together to  
standardize on one exchange format, something better than IGES, and  
what they ended up with is a format that could represent everyone's  
data regardless of where in the product development life-cycle they  
focused on.  STEP defines a variety of application protocols that  
describe what entities are available and how those entities are  
described.  There is an application protocol the provides CSG  
operations in detail along with many other advanced modeling concepts  
(AP 214).  Additionally there are various application interpretation  
constructs for which CSG is one as well (Part 515). [1]  If you can  
think of it, there's probably an AP that provides it.

> With X3D, is there anything in this standard which significantly
> deviates from VRML?  If not, it seems that it wouldn't be expressive
> enough for any sort of mechanical or architectural CAD.

X3D has just recently started working on adding features required for  
boundary representations.  They have a working group that is  
specifically trying to add support for CAD data. [2]  They're just  
getting started in many ways, and rehashing a lot of problems that  
STEP solved nearly a decade ago, but they do have some good momentum.

For BRL-CAD, development of a STEP processing library is actually one  
of our current development priorities (along with the newly revived  
implementation of BREP/NURBS support) that should come to fruition  
sometime next calendar year.  We (fortunately) already have most of  
the various (relevant) STEP application protocols in hand (AP 11, 21,  
22, 203, 214, and maybe a couple others I'm forgetting) that we  
worked on getting a while back.

They weren't cheap and I think they killed a few trees to give us  
printed copies instead of PDFs (don't ask), but we've since scanned  
them all in and made our own searchable PDFs for our own use.  In  
that regard, ISO STEP is a lot like ISO/ANSI C -- you only need a  
couple people to get ahold of the (non-free, non-cheap) ISO spec to  
make a (free, open source) C compiler.  We're also starting with  
NIST's EXPRESS parser library (part of SCL) as a basis so there's a  
lot of leg work already done for us on the parsing side.  If we  
implement this well enough, it should be a generic STEP processing  
library that could be used by others (and will be completely FOSS, of  
course).

On that note, perhaps also worth mentioning that we're in the middle  
of refactoring all of our various converters in BRL-CAD into a  
generalized processing library (which gives IGES, DXF, STL, X3D, 3DM,  
and a dozen or so others).  That's necessarily long term and lower- 
priority project given our limited developer resources and probably  
won't be done for a while (it's a hell of a lot of code) but it is  
something we're already working on too.

We're open to new developers too. ;-)

Cheers!
Sean

[1] http://en.wikipedia.org/wiki/List_of_STEP_(ISO_10303)_parts
[2] http://www.web3d.org/x3d/workgroups/cad/




More information about the freearchitecture mailing list