本教程旨在针对性优化温补参数，降低温飘，进行本优化耗时较长(1h以上)，如果不温补已经能满足需求则不需要进行本操作。  
首先将下方宏粘贴到配置文件中
```
[gcode_macro DATA_SAMPLE]
gcode:
  {% set bed_temp = params.BED_TEMP|default(90)|int %}
  {% set nozzle_temp = params.NOZZLE_TEMP|default(250)|int %}
  {% set min_temp = params.MIN_TEMP|default(40)|int %}
  {% set max_temp = params.MAX_TEMP|default(70)|int %}
  M106 S255
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MAXIMUM={min_temp}
  M106 S0
  G28
  G0 Z1
  M104 S{nozzle_temp}
  M140 S{bed_temp}
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={min_temp}
  IDM_STREAM FILENAME=data1
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={max_temp}
  IDM_STREAM FILENAME=data1
  M104 S0
  M140 S0
  M106 S255
  G0 Z80
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MAXIMUM={min_temp}
  M106 S0
  G28 Z0
  G0 Z2
  M104 S{nozzle_temp}
  M140 S{bed_temp}
  G4 P1000
  IDM_STREAM FILENAME=data2
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={max_temp}
  IDM_STREAM FILENAME=data2
  M104 S0
  M140 S0
  M106 S255
  G0 Z80
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MAXIMUM={min_temp}
  M106 S0
  G28 Z0
  G0 Z3
  M104 S{nozzle_temp}
  M140 S{bed_temp}
  G4 P1000
  IDM_STREAM FILENAME=data3
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={max_temp}
  IDM_STREAM FILENAME=data3
  M104 S0
  M140 S0
  M106 S255
  G0 Z80
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MAXIMUM={min_temp}
  M106 S0
  G28 Z0
  G0 Z5
  M104 S{nozzle_temp}
  M140 S{bed_temp}
  G4 P1000
  IDM_STREAM FILENAME=data4
  TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={max_temp}
  IDM_STREAM FILENAME=data4
  M104 S0
  M140 S0
```

使用`DATA_SAMPLE BED_TEMP=指定热床温度 NOZZLE=指定喷嘴温度 MIN_TEMP=采集温度范围最小值 MAX_TEMP=采集温度范围最大值`  
(若不输入自定义参数，宏将按默认值运行(BED_TEMP=90 NOZZLE_TEMP=250 MIN_TEMP=40 MAX_TEMP=70))  
即可开始采集数据，之后会在klipper文件夹中生成data1,data2,data3,data4 四个文件，耗时较长。  
完成后将4个文件移动到用户目录下的IDM文件夹中。
然后执行
```
cd ~/IDM
~/klippy-env/bin/python arg_fit.py
```
(请在执行前确认当前使用的是最新的脚本包，如果不是 请重新git clone)  
运行后会生成出三个参数，并在IDM文件夹中生成一张图片。(这个过程运算量很大，需要一段时间)  
请检查该文件名为fit_result.png的图片，并判断拟合效果，图片示例如下:  
![fit_result](/imgs/fit_result.png)  
第一行为原始数据，第二行为温补后的数据。可以看到这是一个拟合效果比较好的，偏移都被控制在3位数内。

#### 之后请将生成的参数复制到配置文件中的[IDM]块下,示例如下:  
![fit_result](/imgs/example.jpg)  
最后建议重新按主教程执行一次idm_calibrate的校准步骤