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

GMT+8, 2024-6-24 13:49

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

一键压力提前测试macros

375
1
0
0
铜牌杰瑞 LV8
正文
发布时间:2023-02-10
本帖最后由 铜牌杰瑞 于 2023-2-10 05:35 编辑

代码来自 https://gist.github.com/JeremyKennedy,我做了小改。另外此宏末尾的m117代码可能会在测试结束后出现错误提示,但是不影响测试本身,m117是历史遗留问题,大家也别费心去解决了。


关于原代码有两处需要特别注意:


第一处


START_PRINT BED_TEMP={BED} NOZZLE_TEMP={NOZZLE} ,这里的NOZZLE_TEMP跟我的START_PRINT不符,导致无法调用saved_variables.cfg里的参数,我改为了:BED_TEMP={BED} EXTRUDER_TEMP={NOZZLE},你也可能需要注意这一点。


第二处


saved_variables.cfg的目录,我的就跟原作者的不一致。大家也要注意修改为自己的。




                               
登录/注册后可看大图









下面是具体步骤




一、在klipper的配置文件目录下,新建配置文件pa_cal.cfg,将下面的代码拷贝进去

  • 其中set PA_STOP = params.PA_STOP|default(0.1),末尾括号里面的0.1只适合近程挤出机,如果是远程挤出机应该设置到1.

  1. [gcode_macro PA_CAL]
  2. # Klipper pressure advance line calibration macro.
  3. # Usage: PA_CAL BED=100 NOZZLE=240 PA_START=0.0 PA_STOP=0.1 NZL=0.4
  4. # Or you can execute with no parameters, which will use values from printer.cfg and saved_variables.cfg.
  5. # First prints a line with current set PA, then prints 21 additional line segments starting with PA_START, and increasing to PA_STOP.
  6. # Based on http://realdeuce.github.io/Voron/PA/pressure_advance.html
  7. # Cleaned up and moved to using saved_variables.cfg by u/jibbsisme
  8. # Assisted by u/imoftendisgruntled, u/scul86, and thanks to u/beansisfat, u/stray_r

  9. description: Tune Pressure Advance
  10. gcode:
  11.   # saved_variables.cfg
  12.   {% set speed = printer.save_variables.variables.speed %}
  13.   {% set nozzle_temp = printer.save_variables.variables.nozzle_temp %}
  14.   {% set bed_temp = printer.save_variables.variables.bed_temp %}
  15.   {% set pa_stop_limit = printer.save_variables.variables.pa_stop_limit %}
  16.   

  17.   # macro parameters
  18.   {% set BED = params.BED|default(bed_temp)|float %}
  19.   {% set NOZZLE = params.NOZZLE|default(nozzle_temp)|float %}
  20.   {% set PA_START = params.PA_START|default(0.0)|float %}
  21.   {% set PA_STOP = params.PA_STOP|default(pa_stop_limit)|float %}
  22.   {% set NZL = params.NZL|default(printer.configfile.config["extruder"]["nozzle_diameter"])|float %}

  23.   # calculated variables
  24.   {% set PA_STEP = (PA_STOP - PA_START) / 20 |float %}
  25.   {% set E20 = (0.1147475 * NZL) * 20|float %}
  26.   {% set E40 = (0.1147475 * NZL) * 40|float %}
  27.   {% set X_MID = printer.configfile.config["stepper_x"]["position_max"]|float / 2.0 %}
  28.   {% set Y_MID = printer.configfile.config["stepper_y"]["position_max"]|float / 2.0 %}

  29.   START_PRINT BED_TEMP={BED} EXTRUDER_TEMP={NOZZLE}

  30.   G21 ; millimeter units
  31.   G90 ; absolute XYZ
  32.   M83 ; relative E
  33.   SET_VELOCITY_LIMIT ACCEL=3000 ACCEL_TO_DECEL=1500
  34.   G92 E0
  35.   M106 S0

  36.   G1 X{(X_MID-40)} Y{(Y_MID-65)} F{speed}        ; move to start position
  37.   G1 Z0.25 F300                                  ; move to layer height
  38.   G1 E0.75 F1800                                 ; un-retract
  39.   G1 X{(X_MID-20)} Y{(Y_MID-65)} E{E20} F300     ; print line part one
  40.   G1 X{(X_MID+20)} Y{(Y_MID-65)} E{E40} F3000    ; print line part two
  41.   G1 X{(X_MID+40)} Y{(Y_MID-65)} E{E20} F300     ; print line part three
  42.   G1 E-0.75 F1800                                ; retract
  43.   G1 Z1 F300                                     ; move above layer height

  44.   {% for i in range(0, 21) %}
  45.       SET_PRESSURE_ADVANCE ADVANCE={PA_START + (i * PA_STEP)} ; set Pressure Advance
  46.       M117 PA={PA_START + (i * PA_STEP)}, STEP={PA_STEP}.
  47.       G1 X{(X_MID-40)} Y{(Y_MID-35)+(5*i)} F30000           ; move to start position
  48.       G1 Z0.25 F300                                         ; move to layer height
  49.       G1 E0.75 F1800                                        ; un-retract
  50.       G1 X{(X_MID-20)} Y{(Y_MID-35)+(5*i)} E{E20} F300      ; print line part one
  51.       G1 X{(X_MID+20)} Y{(Y_MID-35)+(5*i)} E{E40} F3000     ; print line part two
  52.       G1 X{(X_MID+40)} Y{(Y_MID-35)+(5*i)} E{E20} F300      ; print line part three
  53.       G1 E-0.75 F1800                                       ; retract
  54.       G1 Z1 F300                                            ; move above layer height
  55.   {% endfor %}

  56.   END_PRINT

  57.   # these may not work, in which case you will need to count and do the math yourself!
  58.   M117 New PA = ({PA_START} + (bestLine * {PA_STEP}) )
  59.   {action_respond_info ("Find best line and multiply it by (" + PA_START|string + " + (bestLine * " + PA_STEP|string + ") ) to find your PA setting.")}
