所以,我有一个 Raise3D Pro2,我正在寻找完善它的工具更换脚本,其目标是减少或消除使用双挤出机时容易堆积在喷嘴上的多余塑料。打印机使用 Marlin G 代码风格,虽然我不确定这是否重要,但我正在使用ideaMaker 进行切片。该脚本应该按如下方式流动:
- 收回当前刀具
- 移至 X30 Y300
- 检查新的活动刀具是否为 T0
- 如果T0,擦拭喷嘴2mm圈
- 如果 T0,则将 T1 冷却至 165C
- 若为 T0,则将 T0 加热至 230C
- 如果 T0 而不是第 1 层,则恢复
- 如果T0,再次擦拭喷嘴,这次是新工具
- 检查新的活动工具是否为 T1
- 如果T1,擦拭喷嘴2mm圈
- 如果是 T1,则将 T0 冷却至 165C
- 如果是 T1,则将 T1 加热到 230C
- 如果 T1 而不是第 1 层,则恢复
- 如果T1,再次擦拭喷嘴,这次是新工具
我的当前脚本如下所示:
; extruder switch gcode start
G10 S1; Retract for current nozzle
G1 X30 Y300 F6000; Move to X:30 Y:300
[if {new_extruder}=0]; LEFT Extruder is active (T0)
[if {new_extruder}=0]G12 P2 R2; Clean inactive nozzle 2mm circle
[if {new_extruder}=0]M104 S165 T1; Cool inactive extruder to 165c (T1)
[if {new_extruder}=0]M109 S230 T0; Heat active extruder to 230c (T0) and wait.
[[if {new_extruder}=0] and [{layer_index} NE 1]]G11; Recover current nozzle when not first layer
[if {new_extruder}=0]G12 P2 R2; Clean active nozzle 2mm circle
[if {new_extruder}=1]; RIGHT Extruder is active (T1)
[if {new_extruder}=1]G12 P2 R2; Clean inactive nozzle 2mm circle
[if {new_extruder}=1]M104 S165 T0; Cool inactive extruder to 165c (T0)
[if {new_extruder}=1]M109 S230 T1; Heat active extruder to 230c (T1) and wait.
[[if {new_extruder}=1] and [{layer_index} NE 1]]G11; Recover current nozzle
[if {new_extruder}=1]G12 P2 R2; Clean active nozzle 2mm circle
; extruder switch gcode end
问题是,当我用它运行打印时,它似乎没有运行所有命令。它进行移动和冷却/加热,但缩回/恢复和喷嘴擦拭似乎没有读取。我不确定这是因为打印机或语法问题,还是因为这些命令不像我认为的那样工作。
编辑:(由 Pᴀᴜʟsᴛᴇʀ2 - 添加了新的代码和逻辑)
新逻辑:
- 收回当前刀具
- 移至 X30 Y300
- 检查新的活动刀具是否为 T0
- 如果T0,擦拭喷嘴2mm圈
- 如果 T0,则将 T1 冷却至 165C
- 若为 T0,则将 T0 加热至 230C
- 如果 T0 而不是第 1 层,则恢复
- 如果T0,再次擦拭喷嘴,这次是新工具
- 检查新的活动工具是否为 T1
- 如果T1,擦拭喷嘴2mm圈
- 如果是 T1,则将 T0 冷却至 165C
- 如果是 T1,则将 T1 加热到 230C
- 如果 T1 而不是第 1 层,则恢复
- 如果T1,再次擦拭喷嘴,这次是新工具
我的新脚本如下所示:
; extruder switch gcode start
G10 S1; Retract for current nozzle
G1 X30 Y300 F6000; Move to X:30 Y:300
[if {new_extruder}=0]; LEFT Extruder is active (T0)
[if {new_extruder}=0]G12 P2 R2; Clean inactive nozzle 2mm circle
[if {new_extruder}=0]M104 S165 T1; Cool inactive extruder to 165c (T1)
[if {new_extruder}=0]M109 S230 T0; Heat active extruder to 230c (T0) and wait.
[[if {new_extruder}=0] and [{layer_index} NE 1]]G11; Recover current nozzle when not first layer
[if {new_extruder}=0]G12 P2 R2; Clean active nozzle 2mm circle
[if {new_extruder}=1]; RIGHT Extruder is active (T1)
[if {new_extruder}=1]G12 P2 R2; Clean inactive nozzle 2mm circle
[if {new_extruder}=1]M104 S165 T0; Cool inactive extruder to 165c (T0)
[if {new_extruder}=1]M109 S230 T1; Heat active extruder to 230c (T1) and wait.
[[if {new_extruder}=1] and [{layer_index} NE 1]]G11; Recover current nozzle
[if {new_extruder}=1]G12 P2 R2; Clean active nozzle 2mm circle
; extruder switch gcode end