OpenFL Material Files and technical info from flexvat.com

Since I started designing the Form 1/1+ aftermarket FEP/PDMS vat I have needed to create numerous material files for testing. I have in general sent these files via email to the purchasers of my vats (excuse me if I call resin trays vats, force of habit) . Early on I created a documented material file that I used as the basis for most of the files I will post here. The documented file has a quick start section and some explanation of how material files actually work. The material files I have created have, in my opinion, a more simplified layout that grouped the “sections” of the file in a more logical fashion. I will add material files to this topic as new ones become available, I also have technical information which I will post here and update from time to time. Also, I have had my material files posted without attribution and having spent a considerable amount of time on these files I feel that my work should be recognized as being my work (please feel free to question my attitude and motives, flames will be cheerfully accepted : ).

Henry Locke, flexvat.com

For a quick overview of editing material file exposure settings see “Working with OpenFL material files, the basics” below the Documented material file listing.

These files were created for use with the flexvat.com FEP and PDMS configurations of my vat on the Form 1/1+ printer but can be used with any vat, please view these files as being a starting point for your own testing. TIP: most 3rd party resins are “faster” (need less exposure but are more reactive) than Formlabs oem resins, because of this they can “wear” PDMS release layers faster than Formlabs resins will. If you are testing 3rd party resins start with the medium exposure material files,

NOTE: these files are best viewed using a text editor like notepad++: https://notepad-plus-plus.org/download

The basic material files (documented, low medium and high exposure) can be downloaded as a zip file here: http://projectsinterestsandetcetera.com/?post_type=wpdmpro&p=1668&preview=true

Some Dental Material files, Nextdent, FSL3D can be downloaded as a zip file here: http://projectsinterestsandetcetera.com/download/dental-nextdent-fsl3d/

A resin testing material file can be downloaded here: http://projectsinterestsandetcetera.com/download/form-1-resin-test-material-file/

I will post some Makejuice material files when I get the chance to sort through the ones I have

Documented Material file, you should look at this first, Note it is best that you download the zip files and use notepad++ to view this file without all of the wordwrap:

NOTE: comments start with a ;

;;;;;;;;;;;;;;;;; FORMLABS MATERIAL CONFIGURATION ;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; This material file was ceated by Henry Locke (flexvat.com) based on the Formlabs Form_1+_FLGPCL02_100.ini material file
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; WARNING: Modifying these settings can lead to damage ;;;;;;
;;;;;;;;;; to your Form 1+ and void its warranty. ;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;If you are going to edit material files you should download and install a text editor that is made to work with files of this type and use it for editing the material files:
;notepad++ for windows https://notepad-plus-plus.org/download or a mac equivalent like Atom https://atom.io/

;This material file is for use with Preform OpenPF:
;The original material file (Formlabs Clear V2) can be found here: https://github.com/Formlabs/OpenFL/blob/master/Form_1%2B_FLGPCL02_100.ini
;The OpenPF version of Preform can be downloaded from the following links (links are from from the OpenPf Github page):
;Windows: https://s3.amazonaws.com/FormlabsReleases/Release/2.3.3/PreForm_setup_2.3.3_release_OpenFL_build_2.exe
;Mac: https://s3.amazonaws.com/FormlabsReleases/Release/2.3.3/PreForm_2.3.3_release_OpenFL_build_2.dmg
;Note: You can have Preform and Preform OpenPF on the same PC, after installing Preform OpenPF rename the OpenPF shortcut (icon) so that you can tell the difference between the Preform and Preform OpenPF programs. I suspect the same can be done on Macs.
;If you are going to work with this type of file you will want to download the notepadd++ text editor: https://notepad-plus-plus.org/ because programs like notepad do not handle this type of file well.

