Publishing 3D models
Just a quick one this week, and a question to how about what format you would like to see 3D CAD released in.
One of my intentions for Deferred Procrastination is that developments should be released open source, it encourages further development, and means that new solutions don’t get locked away; not that that actually happens – if you sell a piece of hardware, you also send the result of your designs, ripe for hacking anyway! Because of this, I’ve always wanted to release the designs online, for download. While it’s relatively straight forward to do this with design drawings, because design drawings are subject to a long heritage of standards to be human readable, it’s not so simple to release 3D CAD (Computer Aided Design) files.
The number of competing and proprietary CAD packages, each with their own format, and the possible errors in conversion means what I see when I build a model might not come out the same when you receive a file, convert it and import it to the CAD program of your choice. And obviously converting, checking and releasing files in every possible format for every single CAD package is an impossible task!
For just viewing, a 3D PDF file seems the most straight forward. Viewing in Acrobat should give a moveable, rotatable model (I don’t know of a suitable open source viewer though). Try the file below:
- 3D PDF file: Atomic Duck block assembly v_0.1.pdf
In keeping with the Open Source Hardware Definition, a (currently) ongoing attempt to provide guidelines for what might constitute open source hardware, I’d like to provide files that can be modified by the recipient, not just viewed. This means using a file format that can be opened by as many programs as possible.
The STEP format looks like a good one to try because it’s a plain text format designed for 3D model exchange; though obviously, you’ll need a CAD program to view it in. To save you shelling out thousands, FreeCAD is available free (!) and is open source too. Download for Windows, Mac and Linux at http://free-cad.sourceforge.net/.
For the 3D CAD files, I’ve got both STEP (.stp) and FreeCAD’s native format (.fcstd) for download:
-
STEP format: Atomic Duck block assembly v_0.1.stp
-
FreeCAD format Atomic Duck block assembly v_0.1.fcstd
Is this a reasonable way to release files? Are there better formats for exchanging 3D CAD data?
Just to make it clear, I’m releasing CAD files under a Creative Commons Non-Commercial licence for the moment, so you can share these around in the spirit they were intended. I’m not sure if there might be a better licence for this type of information though. Please let me know if you know of a more suitable one.
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Bryan Bishop wrote, “You should also look into HeeksCAD, which uses the same CAD kernel as FreeCAD (OpenCASCADE). There is a built-in python interpreter for HeeksCAD called HeeksPython. There's also a set of python wrappers for OpenCASCADE (OCC) called pythonOCC-- mostly a direct port of the namespaces. I have been working on a tiny CAD kernel written in python called lolcad that exports to STEP format, and hopefully OpenSCAD will one day do the same. However, one of the problems with STEP is that it's not parametric. Other than that, it's the best bet for transferring CSG and solid geometry (like b-rep) between CAD packages. Once we get an open source read/write library for solidworks files, or parametric parasolid files, things will shake up a lot. - Bryan http://heybryan.org/ 1 512 203 0507”