This will probably work with other printers but you will have to be careful and hopefully understand what is going on in the start and end g-code scripts as well as the shell script below.
- Launch UltiMaker Cura 5.8.1.
- Go to Settings->Printer->Manage Printers.
- Click on Add New button
- Select Non UltiMaker Printer
- Select Add non-networked printer
- Type Custom in search box
- Select Custom FFF printer
- Click Add
- Printer Settings: X:232.3, Y: 232.3, Z: 248.0, Build plate shape: Rectangular, Origin at center: unchecked, Heated Bed: Checked, Heated Build volvume: Unchecked, G-code flavor: Marlin.
- Printhead settings: X min: -20, Y min: -10, X max: 10, Y max: 10, Gantry Height: 248.0, Number of Extruders: 1, Apply Extruder offsets to Gcode: Checked.
- Setup start gcode for printer as follows:
; This section added by bd2022 and subsequently hacked for Cura 5.8.1 per instructions at
; https://github.com/FormerLurker/Octolapse/wiki/V0.4---Automatic-Slicer-Configuration
; Script based on an original created by tjjfvi (https://github.com/tjjfvi)
; An up-to-date version of the tjjfvi's original script might be found
; here: https://csi.t6.fyi/
; Note - This script is for Cura V5.8.1 and has been modified
; to use <field> instead of {field} for those fields that
; used to work on Cura 4.2 but don't seem to work anymore.
; This script will require post processing.
; --- Global Settings
; layer_height = {layer_height}
; smooth_spiralized_contours = {smooth_spiralized_contours}
; magic_mesh_surface_mode = {magic_mesh_surface_mode}
; machine_extruder_count = {machine_extruder_count}
; --- Single Extruder Settings
; speed_z_hop = {speed_z_hop}
; retraction_amount = {retraction_amount}
; retraction_hop = {retraction_hop}
; retraction_hop_enabled = {retraction_hop_enabled}
; retraction_enable = {retraction_enable}
; retraction_speed = {retraction_speed}
; retraction_retract_speed = {retraction_retract_speed}
; retraction_prime_speed = {retraction_prime_speed}
; speed_travel = {speed_travel}
;This G-Code has been generated specifically for the LulzBot Sidekick with a Universal Tool Head
G90 ; absolute coordinate
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M117 Heating... ; progress indicator message on LCD
M140 S{material_bed_temperature_layer_0} ; Bed temp, but continue without waiting
M109 R<material_soften_temperature> ; soften filament and wait before homing Z
G28 ; Home all axis
G1 E-15 F100 ; retract filament
M104 S<material_probe_temperature> ; start extruder heating to probe temp
M190 S{material_bed_temperature_layer_0} ; wait for bed to reach printing temp
G29 ; start auto leveling
G0 X0 Y0 F5000
M109 R{material_print_temperature_layer_0} ; wait for extruder to reach initial printing temp
M117 <file_name> ; progress indicator message on LCD
G1 Z2 E0 F75 ; prime tiny bit of filament into the nozzle
- Setup End G-code for printer as follows
;This G-Code has been generated specifically for the LulzBot Sidekick with a Universal Tool Head
M400 ; wait for moves to finish
M140 S<material_part_removal_temperature> ; start bed cooling
M104 S0 ; disable hotend
M107 ; disable fans
G92 E5 ; set extruder to 5mm for retract on print end
M117 Cooling please wait ; progress indicator message on LCD
G1 Y-10 Z251.3 E0 F3000 ; move to cooling position
G1 E5 ; re-prime extruder
M190 R<material_part_removal_temperature> ; wait for bed to cool down to removal temp
G27 ; present finished print
M140 S<material_keep_part_removal_temperature_t>; keep temperature or cool down
M77 ; End GLCD Print Timer
G90 ; absolute positioning
M18 X E ; turn off x and e axis
M117 <PrintCompleteMessage> ; print complete message
- Select Extruder 1 tab
- Nozzle Settings: Nozzle Size 0.5 mm, Compatible material diameter: 1.75, Nozzle offset X: 0.0, Nozzle Offset Y: 0.0, Cooling Fan Number: 0, Extruder Start G-code Duration: 0.0, Extruder End G-code duration: 0.0
- Extruder Start G-code: Empty
- Extruder End G-code: Empty
- Close machine settings
- Select Three Bars and rename from Custom FFF printer to Sidekick 747
- Close the preferences.
Later, after you have opened and sliced a file of a small design for testing purposes, run this script (only tested with ABS, requires linux or possibly might work under linux subsystem for windows). ./mypost_processing_script.sh. It will give you instructions. This is a simple script that backsup your original .gcode to a .bu file, then it does a bunch of search and replaces of text using sed. Note that the gcode file is assumed to have a .gcode extension, which you do not have to type when running the script. (Just type the base file name without the .gcode).
#!/bin/bash
# This is for Cura 5.8.1
if test $# -ne 2; then
echo example:
echo " Usage: $0 <material> <filename>.gcode "
echo " Where material can be:"
echo " o ABS_IC3D_1_75"
echo " o POLY_PLA_1_75"
echo " o PETG_1_75"
echo " o NinjaFlex_1_75"
exit
fi
PRINT_COMPLETE_MSG="Print Complete; Customize as you like"
case $1 in
ABS_IC3D_1_75)
MST=170
MPT=170
MPRT=60
MKPRT=60
;;
ABS_CHROMA_1_75)
MST=170
MPT=170
MPRT=60
MKPRT=60
;;
PETG_1_75)
MST=170
MPT=170
MPRT=50
MKPRT=50
;;
POLY_PLA_1_75)
MST=140
MPT=140
MPRT=45
MKPRT=45
;;
NinjaFlex_1_75)
MST=180
MPT=180
MPRT=0
MKPRT=0
;;
esac
cp $2.gcode $2.bu
sed -i "s/<file_name>/$2/g" $2.gcode
sed -i "s/<PrintCompleteMessage>/$PRINT_COMPLETE_MSG/g" $2.gcode
sed -i "s/<material_soften_temperature>/$MST/g" $2.gcode
sed -i "s/<material_probe_temperature>/$MPT/g" $2.gcode
sed -i "s/<material_part_removal_temperature>/$MPRT/g" $2.gcode
sed -i "s/<material_keep_part_removal_temperature_t>/$MKPRT/g" $2.gcode
sed -i "s/Unknown/Sidekick 747/g" $2.gcode
It would be easy to port the shell script to run as a python post processing script instead. But I am not getting paid, and the shell script method works for my needs. If lulzbot is interested, contact me for a quote. (Or just do it yourselves, it is far easier than maintaining your own version of cura).
Note: You should double check all dimensions and temperatures for your printer. This is working for me but there is plenty of room for typographical errors in this post.