;*****************************************************************************************************************************************************
;****** FAST START *********************************************************************************************************************************
;*****************************************************************************************************************************************************
;
;****** use the settings in this file as the starting point for your exposure testing. *************************************************************
;
; WHAT YOU NEED TO KNOW TO START:
;
; in the [Overview] section the MaterialName is what appears as the material being used in OpenPF, the filename should probably match this description. When you make changes to this file save it under a new name (File > Save As)
;
; in the [perimeter] section you can change the exposure used for drawing the perimeter (aka outline, shell) of the object being printed by changing “modelxyfeedrate” (the speed which the laser beam moves) or “modellaserpowermw”
; (the intensity of the laser beam - this should never be set higher than 62). Initially only use modellaserpowermw to change the exposure until you have gained some experience creating material files. Increasing modellaserpowermw
; increases exposure (thicker, harder resin cure), decreasing modellaserpowermw decreases exposure (thinner, softer cure), Note: LOWERING modelxyfeedrate will INCREASE the exposure, INCREASING modelxyfeedrate will LOWER the exposure.
;
; in the [fill] section you can change the exposure used for drawing the fill (aka infill, note: the fill is always solid) of the object being printed by changing “modelxyfeedrate” (the speed which the laser beam moves) or “modellaserpowermw”
; (the intensity of the laser beam - this should never be set higher than 62). Initially only use modellaserpowermw to change the exposure until you have gained some experience creating material files. Increasing modellaserpowermw
; increases exposure (thicker, harder resin cure), decreasing modellaserpowermw decreases exposure (thinner, softer cure), Note: LOWERING modelxyfeedrate will INCREASE the exposure, INCREASING modelxyfeedrate will LOWER the exposure.
;
; Note: I have found that the ratio between [perimeter] laserpowermw and [fill] modellaserpowermw is between 1:1.3 and 1:1.5 (I use 1:1.3) IF YOU ARE USING [PERIMETER] modelxyfeedrate = 800 AND [fill] modelxyfeedrate = 1550 *****
; for example, if fill modellaserpowermw is 35 perimeter modellaserpowermw will be 45.5) (I round to 1 decimal place). If you see a difference between the perimeter outlines and fill you may want to change the ratio between perimeter and fill exposures.
;
; In the [PrintSettings] section use SliceHeight to control the layer thickness, for example 0.1 = 100 microns, 0.05 = 50 microns, 0.025 = 25 microns
;
; In the [laserRoutine] section firstlayerpasses is the number of laser passes for the build plate attachment layer, 10 to 20 passes should be more than enough, if the item you are printing does not stick to the build plate
; the build plate is not correctly adjusted.
;
; there are a lot of comments next to the settings below that explain what the settings do but the settings above are the basics.
;
;
***************************************************************************************************************************************

;********************************************************************************************************************************************
;IMPORTANT NOTE: any setting that has the word “laserpowermw” in it should never be set higher than 62
;********************************************************************************************************************************************

;Note: all notes must start with a semicolon (;), notes can be anywhere in the text but cannot be between a setting and its perameter.

[Overview]
;this is the material name that appears as the description of this custom material in OpenPF. I usually also use this as the file name for the material.
; description example: MaterialName = MJClear_RedP_FEPVAT_V1_pt1Layers , filename example: MJClear_RedP_FEPVAT_V1_pt1Layers.ini
MaterialName = Documented_Preform_OpenPF_Material_File

[perimeter]
;These are the perimeter (“shell”) settings: in photography terms *feedrate is equivalent to shutter speed (the higher the number the LOWER the exposure), *laserpowermw is equivalent to apeture (the higher the number the HIGHER the exposure).
;Note: I have found that the ratio between [perimeter] laserpowermw and [fill] modellaserpowermw is between 1:1.29 and 1:1.49
;for example, if fill modellaserpowermw is 35 perimeter modellaserpowermw will be 45), I round to whole numbers.
modelxyfeedrate = 800 ; Laser speed in mm/s for the perimeter of the model. (Faster than 800 mm/s may noticably reduce surface quality.)
modellaserpowermw = 35 ; Laser power in mW for the perimeter of the model (max: 62 mW)
supportxyfeedrate = 800 ; Laser speed in mm/s for the perimeter of the supports. (Faster than 800 mm/s may noticably reduce surface quality.)
supportlaserpowermw = 35 ; Laser power in mW for the perimeter of thesupports. (max: 62 mW)
basexyfeedrate = 800 ; Laser speed in mm/s for the perimeter of the base (aka raft). (Faster than 800 mm/s may noticably reduce surface quality.)
baselaserpowermw = 35 ; Laser power in mW used for the perimeter of the base (aka raft). (max: 62 mW)

