Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time

The OpenFL version of PreForm allows you to set custom material files for Form 1/1+ printers. Once OpenFL PreForm is installed, you can load the custom material file, Form_1+_FLGPCL02_100.ini from the PreForm UI and print with it by selecting the "Load Custom Material..." button:

In the OpenFL version of PreForm, you can select a custom Form 1/1+ material by clicking the "Load Custom Material..." button.

You can modify that file to create your own material settings. Below is a description of the most useful fields.

  • SliceHeight, the slice thickness in mm. So 0.1 means 100 µm. This should be a multiple of 0.0025 mm (2.5 µm), the size of one microstep.
  • Xcorrectionfactor, Ycorrectionfactor, a scale factor applied to the model and supports to correct for shrinkage. This correction is applied prior to slicing.

PreForm has three main categories of exposure settings:

model, support, base

When slicing, PreForm keeps track of which category each region in each slice came from and uses this information to apply exposure settings.

The algorithm that generates laser paths from a slice, uses the [PrintSettings] block of the material file. At a high level a region consists of a perimeter/skin and a bulk fill region.

The algorithm parameters are as follow:

Once the outline and fill geometry is created, PreForm applies the speeds and powers corresponding to the category the geometry came from (model, support, and base), found in the [perimeter] and [fill] blocks of the settings file. Those xyfeedrate and laserpowermw fields, along with the spacing and number of passes, define exposure energy density. Assuming a single pass, suppose we have

  • ScanlineSpacing = 0.09 (mm)
  • modelxyfeedrate = 1550 (mm/s)
  • modellaserpowermw = 62 (mW)

then the energy density is 62 mW/(0.09 mm • 1550 mm/s) = 0.4444 mW s/mm2 = 0.4444 mJ/mm2.

The laser should not be commanded to be brighter than 62 mW (delivered to the tank bottom) for a Form 1+. The laser gets less precise as it goes faster. While commanding it to drive at several meters per second should not cause damage, tracking will degrade. We recommend drawing perimeters at no faster than 800 mm/s and fill at no faster than 1600 mm/s.


To adhere to the build platform, we do many passes for layer 0 and typically do two passes for the first several layers after that. This is controlled by:

firstlayerpasses = 10  ; The number of laser passes to do for layer 0 to attach to the build platform.
otherlayerpasses = 1  ; The number of laser passes to do for most layers (typically 1).
earlylayerpasses = 2  ; The number of laser passes to do for early layers as defined by earlytimesexpose.

earlytimesexpose = 50  ; The number of layers that will be exposed earlylayerpasses times (excluding layer 0). That is, if earlytimesexpose is 3 and earlylayerpasses is 2, layer 0 will get firstlayerp

With the above four settings, the first layer is drawn 10 times (firstlayerpasses). The after that, the next 49 layers (earlylayerpasses minus one for the first layer) are drawn with 2 passes (earlylayerpasses), and most layers are drawn with 1 pass (otherlayerpasses).

Peel cycle

After the laser turns off, we wait postlasercurewait seconds. This is typically 1 second, but depends on the kenetics of your resin. It may need to be longer; it may be possible to be less.

Next, depending on if it's an "early layer" (if the layer number is less than or equal to earlytimespeel), we use the "p1" motor moves; after earlytimespeel we use the "p2" moves. The peel cycle moves down at a downvel then up at an upvel, then finally up at an upslowvel, which forces the tilt motor into the hard stop.

Finally, we wait for a duration ranging from squishwaitmin_s to squishwaitmax_s, depending on the geometry, before drawing the next layer.


Copyright 2016-2017 Formlabs

Released under the Apache License.