工具更换脚本帮助

3D打印 马林鱼 g代码 脚本
2021-04-28 10:17:26

所以,我有一个 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
1个回答

据我所知,打印机固件无法评估 g 代码文件

预计切片机软件将根据大多数切片机中工具更换中提供的 g 代码了解工具头选择和处理工具更换。

考虑 g 代码(在 RepRap 词中)的最佳方式是单向通信,因为文件不被视为可以随时随地读取和评估参数的脚本。(固件功能)。

参考:

RepRap G 代码列表 打印机快速入门指南