Microsoft last week announced that Windows 8.1 would support 3D printers directly. Almost immediately, the news was eclipsed by Fedora, which said it already had direct 3D printing. Fedora Version 19 shipped last week but Windows 8.1 will not be ready for end users until this fall, although a preview is downloadable now.
There is keen competition between the two, as the Fedora team says that they intend to "make Fedora the best distribution for 3D printing," while Microsoft insists "Windows 8.1 is the first and only platform to support it natively." (Fedora is the freeware version of Red Hat Software's commercial Linux.)
Does this mean we can now hook up cheap 3D printers to our computers, and then immediately print 3D files from 3D CAD? Not at all, as I found out. First, let's look at the steps traditionally needed to turn a 3D CAD model into a 3D product:
1. Create the 3D model in the CAD software.
2. Export the model from the CAD program to an STL file.
3. Convert the STL data to slices using G-code generator software.
4. Transmit the G-code file to the 3D printer via a the printer communications program.
5. Instruct the printhead to lay down layers of material through the 3D printer's controller firmware.
STL files [standard tessellation language] are very simple: they define the surfaces of 3D objects as a series of triangles, plus a vector to indicate the outer side of each triangle -- and no other data. Nearly every CAD program today has an STL exporter, although the quality of output varies from poor to fair.
G-code files contain simple instructions to control machines, including 3D printers -- kind of like MIDI for musical instruments. These printers lay down material in layers, which is why the 3D model is converted to slices, each slice corresponding to a layer of material. Some 3D printers use standard G-code, while others employ proprietary versions.
Because the STL files can be poor representations of 3D models, additional software is needed to check if the data is watertight (no unwanted gaps) and manufacturable by adding supports, making thin walls thicker, and so on.
The new release of Linux Fedora is said to combine steps 3 and 4 with a program that integrates the slicing activity and communicating the data to the 3D printer; see figure 1. This means that it should be possible, for instance, to send an STL file (generated by a Windows CAD program) to be printed by a Linux computer.
Figure 1: How Fedora 19 shortcuts the 3D printing process
On the Windows side, Microsoft went further, combing steps 2 through 4 by creating an API [application programming interface] and writing a driver model.
Microsoft also invented a new XML-based file format called 3MF. Their shortcut requires CAD programs to do the slicing work and saving the data in a 3MF file, which is forwarded to the 3D printer.
The API lets third-party developers add the 'Print' button to their menus (shouldn't that be a '3D Print' button?), which displays the 3D model in a print preview dialog box. Here users adjust settings typical to 3D printing, such as having more or less supporting material, setting the size based on the volume the printer can handle, and specifying the quality. You can see an example of a 3D printer preview program illustrated by Autodesk's free 3D Print utility in figure 2.
Figure 2: Print preview of a 3D model
The driver model lets Windows 8.1 support a number of 3D printers. I assume they are consumer models such as Makerbot's Replicator 2 used in Microsoft's demo. If the quality of the drivers is as poor as those provided by Microsoft for large format plotters, then you won't want to use them for precision work.
Microsoft's new 3MF [3d Manufacturing Format] format is written in XML [eXtensible Markup Language]. It packages the 3D data and other information in a ZIP file. The 3D data does not consist of simple triangles, as in STL, but of slices defined by lines, Bezier curves, elliptical arcs, and fills. STL specifies nothing but coordinates; in contrast, 3MF adds colors, size, and textures.
The "other" information in the ZIP file includes printer settings, 2D thumbnail previews, raster texture files, and digital signatures. The format can be extended by vendors to handle unique functions in their printers.
3MF also contains digital signatures to protect files when they are transmitted to another computer, such as by email. It looks to me that CAD vendors can inject their own IP [intellectual property] protection method.
The workflow looks like this:
1. The user clicks Print in the 3D CAD software, which displays a 3D print preview dialog box.
2. The user selects the printer and adjusts its parameters. This data is stored in a Print Ticket, which is added to the 3MF file.
2. When the user clicks OK, the CAD software exports the 3D model as slices in 3MF format. (Two Microsoft sources contradicted each other, and so it is not clear to me if the slicing occurs now, or later when the G-code is generated.) This requires CAD vendors to add a 3MF exporter, or for users to purchase it from third-party developers; Autodesk showed a preview using an unreleased version of its 123D Design software.
3. Windows 8.1 sends the 3MF file to the XPS print spooler (printer buffer). If this is like the current 2D spooler, then Printing 3D models uses the XPS printing subsystem.
4. The spooler sends the data to the Print Pipeline, which uses filters to convert the XML data to the 3D printer's G-code (I think), and then sends it on to the printer. Printer setup information is stored in PrintTickets.
Microsoft provides no information on how filters work. Also, it was not clear to me whether Windows 8.1 outputs printers' native G-code, or if printers have to have new firmware installed to handle 3MF, or if printer makers must provide users with new drivers that read 3MF; Microsoft will provide some drivers.
Linux. I tested the Linux implementation by installing the 0.8GB Fedora 19 on a VM drive. The online documentation indicated that OpenSCAD is included in Fedora, as is the integrated slicer and printer program; no need to download them separately apparently. But 'twas not the case. Fortunately, it was easy to add the two applications through Fedora's Software utility, which downloads and installs programs in one step.
I opened OpenSCAD, and then exported a 3D model (provided as a demo file) in STL format. Now what? I double-clicked the STL file, but the generic GEdit text editor opened the file (no relation to G-code). I tried changing the file association to the slicer-printer program, but could not find it. After some further mucking about, I gave up.
Windows. I then tested the Windows implementation by installing the 2.4GB Windows 8.1 preview. I had read that Autodesk would be supporting the direct-3D-print function in 123D Design, and so I installed it. After it installed, it prompted me to install the Autodesk 3D Print Utility, which I did. And then somewhere along the line I was prompted to install Makerbot's MakerWare software, and so I did.
I opened a simple model in 123D Design, and then clicked the 3D Print button. Well, I didn't get to experience 3MF, because 123D Design still only outputs to Autodesk's own 3D Print utility; Autodesk says the 3MF-enabled version is not yet available to us.
As I last resort, I hunted around Windows 8.1 for some proof for the existence of 3MF, but found nothing in searching for "3MF"; in looking through the formats handled by XPS Viewer; hunting the Control Panel under Devices and Printers; searching the Windows Store (as suggested by Microsoft); nor in online help.
In conclusion, Fedora and Microsoft might claim to be best or first, but the reality today is nothing and zip.
What Ralph Grabowski Thinks
As you can tell from my experience, I have no experience with 3D printers, other than watching a few at work. So I read up on what bloggers had to say. Joseph Larson of Joe's Makerbot wrote, "A good slicer makes all the difference. Microsoft is going to make the slicer." He means that 3MF will be not be good enough for complex print jobs. 3d Printing Era agrees, writing that Microsoft is "proposing a custom format that pays little regard to existing formats; Microsoft is oversimplifying the print process."
(In contrast, Makezine.com proclaims, "Why Microsoft's 3D Printing Rocks!", while The Official Microsoft Blog yells, "...a factory on every desktop!" and claims parts are printed "at home in a few minutes.")
Microsoft is losing to Androids and iPads, and so sees 3D printing as one way to regain its former kinghood. It won in the days of Windows NT when it killed the market for high-end CAD running on Unix. As vendors switched to NT, users were forced to follow, and today we cannot imagine MCAD running on Linux, seriously.
Should 3MF actually attract users to Windows 8.1, then companies like Autodesk face an uncomfortable decision. Its 123D Design runs on iPads, Macs, PCs, and in Web browsers, but the one-click 3D Print function won't be on three of the four platforms -- Apple lost what little interest it had in the engineering market, and Google is oblivious to it.
Microsoft says it is supported by hardware makers 3D Systems, Formlabs, MakerBot, Stratasys, and Tiertime, and by software vendors Autodesk, Dassault Systemes, netfabb, and Trimble. Microsoft directly supports Aurduino-based hardware.
As prices of 3D printers fall, makers will have little interest in spending profits on writing 3MF code. Similarly, CAD vendors will have little incentive to add slicer and PrintTicket code to their programs. They would be writing code that works with only Windows 8.1 and its tiny market share -- an operating system that maker customers have no need to embrace. For Microsoft, the aim is to monopolize 3D printing inside Windows 8.x, and I trust it will again fail.
"Fedora 19 Features: 3D Printing": http://fedoraproject.org/wiki/Features/3D_Printing
"Microsoft, Autodesk Bring 3D Printing Closer to the Mainstream": http://www.pcmag.com/article2/0,2817,2421319,00.asp
"Windows 8.1 will have 3D printing support": http://joesmakerbot.blogspot.ca/2013/06/windows-81-will-have-3d-printing-support.html
"Problems with Windows 8.1 3D Printing API": http://www.3dprintingera.com/problems-with-windows-8-1-3d-printing-api/
3MF file format documentation: http://download.microsoft.com/download/C/6/C/C6C3C6F1-E84A-44EF-82A9-49BD3AAD8F58/Windows/MS-TDPRP.pdf
Letters to the Editor
Re: Reporting from the Second Solid Edge User Conference
"The numbers that SolidWorks claims are right, but need explanation. SW World is pulling together not only the users but also resellers and staff worldwide. As far as I know, resellers are forced to send some people to keep their statuses as official dealer. As far as I found out, the 5,000 attendees are split in roughly 1,500 SW employees, 1,300 resellers, 2,000 users -- and don't forget the huge press corps of 200.
"The user count is 2,000-2,500, all figures rough estimates. Still, this is 4-5 times the Solid Edge user count. But SW World has had more than ten years to build up a reputation, so let's wait to see what Karsten Newbury and his team make up over the years. (I was at the Solid Edge event last year and liked it very much.)
- Ralf Steck, Die Textwerkstatt
The editor replies: "In his report on SEU 13, John Evans writes:
- 500 users in 68 Sessions
- 18+/- vendors and partners
- 100 Siemens experts on hand blue shirts everywhere."
"You might want to correct this: SEU 2013 was the third national Solid Edge event, although it was the second one named University. Huntsville in 2011, Nashville in 2012, and then Cincy. The numbers did double from the first event to the second one, but I think they did not grow a lot for the third one. I have not seen numbers yet to know, but I bet they did not top 600 users."
- Dave Ault
"We really should talk about PRISM and how it absolutely screws up cloud CAD."
- Alex Bausk, @bauskas