A company I used to work for owned a Stratasys 3d printer. The program that sends print files to the printer is called CatalystEX, and while it imports industry standard STL files, it exports and saves in the (almost certainly proprietary) CMB file format. These files encode the tool path that the printer uses to build the parts, so modifying it makes it possible to modify the print.
Why might one wish to modify the print? Perhaps because Catalyst is very “user friendly” and not a “powerful editing tool” like “some other programs” namely Blender. So, I started writing a bit of Python code capable of importing a CMB into Blender for editing, and then exporting the modified CMB for printing.
I didn’t get very far, but was making decent progress. I left the company, and no longer have access to the printer, and therefore further work would be highly difficult to carry out.
This effort was made feasible (and very likely possible at all) due to the extensive previous work of Andreas Reichinger which went into picking apart the CMB file format, which (at the time of this writing) can be found here: https://azttm.wordpress.com/2012/09/22/inside-the-stratasys-dimension-catalyst-cmb-file-format/
As I mentioned, I didn’t get very far, but I did manage to discover that the ”27 bytes ?” field was actually 35 bytes long. Not sure what it contains, or if it’s per-printer or what. I also never got around to writing out modified part programs, so I don’t know if there’s a sum-check built in or anything.
Below is the full text of the reverse-engineering reference, just in case the link goes off-line: (more…)