... | ... | @@ -23,7 +23,7 @@ Each folder inside ```icesl-printers/fff``` is processed by IceSL as a single pr |
|
|
|
|
|
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>1. In Windows: ```%appdata%\IceSL\```</sup> <br>
|
|
|
<sup>2. In Linux: ```$HOME/.icesl/```</sup>
|
|
|
|
|
|
### Components <a name="components"></a>
|
... | ... | @@ -65,6 +65,7 @@ In spite of the above, a printer profile has the ability to assign a common valu |
|
|
|
|
|
```lua
|
|
|
print_perimeter = false
|
|
|
filament_diameter_mm_2 = 2.50
|
|
|
```
|
|
|
|
|
|
is equivalent to:
|
... | ... | @@ -83,23 +84,24 @@ Additionally, settings can be *internal* or not. Non internal settings can also |
|
|
|
|
|
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:
|
|
|
|
|
|
* ```xy_mm_per_int``` : Polygonal integer grid scale (mm/int)
|
|
|
* ```extruder_count``` : Number of extruders installed on the printer(integer)
|
|
|
* ```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 w.r.t. the printing bed's closest left corner [front-facing] (float)
|
|
|
* ```extruder_swap_location_y_mm``` : Location to swap extruders, Y coordinate w.r.t. the printing bed's closest left corner [front-facing] (float)
|
|
|
* ```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)
|
|
|
* ```priming_mm_per_sec``` : Speed for prime/retract (mm/sec) (float)
|
|
|
* ```retract_perimeter_safety_distance_mm``` : Retract distance on perimeter end (mm) (float)
|
|
|
* ```tower_at_location```: Set tower location (true/false)
|
|
|
* ```tower_location_x_mm```: Set tower X (mm) location w.r.t. the printing bed's closest left corner [front-facing] (float)
|
|
|
* ```tower_location_y_mm```: Set tower Y (mm) location w.r.t. the printing bed's closest left corner [front-facing] (float)
|
|
|
* ```bed_part_offset_x_mm```: Set bed offset (mm) w.r.t. the geometry's center on the X axis<sup>3</sup>
|
|
|
* ```bed_part_offset_y_mm```: Set bed offset (mm) w.r.t. the geometry's center on the Y axis<sup>3</sup>
|
|
|
* ```cycle_gap_mm```: space (mm) gap at the end of a path whenever it closes onto itself<sup>4</sup>
|
|
|
* ```bed_part_offset_x_mm```: Set bed offset (mm) w.r.t. the geometry's center on the X axis (float)
|
|
|
* ```bed_part_offset_y_mm```: Set bed offset (mm) w.r.t. the geometry's center on the Y axis (float)
|
|
|
* ```cycle_gap_mm```: space (mm) gap at the end of a path whenever it closes onto itself<sup>3</sup> (float)
|
|
|
* ```enable_zigzag_cover_strict_ordering_b``` : Enable strict ordering for cover zigzag infill on brush ```b``` (bool)
|
|
|
* ```zigzag_cover_strict_ordering_angle_b``` : Angle for strict ordering of cover zigzag infill on brush ```b``` (float)
|
|
|
* ```preserve_zigzag_strict_ordering_``` : Preserve zigzag ordering for dense surfaces on brush ```b``` (bool)
|
|
|
* ```cover_flow_multiplier_``` : Cover flow multiplier for brush ```b``` (float)
|
|
|
* ```mixing_wipe_length_mm``` : Wipe length when printing with multiple materials (float)
|
|
|
|
|
|
<sup>3. This feature only is available at the moment in the beta version of IceSL.</sup>
|
|
|
|
|
|
<sup>4. If set to 0 you are likely to obtain a small blob because the tail of the path overlaps the head. Set it too large and you will obtain a gap. If left unset the setting will default to a reasonable built-in value (auto computed from the nozzle diameter).</sup>
|
|
|
<sup>3. If set to 0 you are likely to obtain a small blob because the tail of the path overlaps the head. Set it too large and you will obtain a gap. If left unset the setting will default to a reasonable built-in value (auto computed from the nozzle diameter).</sup>
|
|
|
|
|
|
### Custom settings <a name="custom"></a>
|
|
|
|
... | ... | @@ -121,7 +123,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>5</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>4/sup>. The list of functions to implement are the following:
|
|
|
|
|
|
| Function | Description |
|
|
|
| ------ | ------ |
|
... | ... | @@ -147,11 +149,11 @@ 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. Called when using multiple extruders |
|
|
|
| ```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 |
|
|
|
|
|
|
Functions returning a value (i.e., ```prime``` and ```retract```) are expected to be **called by IceSL only** <sup>6</sup>. This is due to the fact that IceSL uses the returned value to internally keep track of the E-axis. Calling them explicitly may render the E values fed to the profile functions inconsistent.
|
|
|
Functions returning a value (i.e., ```prime``` and ```retract```) are expected to be **called by IceSL only** <sup>5</sup>. This is due to the fact that IceSL uses the returned value to internally keep track of the E-axis. Calling them explicitly may render the E values fed to the profile functions inconsistent.
|
|
|
|
|
|
<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>
|
|
|
<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>6. This restriction will be recalled in the future. Keeping track of the E-axis will be handled by the profile.</sup>
|
|
|
<sup>5. This restriction will be recalled in the future. Keeping track of the E-axis will be handled by the profile.</sup>
|
|
|
|
|
|
### Helper functions <a name="helpers"></a>
|
|
|
|
... | ... | |