... | ... | @@ -21,6 +21,8 @@ Printer profiles are located inside IceSL's asset folder<sup>1,2</sup>; Click on |
|
|
|
|
|
Each folder inside ```icesl-printers/fff``` is processed by IceSL as a single printer profile where its name corresponds to the folder's name. **The folder name cannot contain spaces**.
|
|
|
|
|
|
Printer profiles installed with IceSL are also kept in a [public GitHub repository](https://github.com/shapeforge/icesl-printers/). We welcome contributions from users.
|
|
|
|
|
|
<sup>1. In Windows: ```%appdata%\IceSL```</sup> <br>
|
|
|
<sup>2. In Linux: ```$HOME/.icesl/```</sup>
|
|
|
|
... | ... | @@ -39,7 +41,7 @@ Files ```features.lua``` and ```printer.lua``` **must** start with the following |
|
|
version = 2
|
|
|
```
|
|
|
|
|
|
<sup>3. This requirement will be recalled in the future</sup>
|
|
|
<sup>3. This requirement was recalled in the current beta version of IceSL</sup>
|
|
|
|
|
|
## ```features.lua``` <a name="features_lua"></a>
|
|
|
|
... | ... | @@ -67,11 +69,27 @@ for i=0,max_number_extruders,1 do |
|
|
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). An exhaustive list of non internal printing settings is in the following link:
|
|
|
In spite of the above, a printer profile has the ability to assign a common value to all different instances of a setting<sup>4</sup>, be it per-brush or per-extruder. For example:
|
|
|
|
|
|
```lua
|
|
|
print_perimeter = false
|
|
|
```
|
|
|
|
|
|
is equivalent to:
|
|
|
|
|
|
```lua
|
|
|
for i=0,max_number_brushes,1 do
|
|
|
_G['print_perimeter _'..i] = false
|
|
|
end
|
|
|
```
|
|
|
|
|
|
Individual per-brush or per-extruder values (e.g., ```print_perimeter_2 = true```) take precedence over common values (e.g., ```print_perimeter = false```).
|
|
|
|
|
|
Additionally, 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/)
|
|
|
|
|
|
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:
|
|
|
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 also 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 installed on the printer(integer)
|
|
|
* ```priming_mm_per_sec``` : Speed for prime/retract (mm/sec) (float)
|
... | ... | @@ -81,6 +99,8 @@ Some settings might be hidden in the UI depending on certain conditions (e.g., ` |
|
|
* ```extruder_swap_retract_speed_mm_per_sec``` : Retractation speed after a swap (mm/sec) (float)
|
|
|
* ```extruder_mix_count_e``` : Number of mixed filaments on extruder ```e``` (integer)
|
|
|
|
|
|
<sup>4. This feature only is available at the moment in the beta version of IceSL</sup>
|
|
|
|
|
|
### Custom settings <a name="custom"></a>
|
|
|
|
|
|
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:
|
... | ... | @@ -101,7 +121,7 @@ The setting's value can then be queried in file ```printer.lua``` of the printer |
|
|
|
|
|
## ```printer.lua``` <a name="printer_lua"></a>
|
|
|
|
|
|
This file specifies how to translate the sliced geometry to printing instructions, hereafter referred to as the _G-Code file_. These instructions are specific to the machine/printer the profile is made for. Moreover, the translation is done through lua functions that are called by IceSL whenever the print process demands it <sup>4</sup>. The list of functions to implement are the following:
|
|
|
This file specifies how to translate the sliced geometry to printing instructions, hereafter referred to as the _G-Code file_. These instructions are specific to the machine/printer the profile is made for. Moreover, the translation is done through lua functions that are called by IceSL whenever the print process demands it <sup>5</sup>. The list of functions to implement are the following:
|
|
|
|
|
|
| Function | Description |
|
|
|
| ------ | ------ |
|
... | ... | @@ -126,7 +146,7 @@ This file specifies how to translate the sliced geometry to printing instruction |
|
|
| ```set_and_wait_extruder_temperature(ext,temp)``` | called when setting the extruder ```ext``` temperature to ```temp``` while waiting |
|
|
|
| ```set_mixing_ratios(ratios)``` | called when setting the mixing ratios of each filament feeding onto the mixing extruder; ```ratios``` is a table containing the ratio for each filament. This function is only called when using color mixing |
|
|
|
|
|
|
<sup>4. Though all printer profiles packaged in IceSL produce G-Code, this approach is sufficiently general to allow production of other machine languages, and by extension, to other manufacturing machines.</sup>
|
|
|
<sup>5. Though all printer profiles packaged in IceSL produce G-Code, this approach is sufficiently general to allow production of other machine languages, and by extension, to other manufacturing machines.</sup>
|
|
|
|
|
|
### Helper functions <a name="helpers"></a>
|
|
|
|
... | ... | |