[fill]
;these are the fill (“infill”) settings, think of prints as having solid infill: in photography terms *feedrate is equivalent to shutter speed (the higher the number the LOWER the exposure), *laserpowermw is equivalent to apeture (the higher the number the HIGHER the exposure).
;Note: On average models should be hollow (“shelled”), printing models solid both wastes resin and will cause all kinds of shrinkage and printing problems. Meshmixer is a good program to use for hollowing models: http://www.meshmixer.com/ . 1mm to 4mm walls work well depending on the model, include a drain hole in the model.
;Note: I have found that the ratio between [perimeter] laserpowermw and [fill] modellaserpowermw is between 1:1.29 and 1:1.49, for example, if fill modellaserpowermw is 35 perimeter modellaserpowermw will be 45), I round to whole numbers.
modelxyfeedrate = 1550 ; Laser speed in mm/s used for filling the model. (Faster than about 1600 mm/s may produce noticable artifacts.)
modellaserpowermw = 45.5 ; Laser power in mW for the model. (max: 62 mW)
supportxyfeedrate = 1550 ; Laser speed in mm/s used for filling supports. (Faster than about 1600 mm/s may produce noticable artifacts.)
supportlaserpowermw = 45.5 ; Laser power in mW for filling supports. (max: 62 mW)
basexyfeedrate = 1550 ; Laser speed in mm/s used for filling the base (aka raft). (Faster than about 1600 mm/s may produce noticable artifacts.)
baselaserpowermw = 45.5 ; Laser power in mW used for filling the base (aka raft). (max: 62 mW)

[PrintSettings]
;layer thickness, number of offsets (shells) , laser beam overlap and model size adjustments
SliceHeight = 0.1 ; The layer thickness in mm. For example 0.1 is 100 microns (0.1 mm). Be aware that values not corresponding to whole z-motor microsteps (0.0025 mm) will be rounded.
ScanlineSpacing = 0.09 ; Spacing of fill lines in mm.
InnerBoundaryOffset = 0.12
OuterBoundaryOffset = 0.03 ; Offset from model perimeter to outermost outline in mm. Conceptually this is the curing radius of the outermost outline.
Xcorrectionfactor = 1.008 ; Scale factor for the x axis to account for shrinkage.
Ycorrectionfactor = 1.008 ; Scale factor for the y axis to account for shrinkage.
ScanlineBoundaryOffset = 0.03 ; Offset in mm from the innermost outline to the boundary of the fill. If this is zero, the fill touches the innermost outline; if this is positive it does not; if this is negative, the fill overlaps at least the inner outline.
OffsetsNum = 3 ; Number of outlines to draw. min: 0; max: unlimited

[laserRoutine]
;Laser passes over model during layer exposure, can be different for different types of layers.
;build plate attachment layer exposure
firstlayerpasses = 10 ; The number of laser passes to do for layer 0 to attach to the build platform.
;normal layer exposure
otherlayerpasses = 1 ; The number of laser passes to do for most layers (typically 1).
;usually used for support layers, not needed for “standard” i.e non form1 specific resins. I use this as a second build plate attachment layer.
earlylayerpasses = 2 ; The number of laser passes to do for early layers as defined by earlytimesexpose. ***** NOTE: used as second attachment layer *****

[btwnLayerRoutine]
;Vat and build plate movement, speeds and timings between layer exposures
;Note: some layer and build plate attachment problems can be helped by lowering p1downvel and or p2downvel settings (slows the tilt)
earlytimesexpose = 2 ; 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 firstlayerpasses passes, layer 1 and 2 will get 2 passes, and subsequent layers will get otherlayerpasses passes.
postlasercurewait = 1 ; Duration in seconds to wait from when the laser turns off until the motors start to move.
earlytimespeel = 10 ; The number of layers for which the p1 moves will be done. These are typically slower moves.
p1downvel = .75 ; Initial tilt speed in mm/s (at the tilt motor).
p1downmove = 10 ; Initial tilt distance in mm.
p1upvel = 2 ; Velocity of p1upmove in mm/s.
p1upmove = -10 ; Tilt up-move displacement in mm (should be negative).
p1upslowvel = 10 ; Velocity for p1upslowmove in mm/s.
p1upslowmove = -0.5 ; Additional up move in mm to overdrive into the hard stop. (Should be negative or zero.)
p2downvel = .75 ; Velocity of p2downmove in mm/s.
p2downmove = 7.5 ; After earlytimespeel, tilt distance in mm.
p2upvel = 5 ; Speed of p2upmove in mm/s.
p2upmove = -7.5 ; After earlytimespeel, un-tilt distance in mm. (should be negative.)
p2upslowvel = 10 ; Speed of p2upslowmove in mm/s.
p2upslowmove = -0.5 ; After earlytimespeel, overdrive distance into hard stop in mm. (Should be negative or zero.)
squishwaitmin_s = 0.5 ; Low end of the time in seconds we wait between finishing squishing and turning on the laser.
squishwaitmax_s = 2 ; High end of the time in seconds we wait between finishing squishing and turning on the laser.


