From the course: Additive Manufacturing: Tips, Tricks, and Techniques

Emerging software standards: 3MF

- [Instructor] When open source 3D printers came into existence in the mid 2000s, many of them trace their common heritage to the RepRap Project. This meant that they were born out of common, open source standards, more so the many other fabrication techniques that had limited interoperability among equipment vendors. However, as the field has progressed and applications move into regulated fields, the relatively simple standard file formats are beginning to be problematic. - [Instructor] The most common model format is the STL, which stands for stereolithography, or standard tessellation language, depending on who you ask. This format simply takes a model and breaks its surface up into a list of triangles called a mesh. STLs don't have any way to specify things like material and color. If you want to create a two-color print, for example you need to create two separate STL files, then merge them back together later in the process. For printers that use filament or vat of liquid resin, the color is determined by the material loaded into the machine, and most of them have no way of determining what color that is. Printers that do have control over the color of the print, like the ones that use inkjet binders, make use of texture mapping information, which is not supported by the STL format. - [Instructor] There's more information, and you might want to store, about how to print the models though, and formats like AMF and 3MF have since come along to try to do that. The AMF format was introduced first, developed by ISO and ASTM, two international standards bodies. Its intent was to document the entire production process at the level required for production of regulated items, like aircraft and medical devices. It's a proprietary standard and you have to pay to download a copy of it. The 3MF format is an open standard being developed by many of the large software companies involved in 3D printing, as well as many 3D printer manufacturers. You can explore its specifications for free at the consortium's website, 3mf.io. Since the 3D printing community has evolved around open standards, it's not surprising that the 3MF format is being far more widely implemented than AMF. - [Instructor] One challenge with digital manufacturing in general, and 3D printing in particular, is that it requires a mix of software standards and keeping track of physical realities. In regulated industries, the precise methods used to manufacture something often have to be tracked, as well as specifications for materials and the like. In addition to the geometry of the model, 3D printing has several elements that might need to be tracked. The material used, the printer's characteristics, the settings used for that particular print run, custom support that you might add in a slicing program, and maybe even any post-processing performed. STLs don't carry any of that information. The current process has several parts, model creation, slicing and printing. STLs are the output of model creation and the input for slicing. The slicing process outputs a machine readable file of commands for the printer, typically in a format called G-code. Slicers, like Ultimaker Cura, require the user to input details like the printer in use, what temperatures to use, and other details about the manufacturing process. These details are saved in profiles that can be applied to any applicable STL file. In the case of Ultimaker Cura, these settings are also included in the comments of the G-code file. - [Instructor] The respective architects of CAD software and slicing software need to negotiate about how much information a CAD user should include about how to slice their model. You can imagine, with the many different 3D printers and 3D printing technologies, they're trying to specify how to print a model on a filament resin for powder printer, and combine that with the model geometry, could get unwieldy fast. Here's how this 3MF specification addresses these issues. The 3MF standard is a compressed XML-based container. That means that it can wrap around models and information about them. The file contains mesh data, similar to what you would find in an STL. The specification contains strict language, specifying that the mesh needs to follow rules necessary for describing an object that can be 3D printed, like being watertight and manifold. You can also have a multi-material model without needing to manually break it out into separate files for each material. 3MF mesh files are considerably smaller than their STL counterpart, partly because the standard requires they be compressed. A particular printer or slicer can add some extensions to the standard, which you can read and others can ignore. - [Instructor] Slicers are not interoperable, and different ones use different names for things, or use the same names for things that function slightly differently. Because of this, the printer settings carried in a 3MF file need to be specific to that slicer. The 3MF file model can be read by another slicer, but the settings for Cura, say, will not be translated into ones for pusher slicer and vice versa. However, it will save time for people wanting to share a model with specifics for printing on a particular printer. - [Instructor] There are more subtle issues about carrying designer's intent that are still under discussion. For example, a designer might want to specify more shells around a screw hole, so it can be tapped later. That's the sort of thing it'd be good to carry from a CAD program, but it's a nightmare to reconcile the slicers otherwise responding to user requests for a certain number of shells and type of infill. In this way, it's similar to the PDF format, which can be interchanged among many different word processing programs, but in coding into PDF, will lose some information. Fundamentally, the challenges of creating a standard come down to this. How much does the community want 3D printers and compatible slicing software to standardize? At the moment, there's an explosion of 3D printer types and technologies, so at least being able to store information for a multi-part, multi-material model, and one type of printer is a vast improvement. We're grateful to Jaime van Kessel from Ultimaker and Alexander Oster of Autodesk for the insights on this standard. For full technical details of the 3MF standard, go to the consortium's website at 3mf.io.

Contents