小黑屋|Klipper玩客 ( 桂ICP备13004039号-7 )

GMT+8, 2024-11-22 08:03

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

klipper macros(宏)使用入门以及cura prusa superslicer切片软件start gcode

2192
0
2
1
铜牌杰瑞 LV8
正文
发布时间:2023-02-11
kliper的macro(宏)可以一键完成复杂的动作,搭配上Jinja2脚本,比marlin高到不知道哪里去了。
本贴不放照片,避免游客无法查看,尽量都用文字描述使用办法。

一个最基本的宏长下面这样:它的起始行一定是[gcode_macro 宏名字],它没有结束字符。使用严格的分行来编排。#用于注释。
  1. [gcode_macro START_PRINT]
  2. gcode:
  3.     {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
  4.     {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
  5.     # Start bed heating (but don't wait for it)
  6.     M140 S{BED_TEMP}
  7.     # Use absolute coordinates
  8.     G90
  9.     # Reset the G-Code Z offset (adjust Z offset if needed)
  10.     SET_GCODE_OFFSET Z=0.0
  11.     # Home the printer
  12.     G28
  13.     # Move the nozzle near the bed
  14.     G1 Z5 F3000
  15.     # Move the nozzle very close to the bed
  16.     G1 Z0.15 F300
  17.     # Wait for bed to reach temperature
  18.     M190 S{BED_TEMP}
  19.     # Set and wait for nozzle to reach temperature
  20.     M109 S{EXTRUDER_TEMP}
复制代码



要使用宏,你只需要把宏代码引入到printer.cfg这个配置文件就可以。
引入宏代码有多种方法:
1、直接把代码拷贝到printer.cfg。此方法会导致printer.cfg过于混乱,所以一般我们只把重要的几个宏放在这里,比如START_PRINT以及END_PRINT
2、在printer.cfg同级目录新建macros.cfg(具体叫什么随便你,一般大家都叫这个),然后在printer.cfg文件里面引入macros.cfg这个文件就可以了。
  1. [include macros.cfg]
复制代码
3、如果你使用的宏过多,更稳妥的办法是每个宏或者每一组宏,放在单独的某个文件。然后把这些宏文件,集中到一个目录里面。接下来再建立一个macros.cfg文件,把所有的宏的目录都引入到macros.cfg里面,这样又变得更加的灵活,不用担心误操作导致所有的宏搞没了。

github和reddit上有很多玩家讨论各种宏代码,你觉得有用,拷贝到你的宏文件里就行了。


想要把宏用好,我们应该把切片软件的起始代码和结束代码都替换为适合klipper的代码。
这样做的好处是:由klipper接管打印前的动作,灵活性大大的提高。比如你有许多需要重复打印的gcode,已经切片好了,但是你突然想要打印前做个调平,结束后推出模型,你可以直接修改klipper的起始gcode,打印过程会使用新的起始code,不需要重新切片。而使用切片软件的起始/结束gcode,要实现这样的功能,只能手动,或者重新进行一个个切片。

首先确保你的printer.cfg里面有START_PRINT以及END_PRINT宏,klipper的默认printer.cfg就已经有基础的START_PRINT以及END_PRINT宏。

以下是常用切片软件的起始gcode和结束gcode,我们要把切片软件里的用于marlin的起始gcode和结束gcode都替换为klipper使用的。

Cura-起始gcode
  1. ; M190 S{material_bed_temperature_layer_0}
  2. ; M109 S{material_print_temperature_layer_0}
  3. start_print BED_TEMP={material_bed_temperature_layer_0} EXTRUDER_TEMP={material_print_temperature_layer_0}
复制代码

Prusa-起始gcode
  1. M109 S0
  2. M190 S0
  3. start_print EXTRUDER_TEMP={first_layer_temperature[initial_extruder]} BED_TEMP={first_layer_bed_temperature[initial_extruder]} CHAMBER_TEMP={chamber_temperature}
复制代码


SuperSlicer-起始gcode(和prusa兼容)
  1. M109 S0
  2. M190 S0
  3. start_print BED_TEMP={first_layer_bed_temperature} EXTRUDER_TEMP={first_layer_temperature[initial_extruder] + extruder_temperature_offset[initial_extruder]} CHAMBER_TEMP={chamber_temperature}
复制代码


它们三者的结束gcode一样:
  1. end_print
复制代码



总结一下,流程就是
  • 先确认klipper的printer.cfgSTART_PRINT以及END_PRINT这两个宏。
  • 使用上面提供的起始gcode和结束gcode替换切换软件默认的起始/借宿gcode。
  • 使用其他宏,只需要printer.cfg中引入了宏代码/宏文件/宏目录。

回复

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表