Preform slicing speed

I’m not sure if this still hold true of the latest versions of Preform, but today I just realized how slow Preform is at doing the actual slicing.

It’s one of the faster programs at generating supports, but slicing not so much. Today I started a print of an STL which had the supports already generated, so all I needed to do is send it to the printer. I selected 0.025 layer height, and that resulted in a 2866 layer print, which would take 13:08 hours to print.

So Preform began to send the data to the printer, and the printer began its first layer about 45 seconds after I clicked print. 1:42 hour later it was done slicing the model. By the time it was done sending the data, the print was already at layer 69.

I also sliced the same model with Slic3r at the same resolution and it generated the same number of slices, 2866, but only took 5 minutes to generate the slices. Now I agree that there’s a big difference between generating images, vs. generating G-Code, so I loaded the same file into Cura, which took 561 seconds (9.5 minutes) to generate the G-Code.

That’s odd, what’s your computer specs?

Perhaps instead of creating an image of each slice (as per most other slicing software) Formlabs preform calculates a path for the laser at each layer, in much the same way as a lot of 3D CAM software does (which creates a cutter path track for each Z axis level height) that could be the reason Preform is slower than software which simply produces a series of 2D images for each layer. Those images are then displayed on the LCD display or through the DLP projector to print.

MSI X99A Carbon / Core i7-6900K / 32GB DDR4 / nVidia Quadro K5500 x2 / 1TB Samsung Evo 970 NVMe / 12TB HDD Storage.

I’m pretty sure it’s not the computer. It really is that slow. Primarily because the model is very complex, due to the supports. When Preform generates it’s own supports, I think they are treated differently, but when you import a model with supports already generated, each supports branch is treated as part of the model, so I think that’s what it’s slowing it down.

That was my thinking exactly. But then I sliced the model in Cura, which generates G-Code, which is basically the same as the code generated by PreForm (I.e. a tool path, not just a series of images).

Cura took less than 10 minutes to generate the complete G-Code for all 2866 layers.

The G-Code used in Cura for your type of printer is very simple - no tool paths, nothing complicated. Have a look at a complete layer sequence by viewing the g-code, it something like below


G-code (and M-Code) is simply code to control a machine, that includes many commands in addition to calling a cutter path

For the purpose of this explanation I have ignored the control system used by Formlabs - it may well be a proprietary set of instructions that have moved away from traditional codes of machine control, but the fundamental principles will be the same.

If we look at the G-code to move through a tool path (that could be a laser path) of a simple ellipse of say 100 x 60, then we end up with this:

G00 X200 Y60.00006
G01 X199.4522 Y66.27177
G01 X197.8148 Y72.47476
G01 X195.1057 Y78.54108
G01 X191.3546 Y84.40427
G01 X186.6025 Y90.00006
G01 X180.9017 Y95.26718
G01 X174.3145 Y100.1479
G01 X166.9131 Y104.5888
G01 X158.7785 Y108.5411
G01 X150 Y111.9616
G01 X140.6738 Y114.8128
G01 X130.9017 Y117.0635
G01 X120.7913 Y118.689
G01 X110.453 Y119.6714
G01 X100.0001 Y120.0001
G01 X89.5472 Y119.6714
G01 X79.20889 Y118.689
G01 X69.09835 Y117.0635
G01 X59.32637 Y114.8128
G01 X50.00003 Y111.9616
G01 X41.2215 Y108.5411
G01 X33.08696 Y104.5888
G01 X25.68554 Y100.148
G01 X19.09832 Y95.26719
G01 X13.39747 Y90.00008
G01 X8.64547 Y84.40427
G01 X4.89436 Y78.54109
G01 X2.18525 Y72.47477
G01 X0.54781 Y66.27177
G01 X0 Y60.00006
G01 X0.5478 Y53.72835
G01 X2.18523 Y47.52535
G01 X4.89434 Y41.45903
G01 X8.64544 Y35.59584
G01 X13.39745 Y30.00004
G01 X19.09829 Y24.73292
G01 X25.68551 Y19.85219
G01 X33.08694 Y15.41133
G01 X41.22148 Y11.459
G01 X50.00001 Y8.03849
G01 X59.32636 Y5.18728
G01 X69.09834 Y2.93661
G01 X79.20887 Y1.31115
G01 X89.5472 Y0.32868
G01 X100.0001 Y0
G01 X110.453 Y0.32868
G01 X120.7913 Y1.31114
G01 X130.9017 Y2.93661
G01 X140.6738 Y5.18727
G01 X150.0002 Y8.03848
G01 X158.7786 Y11.45899
G01 X166.9131 Y15.41132
G01 X174.3147 Y19.85218
G01 X180.9018 Y24.73291
G01 X186.6028 Y30.00003
G01 X191.3548 Y35.59583
G01 X195.1059 Y41.45902
G01 X197.8149 Y47.52534
G01 X199.4523 Y53.72835
G01 X200.0002 Y60.00006
G00 X0 Y0

