It seems like everyone is talking about 3D printing these days. Every day there are amazing new stories of people using this technology to create cool new “things”, to solve difficult manufacturing issues, and even to advance scientific causes.
3D Systems Cube 2 3D Printer connected to Windows 8.1
3D printers are rapidly becoming more affordable and more capable. Because of this, 3D printers are showing up on more desktops, workbenches, craft benches, and dining room tables than ever before. If you are looking for a challenge or to save money you can even build your own 3D printer! Don’t have software design tools? No problem! You can find thousands of free objects from online sources (thingiverse.com for example). You can download these 3D models in seconds and then print them at home on your 3D printer. Amazing!
I recently had the opportunity to try out 3D printing end-to-end using SolidWorks 2013 and multiple 3D printers for a few projects. One of these projects was an SD card organizer for a mobile camera setup that I recently put together. What I discovered during this design and manufacturing exercise is that 3D printers aren’t just for fun and games (don’t get me wrong, they are tons of fun) they are also very practical.
From design (left, SolidWorks 2013) to 3D printed object (right, SD card rack) – an example practical application for 3D printing
Here are some of the things I learned about 3D printers during this process:
While these new capabilities are exciting, the consumer 3D printing ecosystem is still very young. Consumer 3D printers tend to require specific setup and operation tweaks in order to achieve reliable and consistent results. The software workflow for taking 3D models to the printer can be time consuming and involved. In this article I’ll give an overview of new manufacturing specifications and features developed for Windows 8.1, and how these new features are going to create new opportunities for consumers, professionals, hardware manufacturers, and software developers. Windows 8.1 is the first OS in the world to offer comprehensive built-in support for 3D printing. It’s a very exciting time in the manufacturing world!
In order to understand the work that is being done to support 3D printing in Windows 8.1, it’s important to first look at the pre-Windows-8.1 3D printing ecosystem and typical workflow. In order to best illustrate these workflows, I’ll walk through an example scenario spanning initial design work in 3D modeling software (Computer Aided Design, CAD) all the way to the 3D printing process.
Example 3D printing end-to-end workflow:
The following diagram shows what this model-to-printer 3D workflow can look like:
Depending on which printer you are printing to, you may need to use specific software in the last phase (printing prep and printing) for the specific printer.
This process for design and printing presents some problems:
One of the goals for Windows 8.1 is to address these pain-points so that 3D printing can become more seamless and ubiquitous. What exactly does that mean? Read on.
For Windows 8.1, there were very specific goals related to 3D printing support:
The best way that I know to summarize these goals is to make 3D printing on Windows more like 2D printing on Windows. Achieving this goal would require the definition of a common 3D printing data format for Windows, integration with the Windows print pipeline, and close collaboration with the 3D printing hardware and software ecosystem.
One of the most important aspects of implementing 3D printing support in Windows was deciding how apps should pass model data to 3D printers. There are many different existing data formats related to 3D graphics and 3D models in existence today, but none meet the goals for 3D printing support in Windows. One problem was that STL (the current most common 3D printing file format today) is missing important features like color and material support. Our hardware and software partners noted that STL was important to support as an input format, but is not rich enough for the primary data format for passing data from apps to their devices. Additionally, many of the existing 3D formats are unsuitable for streaming processing by the Windows spooler and print pipeline. After evaluating the alternatives, the decision was made to develop a new 3D manufacturing based on partner feedback and requests: the 3D Manufacturing Format (3MF).
3MF is an XML-based data format which includes definitions for data related to 3D manufacturing including 3rd party extensibility for custom data. The 3MF format provides a solid foundation for 3D printing support in Windows 8.1, it’s a bit like the DNA for 3D manufacturing in Windows. Apps pass 3MF data to Windows, and Windows spools that data out to the 3D printer device drivers. With this data format defined, it became possible to integrate 3D printing support into the OS, using familiar Windows technology.
While 3D printing is different than 2D printing, many of the same print concepts translate well from the 2D printing space to the 3D printing space. Some of these common concepts include print options, spooling, print queue management, plug and play, and device communication. It was therefore decided that 3D printing in Windows 8.1 would be an extension of the Windows 2D printing model and would share the same underlying driver model, app interface, and pipeline.
For background, let’s take a high-level look at how 2D printing works in Windows. When you print a 2D document from a Windows app to an XPS-based driver, the following happens:
The following diagram illustrates the 2D printing data flow using Microsoft Word as an example:
The 3D printing sequence in Windows 8.1 looks very similar:
And here’s the resultant data flow for the 3D print pipeline:
The fact that 3D printing in Windows is built on the well tested Windows 2D print infrastructure translates to a consistent printing experience, great reliability, and a consistent developer experience for apps and devices. In Desktop apps, users are presented with a “File > Print” dialog that looks a lot like a traditional 2D printing dialog. Printing from Windows Store Apps is achieved via the Devices Charm on the Charms Bar. By selecting “Devices” on the charms bar and then “Print” from the flyout, users can then select the 3D printer to use:
And then specify 3D printing preferences:
If default settings are used, this process is as simple as selecting the printer and then clicking/tapping the print button.
The Windows 8.1 3D printing workflow is greatly improved compared with alternative solutions. Because applications are decoupled from devices, interoperability between 3D printers and apps is greatly expanded. When targeting Windows 8.1, app developers can remain focused on 3D modeling technology while 3D printer manufacturers can focus on the 3D printing side of the equation. Furthermore, it is now possible for any app in the 3D print tool chain to support 3D printing easily.
The following diagram shows how multipurpose apps and specialty apps can take advantage of 3D printing in Windows 8.1:
Windows 8.1 apps can easily support multiple 3D design, review, and printing paradigms including:
In addition to building 3D printing support into the operating system, Microsoft has also developed an SDK for developers that includes documentation and sample code for 3D printing drivers and apps. If you want to know more about the Windows 3D Printing SDK, you can contact the 3D printing team at Microsoft.
While it’s interesting to talk about 3D printing, you can’t really appreciate this new technology without seeing it in action. I have put together a quick video that demonstrates printing a 3D model from a Windows Store App to a 3D Systems Cube 2 printer on Windows 8.1 Preview:
3D Printing is an exciting technology that is rapidly evolving and becoming more accessible to consumers and professionals. At Microsoft, we’re excited to be a part of advancing this cool new technology, and look forward to sharing it with the world when Windows 8.1 ships. If you want to know more about 3D printing in Windows 8.1, please check out the resources below!
Find me on twitter here: @GavinGear
Where can i find 3mf file format specification document?
eried- While we don't have a list of specific printer models to share yet, you can go here to see our list of industry partners: blogs.technet.com/.../3d-printing-with-windows.aspx
Where is the list of the supported 3d printers? A modern UI app for Thingiverse + this kind of support is very promising... I hope I can adapt my old makerbot to work with this.