[freearchitecture] Open 3D CAD file format

Terry Hancock hancock at anansispaceworks.com
Thu Oct 30 18:14:42 GMT 2008


Cosmin Stroe wrote:
> I am currently researching whether there is an XML based 3D CAD file format
> that is unencumbered (free and open).  I saw an older message to this list
> about CAD file formats, but there were no specifics.

There is X3D, which is really a general 3D graphics format, but has the
possibility of becoming a simple CAD format.

There is also STEP-XML which is just an XML representation of the STEP
schema. STEP (aka ISO 10303) is certainly a very capable CAD format, but
it has some problems you need to be aware of:

1) While the EXPRESS language files actually defining STEP in
machine-readable terms are 'free and open', the official ISO
specification documents are not. This is a little awkward -- technically
the full spec is available in a free form, but the easiest-to-read (for
humans) form of it is not. There are efforts to rectify this by creating
public documentation for it.

2) STEP is a huge, extensible framework, with lots of
special-application formats. It's unlikely that you _really_ want to
implement all of STEP, but there are useful subsets that you could
restrict your project too.

3) There is an "open source" library to read STEP, but it is not a "free
software" library. This is one of the few projects that actually falls
into that hole. This creates a competition hazard for a true free
software implementation.

So why even think about STEP?

Well, STEP was designed by an industry consortium of engineering and
manufacturing companies. As such, it supports their needs (if anything,
too completely), without having to do an elaborate study of what sort of
modeling a CAD language should support.

Even if STEP is not used as a CAD file format for free software CAD, and
something like X3D is used instead, it should probably be consulted as
the format is extended to provide more complete CAD support.

REFERENCE URLs for STEP:
http://en.wikipedia.org/wiki/Standard_for_the_Exchange_of_Product_model_data
http://exff.org/
http://www.mel.nist.gov/msidstaff/sauder/SCL.htm
http://xml.coverpages.org/stepExpressXML.html
http://stepmod.sourceforge.net/
http://www.steptools.com/library/standard/

REFERENCE URLs for X3D:
http://en.wikipedia.org/wiki/X3D
http://www.web3d.org/x3d/specifications/
http://www.web3d.org/
http://www.web3d.org/x3d/wiki/index.php/Main_Page

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.

I'd say they're both valid choices, and which way you need to go depends
 a lot on who you are. If you have the resources of even a small company
team of programmers, I'd say go for STEP support -- it'll cost a lot of
time, but could be a big win. If you are a lone-developer, I'd recommend
taking the X3D approach.

You should also check out BRL-CAD, an existing free-software 3D
mechanical CAD system, developed by the US Army:

http://brlcad.org/
http://sourceforge.net/projects/brlcad

BRL-CAD is (apparently, I haven't actually tried it), a pretty good
program at what it does, but it only works with one kind of CAD modeling
(CSG solid modeling), and it's not the most popular kind in the industry
(though it does have some important advantages of its own).

And of course, I'm sure you're aware of Blender, the leading
free-software 3D modeling program (but yes, artistic 3D modeling is not
the same as 3D CAD modeling):

http://www.blender.org

I've already pursued the question of whether Blender could be factored
into Model-Controller-View and the Model replaced with something more
CAD friendly. However, I don't really do C/C++ programming anymore and
this is apparently a pretty big re-factoring job, which, although
somewhat interesting to the developers, doesn't seem worth it to them
(CAD isn't their goal). So they're not that interested, and I'm not
volunteering to do it either. :-)

I don't claim the above is comprehensive -- there may be other formats
and programs you should look into, but it's the result of my own
research into this problem.

I hope it helps. :-)

Cheers,
Terry


-- 
Terry Hancock (hancock at AnansiSpaceworks.com)
Anansi Spaceworks http://www.AnansiSpaceworks.com




More information about the freearchitecture mailing list