So as you can see G-codes can do both That is control the projection of an image, or control a cutter path, but the cutter path calculation is significantly more complicated than simply moving the z plane and displaying an image at each layer, I guess that might be a big factor as to why Preform is slower - its got a much more complex and processor intensive task to do than the slice and control software on your budget printer.

(M-Codes are miscellaneous functions often specific to a specific machine)

I did not select a MSLA printer in Cura, I selected the Peopoly Moai, which is a laser SLA printer just like the Form1, so it generated a “real” tool path.

Thats really interesting. Can you post the G-Code for your MLSA and the G-Code for the Peopoly Moai for the the same layer (just one layer)?

The GCode for the print I mentioned n the original post was simply too large to even open up in a Word document, so I put a simpler model in Cura and slice’s it with the MOAI 0.1mm profile. it generated a 42MB Gcode file. The same model was then sliced in Slic3r for the MP Mini MSLA, and it gave me a 3.4MB CWS file.

FWIW, the MSLA CWS file is not G-Code it’s just a zip containing a print profile textfile, and a bunch of PNG files representing each layer. Here is what Layer 100 looks like

And here is an excerpt from the GCode with only layer 100 and the printer G-Code Preamble and post code. I had to convert them to a PDF because text files and such are not allowed here.
PM_nun_complete - Layer 100.pdf (137.1 KB)

Yeah, the hardware should be fine

The slicing time is crazy though, even on my most complex prints I haven’t had it take more than 10 minutes

You’re saying you never had a print upload take longer that 10 minutes?

Same… I’ve had prints with >1 day of printing and it never took more than 15 minutes to calculate all the layers and then upload it to the machine… using my laptop.

I’ll post a download link for the file later this evening so that you guys can try it and tell me what you see.

As promised, here is a link to the file. The actual form file is 262MB, so I zipped it, and it makes for a smaller download (73MB)

Extract the FORM file, then open it up with Preform, select 0.025 and let me know how long it takes to upload to the printer.

Once printed you should have the 4 parts to assemble this:

What material profile did you select/ and can you please upload the STL files rather than just your FORM file

I presume from the picture that its your own supports rather than Preform’s - It looks like there is a lot of unsupported areas (the wings for example)?

Are you printing that exact combination of supports / orientation on the MP printer?

The profile is Gray v3, and yes, the supports were generated in Slic3r, not Preform.

I exported the whole model with supports as a single STL file, then printed it both on the Form 1+, and the MP Mini at 0.025. without any additional supports.

All the areas that need supports have supports. The tips of the wings point upward at angles that don’t require supports. As you can see from the photo below, it prints just fine:

Yes - The STL file (rather than the Form File) would have allowed people to play with the supports and see if its the lack of support generation by Preform that causes your problem (that is slow speeds in Preform upload)

That’s the whole point though, isn’t i? If you let Preform generate its own supports, the output will be totally different.

The idea is not to judge its ability to generate supports, rather to see how fast or slow it is when it has to slice a very complex model, which in this case is complex because of the dense supports.

Yeah, I’ve never had it take more than like 10 minutes, I haven’t done as large 25 micron prints, but I’ve filled the platform with prints at 50 microns

So I take it no one tried to print this yet.

Oh well, it is a nice little model, especially for those that like miniatures. It can be printed with any profile (I think), since the supports are already built in, you can just drop it on the platform, select 0.025 layer height, whatever profile you want, and click print.

But if no one wants to try it, I guess we’ll never know how fast (or slow) Preform really is. Too bad.