Print settings
A print setting holds the parameters a printer prints one material with, at one layer thickness. Four values select one of the print settings Formlabs ships:
| Field | Meaning | Example |
|---|---|---|
machine_type | The printer type | FORM-4-0, the Form 4 and Form 4B |
material_code | The material | FLGPGR05, Grey V5 |
layer_thickness_mm | The layer thickness, in millimeters | 0.1 |
print_setting | The setting variant for that material and thickness | DEFAULT |
A scene carries one print setting for all its models, chosen on PreForm's Job Setup screen, or with create_scene. A combination that isn't available in your PreForm instance is rejected. To select a print setting that is not shipped with PreForm you can create or import a custom print setting in PreForm.
List the print settings#
The list_print_settings method returns every combination the running PreForm ships, grouped by printer type and material:
# Grouped by printer type, then material, then each material's variants.
catalog = preform.list_print_settings().to_dict()
for printer in catalog["printer_types"]:
for material in printer["materials"]:
for setting in material["material_settings"]:
# scene_settings is what create_scene takes.
print(printer["label"], material["label"], setting["label"],
setting["scene_settings"])Each setting has a display label, such as 0.025 mm (Default settings), and its scene_settings are the four fields create_scene takes. To list only what a connected printer accepts, pass compatible_with= with the printer's serial name.
List and check layer thicknesses#
The validate_print_setting method answers which layer thicknesses a printer, material, and print setting take, and whether one thickness works, without creating a scene:
# Without layer_thickness_mm, options lists every thickness the other three take.
thicknesses = preform.validate_print_setting(
machine_type="FORM-4-0", material_code="FLGPGR05", print_setting="DEFAULT"
)
if thicknesses.options:
print("Grey V5 on Form 4:", thicknesses.options.layer_thicknesses_mm)
# With all four, valid says whether that thickness prints.
check = preform.validate_print_setting(
machine_type="FORM-4-0",
material_code="FLGPGR05",
print_setting="DEFAULT",
layer_thickness_mm=0.05,
)
print("0.05 mm:", check.valid)Leave out layer_thickness_mm, and options.layer_thicknesses_mm lists every thickness Formlabs ships for the other three fields. Give all four, and valid says whether that thickness is one of them. For a thickness with no print settings the result of the call is false.
Create a custom setting in PreForm#
A custom print setting starts as a copy of a Formlabs setting, which you change in PreForm's Print Settings Editor:
- In PreForm, click Edit > Print Settings Editor.
- Click New Print Setting, choose the Formlabs setting to start from, and click Copy & Edit Selected.
- Change the parameters. To rename the setting, click the pencil icon next to its name.
- To use the setting on another computer, click the Export Print Setting icon next to it. PreForm saves it as an
.fpsfile. In turn Import FPS File brings an.fpsfile into your PreForm's print settings list.
For more details, see Using the PreForm Print Settings Editor.
Use a custom setting#
The create_scene and update_scene methods take an .fps file as fps_file, in place of the four print setting selection fields:
# FPS is a custom setting exported from PreForm's Print Settings Editor.
scene = preform.create_scene(fps_file=FPS)
print(preform.get_scene(scene_id=scene.scene_id).scene_settings)Export the print setting embedded into a .form file#
A .form file someone prepared in PreForm prints with the setting they chose, custom or not. When you build jobs from a script to match such a file, open it and save its setting with the save_print_setting method:
# Open a job someone prepared in PreForm, and save the setting it prints with.
job = preform.open_form_file(file=FORM).scenes[0]
print(preform.get_scene_metadata(scene_id=job.scene_id)["PrintSettingsName"])
saved = str(Path(f"{Path(FORM).stem}.fps").resolve())
preform.save_print_setting(scene_id=job.scene_id, file=saved)
# Scenes the script builds take the same setting from the file.
batch = preform.create_scene(fps_file=saved)The saved .fps file holds the scene's setting with any changes made in that scene. To move a folder of saved jobs to another setting, see the Print setting rollout example script. For each field and error code, see the Print Settings endpoints.