Skip to content

Print3r: Profiles

Rene K. Mueller edited this page Oct 22, 2019 · 16 revisions

For each printer you define a profile, which you reference with --printer=<name> when calling print3r.

There are two inclusive ways to define your printer

  • slicer-independent settings (.../printer/<name>)
  • slicer-specific settings for fine-tuning (.../slicer/<slicer>/<name>)

which can reside:

  • /usr/local/share/print3r - your system-wide defaults
  • ~/.config/print3r - your personal individual changes
  • ./settings/ (current directory when calling print3r) where you can define experimental changes

The most common (slicer-independent) settings are:

  • machine_name: name of machine (e.g. Prusa i3 MK3 #1)
  • machine_width: build width (X) [mm]
  • machine_depth: build depth (Y) [mm]
  • machine_height: build height (Z) [mm]
  • nozzle_diameter: diameter of nozzle [mm] (e.g. 0.4mm)
  • filament_diameter: diameter of the filament/material [mm] (e.g. 1.75)
  • temperature: nozzle temperature [C] (e.g. 200)
  • fill_density: fill density [%] (e.g. 20)
  • layer_height: layer height [mm] (e.g. 0.3mm, max. 80% of nozzle diameter)
  • perimeters: amount of lines for wall [int] (e.g. 2) or
  • wall_thickness: thickness of walls [mm]
  • top_layers: amount of top layers [int] (e.g. 2) or
  • top_thickness: top thickness [mm]
  • bottom_layers: amount of bottom layers [int] (e.g. 2) or
  • bottom_thickness: bottom thickness [mm]
  • start_gcode: Gcode to execute at start of print (Note: slicers sometimes preheat nozzle/bed first and then execute this code)
  • end_gcode: Gcode to execute at end of print
  • retraction_length: general length of retraction [mm] (e.g. 2mm)
  • bed_temperature: bed temperature [C] (e.g. 0 off, or 60)
  • skirts: amount of skirts (e.g. 0 or 2)
  • brims: amount of brims (e.g. 0 or 5)
  • rafts: amount of raft layers (e.g. 0 or 1)
  • support: none, bed or everywhere
  • seam: aligned, random, rear, or nearest

Adding New Printer

  1. cd /usr/share/print3r/printer
  2. cp default.ini myprinter.ini (system-wide) or cp default.ini ~/.config/print3r/printer/myprinter.ini (only for you)
  3. edit myprinter.ini: set machine width, depth and height, nozzle diameter and filament diameter at least
  4. print3r --printer=myprinter print ...
  5. set environment variable PRINT3R:
    • bash: export PRINT3R printer=myprinter
    • csh: setenv PRINT3R printer=myprinter
  6. you may add more settings in the environment variable with ':' as separator

If you have multiple printers of the same type, but with slight different alterations (e.g. different nozzle size), then cp myprinter.ini myprinter-1.ini and cp myprinter.ini myprinter-2.ini and edit myprinter-1.ini and myprinter-2.ini.

Note: don't change /usr/share/print3r/printer/default.ini as it will be overwritten when you upgrade print3r but rather make a copy as suggested.

Fine Tuning

Although Print3r is providing a growing slicer-independent slicing settings, some may be still missing, then you can add slicer-specific settings, for example in .../slicer/cura/myprinter.ini to list CuraEngine specifics which are considered only when cura is used as slicer (--slicer=cura).

Macros aka Other Profiles

Macros or group settings are a list of slicer-independent settings, which reside in .../macro/<macro> and/or .../slicer/<slicer>/<macro> and can be reference in command-line as @<macro> like

% print3r @filament/sienoc @medium @hollow @thin print models/cube.scad

whereas

  • @filament/sienoc is a macro which defines layer 0 and general print temperatures, perhaps even print speed
  • @medium defines the layer height (or general "print quality")
  • @hollow sets infill to 0
  • @thin sets wall/perimeters to 1

Quality Macros

  • coarse: rough/coarse quality (layer height = 80% nozzle diameter)
  • medium: average quality (layer height = 50% nozzle diameter)
  • fine: fine quality (layer height = 25% nozzle diameter)

Misc Macros

  • hollow: infill 0%
  • thin: single wall/perimeter
  • heavy: top/bottom/wall 3 layers/3 perimeters, 30% fill density
  • light: top/bottom/wall 2 layers/2 perimeters, 20% fill density
  • feather: top/bottom/wall 1 layer/1 perimeter, and 0% fill density

Filament Profiles/Macros

Place your personal macros for filament specifics into ~/.config/print3r/macro/filament/<profile>, or for system-wide usage in /usr/share/print3r/macro/filament, e.g. for example sienoc.ini:

temperature=195
first_layer_temperature=210

Other Profiles

Place macros to

  • .../macro/<macro> slicer-independent settings and
  • .../slicer/<slicer>/<macro> for slicer-specific settings,

whereas '...' is /usr/share/print3r (system-wide) or ~/.config/print3r/ (personal).

Slicer-independent vs Slicer-specific Settings

Common settings:

Print3r Slic3r & Slic3 PE Cura
temperature [C] temperature [C ] print_temperature [C]
bed_temperature [C] bed_temperature [C] print_bed_temperature [C]
fill_density [%] fill_density [%] infill_line_distance [mm] (must be calculated)
nozzle_diameter [mm] nozzle_diameter [mm] machine_nozzle_size [mm]
filament_diameter [mm] filament_diameter [mm] material_diameter [mm]
layer_height [mm] layer_height [mm] layer_height [mm]
top_layers [int] top_solid_layers [int] top_layers [int]
bottom_layers [int] bottom_solid_layers [int] bottom_layers [int]
top_thickness [mm] - -
bottom_thickness [mm] - -
perimeters [int] perimeters [int] wall_line_count [int]
wall_thickness [mm] - -
retraction_length [mm] retraction_length [mm] retraction_amount [mm]
First Layer
first_layer_height [mm] first_layer_height [mm] layer_height_0 [mm]
n/a first_layer_extrusion_width [%] material_flow_layer_0 [%]
first_layer_temperature [C] first_layer_temperature [C] material_print_temperature_layer_0 [C]
first_layer_bed_temperature [C] first_layer_bed_temperature [C] material_bed_temperature_layer_0 [C]
Start & End Gcode
start_gcode [gcode] start_gcode [gcode] machine_start_gcode [gcode]
end_gcode [gcode] end_gcode [gcode] machine_end_gcode [gcode]
Speed
print_speed [mm/s] max_print_speed & min_print_speed [mm/s] speed_print [mm/s]
first_layer_speed [mm/s] first_layer_speed [mm/s] print_speed_layer_0 [mm/s]
travel_speed [mm/s] travel_speed [mm/s] speed_travel [mm/s]
perimeter_speed [mm/s] perimeter_speed [mm/s] speed_wall [mm/s]
small_perimeter_speed [mm/s] small_perimeter_speed [mm/s] n/a
infill_speed [mm/s] infill_speed [mm/s] speed_infill [mm/s]
n/a solid_infill_speed [mm/s] n/a
bridge_speed [mm/s] bridge_speed [mm/s] bridge_wall_speed [mm/s]
retract_speed [mm/s] retract_speed [mm/s] retraction_speed [mm/s]
Bed Adhesion
skirts [int] skirts [int] skirt_line_count [int]
brims [int] brim_width [mm] brim_line_count [int]
rafts [int] raft_layers [int] raft_surface_layers [int]
Misc
support ["none", "bed" or "everywhere"] support_material [0,1] support_enable [0,1,'True','False']
- support_material_buildplate_only [0,1] support_type ['buildplate','everywhere']
support_angle [degrees] support_material_angle [degrees] support_angle [degrees]
seam ["aligned", "nearest", "random", "rear"] seam_position ['random','nearest','aligned'], + 'rear' PE only z_seam_type ['shortest','random','sharpest_corner','back']
cool_fan_speed [%] n/a cool_fan_speed [%]
cool_fan_speed_max [%] max_fan_speed [%] cool_fan_speed_max [%]
cool_fan_speed_min [%] min_fan_speed [%] cool_fan_speed_min [%]
Coming soon (not yet implemented)
n/a support_material_speed [mm/s] speed_support + speed_support_[bottom,infill,roof] [mm/s]
n/a support_material_interface_speed [mm/s] speed_support_interface [mm/s]
n/a bottom_solid_infill_speed [mm/s] speed_topbottom [mm/s]
n/a top_solid_infill_speed [mm/s] speed_topbottom [mm/s]
  1. Slic3r's Z seam alignment 'random' is truly random along the perimeter, whereas CuraEngine's 'random' alignment seeks a random corner if possible.

Note: CuraEngine provides many ways to define a certain setting, but it's largely inconsistent in its command-line usage; where print3r tries to provide a consistent interface while being slicer-independent with the possibility to set slicer specific settings if needed.