2 Likes

Working with OpenFL material files, the basics:

I have this thing I call the keys to the kingdom basically its the few items of knowledge that unlock the ability to understand an entire concept. For working with OpenFL material files I believe the following are the keys.

The layer exposure must match the resin being used, this affects how well defined and how structurally sound the printed model will be.

The concept:

At the most basic when manipulating the layer exposures in a material file you are dealing with two things and you must manipulate them both when adjusting your layer exposures: the perimeter exposure which on Formlabs printers is the outer edges of a model that the laser beam traces and the fill the “insides” of the model traced by the laser. If the model you want to print were a tree the perimeter would be the bark and the fill would be the core of the tree.

The exposure of the perimeter and fill have a balance, if you were to print a single layer of a model (in a puddle of resin, no build plate) cleaned and post cured the layer then looked at that layer closely you would be able to see both the perimeter and fill laser scan lines. The perimeter and fill should appear quite similar and be the same thickness*. If the perimeter is thicker than the fill the perimeter exposure is high in comparison to the fill, if the fill is thicker than the perimeter the fill exposure is high in comparison to the perimeter.

If the perimeter and fill match and you want to increase or decrease the overall layer exposure increase or decrease the perimeter and fill values IN THE SAME PROPORTION. If the perimeter is thicker than the fill and you want to increase or decrease the overall layer exposure increase or decrease the perimeter and fill values but with a lower perimeter value proportionally. If the fill is thicker than the perimeter and you want to increase or decrease the overall exposure increase or decrease the perimeter and fill values but with a lower fill value proportionally.

What does this all mean from a practical standpoint:

lets say that you are using this material file exposure as a base exposure:
The perimeter to fill exposure proportion is: 1 (perimeter exposure) to 1.3 (fill exposure)
NOTE: Only laser power is being manipulated in the following examples

[perimeter]
modelxyfeedrate = 800
modellaserpowermw = 35
supportxyfeedrate = 800
supportlaserpowermw = 35
basexyfeedrate = 800
baselaserpowermw = 35

[fill]
modelxyfeedrate = 1550
modellaserpowermw = 45.5
supportxyfeedrate = 1550
supportlaserpowermw = 45.5
basexyfeedrate = 1550
baselaserpowermw = 45.5


if your model prints “thick” with low resolution (layer exposures are too high) lower your layer exposure proportionally
Perimeter to fill exposure proportion: 1 (perimeter exposure) to 1.3 (fill exposure)
NOTE: Only laser power is being manipulated in the following examples

[perimeter]
modelxyfeedrate = 800
modellaserpowermw = 30
supportxyfeedrate = 800
supportlaserpowermw = 30
basexyfeedrate = 800
baselaserpowermw = 30

[fill]
modelxyfeedrate = 1550
modellaserpowermw = 39
supportxyfeedrate = 1550
supportlaserpowermw = 39
basexyfeedrate = 1550
baselaserpowermw = 39


If your model falls apart when printing (layer exposures are too low) increase your layer exposure proportionally
Perimeter to fill exposure proportion: 1 (perimeter exposure) to 1.3 (fill exposure)
NOTE: Only laser power is being manipulated in the following examples

[perimeter]
modelxyfeedrate = 800
modellaserpowermw = 40
supportxyfeedrate = 800
supportlaserpowermw = 40
basexyfeedrate = 800
baselaserpowermw = 40

[fill]
modelxyfeedrate = 1550
modellaserpowermw = 52
supportxyfeedrate = 1550
supportlaserpowermw = 52
basexyfeedrate = 1550
baselaserpowermw = 52


Strengthen your model without affecting model resolution much, increase the fill exposure.
NOTE: Only laser power is being manipulated in the following examples

[perimeter]
modelxyfeedrate = 800
modellaserpowermw = 35
supportxyfeedrate = 800
supportlaserpowermw = 35
basexyfeedrate = 800
baselaserpowermw = 35

[fill]
modelxyfeedrate = 1550
modellaserpowermw = 50
supportxyfeedrate = 1550
supportlaserpowermw = 50
basexyfeedrate = 1550
baselaserpowermw = 50


