-
Notifications
You must be signed in to change notification settings - Fork 4
Print3r: Profiles
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 callingprint3r
) 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.4
mm) -
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.3
mm, 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.2
mm) -
bed_temperature
: bed temperature [C] (e.g.0
off, or60
) -
skirts
: amount of skirts (e.g.0
or2
) -
brims
: amount of brims (e.g.0
or5
) -
rafts
: amount of raft layers (e.g.0
or1
) -
support
:none
,bed
oreverywhere
-
seam
:aligned
,random
,rear
, ornearest
cd /usr/share/print3r/printer
-
cp default.ini myprinter.ini
(system-wide) orcp default.ini ~/.config/print3r/printer/myprinter.ini
(only for you) - edit
myprinter.ini
: set machine width, depth and height, nozzle diameter and filament diameter at least print3r --printer=myprinter print ...
- set environment variable
PRINT3R
:- bash:
export PRINT3R printer=myprinter
- csh:
setenv PRINT3R printer=myprinter
- bash:
- 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.
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 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
-
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)
-
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
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
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).
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] |
- 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.