|
# IceSL printer profile specification
|
|
# IceSL printer profile specification
|
|
|
|
|
|
This is the official documentation of IceSL printer profiles. This page specifies, in technical detail, the components (i.e., files, functions, variables, etc.) that make up a printer profile for use in IceSL.
|
|
This is the official documentation of IceSL printer profiles. This page specifies, in technical detail, the components (i.e., files, functions, variables, etc.) that make up a printer profile to be used in IceSL.
|
|
|
|
|
|
## Location & Creation
|
|
## Location & Creation
|
|
|
|
|
|
Printer profiles are located inside IceSL's asset folder <sup>*</sup>: Click on *File* → *Open Assets folder* and from here navigate to the folder ```icesl-printers/fff```.
|
|
Printer profiles are located inside IceSL's asset folder<sup>1,2</sup>; Click on *File* → *Open assets folder* and from here navigate to the subdirectory ```icesl-printers/fff```.
|
|
|
|
|
|
Each directory is processed by IceSL as a single printer profile where its name corresponds to the directory's name.
|
|
Each folder inside ```icesl-printers/fff``` is processed by IceSL as a single printer profile where its name corresponds to the folder's name.
|
|
|
|
|
|
<sup>* In Windows: ```%appdata%\IceSL```, in Linux: ```$HOME/.icesl/```</sup>
|
|
<sup>1. In Windows: ```%appdata%\IceSL```</sup> <br>
|
|
|
|
<sup>2. In Linux: ```$HOME/.icesl/```</sup>
|
|
|
|
|
|
### Components
|
|
### Components
|
|
|
|
|
|
Each printer profile is made out of the following components:
|
|
A printer profile has the following components:
|
|
|
|
|
|
* ```features.lua``` : Printing settings (e.g., *bed size*, *nozzle diameter*)
|
|
* ```features.lua``` : Printer settings (e.g., *bed size*, *nozzle diameter*)
|
|
* ```printer.lua``` : G-code production functions (e.g., *prime*, *extrude*, *header*)
|
|
* ```printer.lua``` : G-code production functions (e.g., *prime*, *extrude*, *header*)
|
|
* Profiles (optional) : Printing settings subsets for specific situations (e.g., *high quality printing*, *fast printing*)
|
|
* **Profiles** (optional) : Subsets of printing settings for specific situations (e.g., *high quality printing*, *fast printing*)
|
|
* Materials (optional) : Printing settings subsets for specific materials (e.g., *PLA*, *ABS*)
|
|
* **Materials** (optional) : Subsets of printing settings for specific materials (e.g., *PLA*, *ABS*)
|
|
|
|
|
|
## ```Features.lua```
|
|
## ```Features.lua```
|
|
|
|
|
... | @@ -32,7 +33,7 @@ bed_size_z_mm = 205 |
... | @@ -32,7 +33,7 @@ bed_size_z_mm = 205 |
|
nozzle_diameter_mm = 0.4
|
|
nozzle_diameter_mm = 0.4
|
|
```
|
|
```
|
|
|
|
|
|
Some settings are tied to a extruder or a [brush](https://gitlab.inria.fr/mfx/icesl-documentation/wikis/Scripting-language#drawing-and-scale-) (e.g., ```filament_diameter_mm_0``` is the diameter of the filament loaded on extruder 0, ```infill_extruder_1``` specifies the extruder to use when printing geometry emitted on brush 1).
|
|
Some settings are tied to an extruder or a [brush](https://gitlab.inria.fr/mfx/icesl-documentation/wikis/Scripting-language#drawing-and-scale-), e.g.; ```filament_diameter_mm_0``` is the diameter of the filament loaded on extruder 0, ```infill_extruder_1``` specifies the extruder to use when printing geometry emitted on brush 1.
|
|
|
|
|
|
IceSL supports a maximum number of extruders (i.e., ```max_number_extruders```) and a maximum number of brushes (i.e., ```max_number_brushes```).
|
|
IceSL supports a maximum number of extruders (i.e., ```max_number_extruders```) and a maximum number of brushes (i.e., ```max_number_brushes```).
|
|
|
|
|
... | @@ -45,14 +46,14 @@ for i=0,max_number_extruders,1 do |
... | @@ -45,14 +46,14 @@ for i=0,max_number_extruders,1 do |
|
end
|
|
end
|
|
```
|
|
```
|
|
|
|
|
|
Settings can be *internal* or not. Non internal settings can also be set through the UI (use the search bar for a quicker set). A complete list of non internal printing settings is the following link:
|
|
Settings can be *internal* or not. Non internal settings can also be set through the UI (use the search bar for a quicker set). An exhaustive list of non internal printing settings is in the following link:
|
|
|
|
|
|
[Printing settings](https://icesl.loria.fr/parameters/)
|
|
[Printing settings](https://icesl.loria.fr/parameters/)
|
|
|
|
|
|
Some settings might be hidden in the UI depending on certain conditions (e.g., ```brim_distance_to_print_mm``` will be hidden if ```add_brim``` is false). As mentioned before, there exist internal settings and these can also be set in ```features.lua``` but not through the UI. We list them here:
|
|
Some settings might be hidden in the UI depending on certain conditions (e.g., ```brim_distance_to_print_mm``` will be hidden if ```add_brim``` is false). As mentioned before, there exist internal settings that can also be set in ```features.lua``` but not through the UI. We list them here:
|
|
|
|
|
|
* ```extruder_count``` : Number of extruders (integer)
|
|
* ```extruder_count``` : Number of extruders (integer)
|
|
* ```priming_mm_per_sec``` : "Speed for prime/retract (mm/sec) (float)
|
|
* ```priming_mm_per_sec``` : Speed for prime/retract (mm/sec) (float)
|
|
* ```extruder_swap_at_location``` : Go to a specific location to swap extruders (true/false)
|
|
* ```extruder_swap_at_location``` : Go to a specific location to swap extruders (true/false)
|
|
* ```extruder_swap_location_x_mm``` : Location to swap extruders, X coordinate (float)
|
|
* ```extruder_swap_location_x_mm``` : Location to swap extruders, X coordinate (float)
|
|
* ```extruder_swap_location_y_mm``` : Location to swap extruders, Y coordinate (float)
|
|
* ```extruder_swap_location_y_mm``` : Location to swap extruders, Y coordinate (float)
|
... | @@ -61,13 +62,13 @@ Some settings might be hidden in the UI depending on certain conditions (e.g., ` |
... | @@ -61,13 +62,13 @@ Some settings might be hidden in the UI depending on certain conditions (e.g., ` |
|
|
|
|
|
### Custom settings
|
|
### Custom settings
|
|
|
|
|
|
It is possible for user-defined printing settings to be shown and modified through the UI. Currently there is support for two types of settings; booleans and numbers. The following two definitions can be used in file ```features.lua``` of a printer profile:
|
|
It is possible for user-defined printing settings to be shown and modified through the UI. Currently there is support for two types of settings; **booleans**and **floats**. The following two definitions can be used in file ```features.lua``` of a printer profile:
|
|
|
|
|
|
```add_checkbox_setting(internal_name, description, tooltip, default)```
|
|
```add_checkbox_setting(internal_name, description, tooltip, default)```
|
|
|
|
|
|
```add_setting(internal_name, description, minVal, maxVal, tooltip, default)```
|
|
```add_setting(internal_name, description, minVal, maxVal, tooltip, default)```
|
|
|
|
|
|
Adds setting ```internal_name``` with ```description```, minimum value ```minValue``` and maximum value ```maxValue```. Default value is ```false``` for ```add_checkbox_setting``` and ```minValue``` for ```add_setting```:
|
|
These add setting ```internal_name``` with ```description```, minimum value ```minValue``` and maximum value ```maxValue```. If non is provided, default value is ```false``` for ```add_checkbox_setting``` and ```minValue``` for ```add_setting```:
|
|
* ```internal_name``` : internal name for setting
|
|
* ```internal_name``` : internal name for setting
|
|
* ```description``` : description of setting (shown in UI)
|
|
* ```description``` : description of setting (shown in UI)
|
|
* ```minValue``` : minimal value in case of a number setting (i.e., ```add_setting```)
|
|
* ```minValue``` : minimal value in case of a number setting (i.e., ```add_setting```)
|
... | | ... | |