复制代码


二、新建配置文件saved_variables.cfg,并将下面的代码拷贝进去保存,此配置文件是上面的宏需要调用的测试参数,包括了速度、喷嘴温度、热床温度,终止pa值,也就是说这四者可以在这个文件预设。pa_stop_limit是我自己加进去的,为了更加灵活。注意pa_stop_limit的值要依据你自己的情况去定,远程挤出机可以用1,近程挤出机应该使用0.1。

  1. [Variables]
  2. speed = 9000
  3. nozzle_temp = 195
  4. bed_temp = 30
  5. pa_stop_limit = 1
复制代码



三、在打印机配置文件printer.cfg内添加如下代码,注意,下面的~/printer_data/config/saved_variables.cfg得换成你自己的目录,不同版本的klipper,或者不同的安装脚本可能会造成这个配置文件目录不同。你可以使用ftp软件登录查看实际目录。

  1. [save_variables]
  2. filename: ~/printer_data/config/saved_variables.cfg
复制代码


四、保存重启klipper就能使用这个宏了。

五、直接点击宏,调用的是saved_variables.cfg这个文件里的参数,点击宏的小三角可以即时自定义测试参数。我们需要记住这个菜单里“PA_STOP”的值,如果你不设置它,那就是saved_variables.cfg里设置的pa_stop_limit这个值。我们假定这个值是X。
chrome_94pOTQc4cP.png


六、这个宏会打印22条线条,其中第一条离得比较远,它是以你配置文件里目前的值去打印的一条线,我们可以定它的序号为-1
接下来的21条线就是从序号0开始一直到20的线。
每条线有三段,你需要找出来这三段线最均匀的那条,需要取舍,选综合最均匀的那条线。数一下它的序号。
-FB1QDa1NxtDIRMnGs1vdmDXCtJ7vSONrHjPUMxSuYw.jpg



七、最终的压力提前值计算方法是:


起始值(默认为零除非你设置过)+ 最佳线条序号*(X/20),单位是秒。
比如你的X设置为1,最佳线序号是8,那么你的最佳压力提前值就是0+8*(1/20)=0.4秒。





回复

 

全部评论 共 1 个

文一 LV2

文一 发表于 2023-2-10 13:30 显示全部楼层

自用的压力测试Gcode,如果使用可以编辑Bed Size X Y热床大小,压力测试区间是0.06-0.15;



  1. ; Settings Print Bed:
  2. ; Bed Size X = 220 mm
  3. ; Bed Size Y = 210 mm
  4. ;
  5. ; Settings Speed:
  6. ; Slow Printing Speed = 300 mm/min
  7. ; Fast Printing Speed = 7200 mm/min
  8. ; Movement Speed = 9000 mm/min
  9. ; Retract Speed = 2400 mm/min
  10. ; Unretract Speed = 2400 mm/min
  11. ; Printing Acceleration = 1800 mm/s^2
  12. ;
  13. ; Settings Pattern:
  14. ; Starting Value Factor = 0.06
  15. ; Ending Value Factor = 0.15
复制代码
如果需要自己配置可使用
PA模型生成地址https://realdeuce.github.io/Voron/PA/pressure_advance.html  Start G-CODE必须替换为自己的,否则报错。
在配置文件[extruder]节点下追加这句pressure_advance = 0.11其他的不变

压力测试.zip

2.38 KB, 下载次数: 2

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

本版积分规则

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