Model strength ok, lets try to increase model sharpness a bit by dropping the perimeter exposure
NOTE: Only laser power is being manipulated in the following examples

[perimeter]
modelxyfeedrate = 800
modellaserpowermw = 32
supportxyfeedrate = 800
supportlaserpowermw = 32
basexyfeedrate = 800
baselaserpowermw = 32

[fill]
modelxyfeedrate = 1550
modellaserpowermw = 45.5
supportxyfeedrate = 1550
supportlaserpowermw = 45.5
basexyfeedrate = 1550
baselaserpowermw = 45.5

You can make supportlaserpowermw and baselaserpowermw exposures higher to make the base and supports stronger but the modellaserpowermw settings for perimeter and fill are what affects the print.

you will probably notice that I only changed the *laserpowermw parameters, it’s best to only change the laser power if you can get away with it, if you get to the 62mw laser power limit and still need more exposure you can drop the *feedrate parameters (this increases the exposure) but this will also increase your print time. Changing both *laserpowermw and *feedrate at the same time to control layer exposure is asking for a very confused exposure setting.

there is some other trick stuff you can do and when I get some time I will post some of that here.
in the mean time you should test your resins using the files located here:

2 Likes

It’s been a long time since you posted this, but I’ve got to give a huge thanks. I just acquired a new-in-box Form 1+ that prints beautifully with Form 2 resin, but that’s… expensive. lol.

I’m giving a go with some Anycubic resin I got, and will play from there. Maybe I’ll end up back at Formlabs’ resin again, who knows. That stuff is so unbelievably expensive though :open_mouth:

You seem to be pretty much the only person on the planet that’s actually made custom material .ini’s from the OpenFL system, at least that I can find.

Many thanks for this. Just wanted you to actually get a thanks for this thread for once :wink:

edit: LOL DEFINITELY NOT “MEDIUM” EXPOSURE :o How did it damage the vat?! Holy hell! This was a brand new vat (Form 1 rev1, still had the protective wrap on it)…

The laser appeared very faint compared to how it normally looks when printing with FL resin. I had no suspicion this was happening…

edit: photos of the printed part that took the chunk out


I’m trying a different test piece using “Clear v1” profile, as it seems to have the lowest exposure of the Form resins. I really can’t understand how this thing was able to damage the bed like this, unless maybe it stuck too hard, pulled the silicone pad up, then the laser started firing at the gap which caused the burning… even then, weird.

update: ran a print with the “low exposure”, much better, but still bad supports. Working through tuning it is time-consuming but I’m crunching through it. I also happen to have 3 new bottles of super-long-past expired Form 1 resins from 2013 and 2014… and a mix of 50/50% Anycubic Grey and 2013’s Formlabs Black V1 actually turned out really promising! Also, the ability to reduce the peel distance is SUPER helpful. Will update more tomorrow…


(aborted print due to time constraints. Also yeah, why do I want “cheap” when I’ve got access to a Form Wash, Cure, and a Form 2? Because the Form 1+ is my personal machine, but I have a Form 2 setup available at work :wink: )

1 Like

since im still intrested in 3d printing, I note the ad-hom, your vat was extremely well made and of excellent quality. however, this is a community, free to distribute information, without claus , without payment.

-I purchased your vat, however the attitude how you expect a 10/10 without a review is concerning to me.
-The formlabs ini file was distrubuted by formlabs themselfs. (They didn’t have to) , which to me, is a form of a
github drop. which means it is then open source. I think you do amazing work. but the rush for a speedy good review is entitlement. Your vats should be put to the fullest stess test before a valued review created, This is not an attack merely my own opinion.

-Howver, when dealing with specific ini’s things need to be calcuated for ; such as, condition of machine, knowledge of user, resin used, temp conditions etc, alot factors into a custom ini file. at which, that time takes testing for a complete review, problems, pros/cons, improvements.

At which point in time, the entire community can then come together and discuss a project. Which then leads to
improvements.

I still have nothing bad to say about your work. Just let customers test, your work. Yes Mr locke I thank you, before you I didnt know what a 3d printed part acutally felt/looked like or even handled. which then led me to become interested in pla printing.

1 Like

Hi Sharpknife
I also now have a Form1 working with OpneFL and firmware 1.44 and Python 2.7.18.

Do You still use your Form1 and the flexvat ?

It should be nice to be able to share ideas !

Best Regards
Lars Herrnsdorf