[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