JoOj Posté(e) Janvier 18 Posté(e) Janvier 18 attend attend avant de toucher tes macros Y a pas de raison que celles de V3DP soient différentes des tiennes. Prend pas le risque de modifier le code de ta machine avant d'être sur de savoir ce que tu fais Est ce que tu peux partager le code des 2 macros que t'as indiqué @V3DP
Epsilon Posté(e) Janvier 18 Auteur Posté(e) Janvier 18 Oui pas de probleme ! Je vous partage ca dans une demi heure environ, mon impression est bientot terminé ^^
V3DP Posté(e) Janvier 18 Posté(e) Janvier 18 il y a 2 minutes, Epsilon a dit : Ton code poster c'est celui qui permet de bloquer les moteur c'est ca? Par défaut lors de l'impression, les moteurs sont 'bloqués', c'est à dire pas désengagés. Il faut une commande M84 pour les désengager. Les macros que je t'ai données ne vont pas désengager les moteurs. Elles vont par contre : mettre en température à 250°C la hotend si elle n'est pas chauffée à plus de 180°C, sinon garder la température existante charger / décharger le filament baisser le plateau de 50 mm pour charger le filament remettre la température de la hotend à 0 si elle n'est pas chauffée à plus de 180°C, sinon garder la température existante. il faut vérifier tes macros PAUSE et RESUME pour voir si il n'y a pas une commande M84 qui traine. Si dans tes fichiers de macros tu as plusieurs fois la même macro, il faudra vérifier l'ordre des include dans ton fichier printer.cfg. C'est la dernière inclusion qui compte à l’instant, Epsilon a dit : Oui pas de probleme ! Je vous partage ca dans une demi heure environ, mon impression est bientot terminé ^^ Tu peux visualiser les macros pendant une impression, il faut juste ne pas redémarrer la machine. C'est ce que j'ai fait pour te donner le contenu d'une de mes X Max 3 il y a 3 minutes, JoOj a dit : Y a pas de raison que celles de V3DP soient différentes des tiennes. Elles ont été retravaillées par rapport à celles de Qidi. Mes machines ont été libérées et sont en dernière version Klipper.
JoOj Posté(e) Janvier 18 Posté(e) Janvier 18 il y a 3 minutes, V3DP a dit : Elles ont été retravaillées par rapport à celles de Qidi. Mes machines ont été libérées et sont en dernière version Klipper. raison de plus pour ne pas aller écraser ses macros avec les tiennes ^^ 1
Epsilon Posté(e) Janvier 18 Auteur Posté(e) Janvier 18 Voici ce que j'ai trouvé dans mon fichier de configuration "printer.cfg" que j'ai pu trouver via fluidd onglet configuration [gcode_macro M603] description: filament unload gcode: G92 E0 G0 E15 F400 G4 P1000 G92 E0 G1 E-80 F800 [gcode_macro M604] description: filament load gcode: M83 G1 E80 F400 1
V3DP Posté(e) Janvier 18 Posté(e) Janvier 18 (modifié) @Epsilon Et la macro PAUSE ? il y a 41 minutes, JoOj a dit : raison de plus pour ne pas aller écraser ses macros avec les tiennes ^^ Sur ces macros là, pas de spécificités liées à la libération, par contre sur mes macros PAUSE / RESUME c'est pas la même chose. Après chacun fait comme il veut. Moi j'ai retravaillées certaines macros car mon business c'est l'impression 3D et mes 3 X Max 3 doivent produire de manière optimisée. De fait mes macros PAUSE / RESUME gèrent l'extinction / allumage des ventilos et de la hotend pour permettre d'attendre tranquillement qu'on intervienne sur la machine, même après une nuit en pause et mes macros LOAD / UNLOAD FILAMENT intègrent la chauffe de la hotend si nécessaire et une température qui évite les nettoyages pour les matériaux les plus courants. Modifié (le) Janvier 18 par V3DP
Epsilon Posté(e) Janvier 18 Auteur Posté(e) Janvier 18 (modifié) il y a 32 minutes, V3DP a dit : @Epsilon Et la macro PAUSE ? [gcode_macro PAUSE] rename_existing: BASE_PAUSE gcode: # Parameters {% set z = params.Z|default(50)|int %} ; z hop amount {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro # SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 ; disable filament sensor SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max G91 ; relative positioning G1 Z{z} F600 ; raise Z up by z hop amount {% else %} # { action_respond_info("Pause zhop exceeds maximum Z height.") } ; if z max is exceeded, show message and set zhop value for resume to 0 SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} SAVE_GCODE_STATE NAME=PAUSEPARK2 G90 ; absolute positioning G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y} F6000 ; park toolhead at front center SAVE_GCODE_STATE NAME=PAUSEPARK ; save parked position in case toolhead is moved during the pause (otherwise the return zhop can error) M104 S0 ; turn off hotend SET_IDLE_TIMEOUT TIMEOUT=86400 ; set timeout to 12 hours SET_STEPPER_ENABLE STEPPER=extruder enable=0 {% endif %} [gcode_macro RESUME] rename_existing: BASE_RESUME variable_zhop: 0 variable_etemp: 0 gcode: # Parameters {% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm) {% if printer['pause_resume'].is_paused|int == 1 %} # SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 ; enable filament sensor #INITIAL_RGB ; reset LCD color SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} M109 S{etemp|int} ; wait for hotend to heat back up {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=150 ; go back to parked position in case toolhead was moved during pause (otherwise the return zhop can error) G91 ; relative positioning M83 ; relative extruder positioning {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 E{e} F900 ; prime nozzle by E, lower Z back down # {% else %} # G1 Z{zhop * -1} F900 ; lower Z back down without priming (just in case we are testing the macro with cold hotend) {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=150 RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=10 ; restore position BASE_RESUME ; resume print {% endif %} [pause_resume] [gcode_macro M0] gcode: PAUSE [gcode_macro M25] rename_existing: M9925 gcode: PAUSE Modifié (le) Janvier 18 par Epsilon
V3DP Posté(e) Janvier 18 Posté(e) Janvier 18 @Epsilon Merci pour les codes. Dans les macros fournies, il n'y a pas d'instructions qui vont 'désengager' les moteurs. Est-ce que les valeurs de courant de maintien des moteurs sont bonnes ? Ca pourrait expliquer pourquoi tu arrives à bouger à la main la tête durant une pause. Est-ce que tu utilises TMC Autotune ? Tout est dans ton printer.cfg. Si tu le partages, on pourra voir si il n'y a pas un problème de configuration.
Epsilon Posté(e) Janvier 18 Auteur Posté(e) Janvier 18 Alors ^^ Comment vérifier les valeurs de courant de maintien des moteurs? Je t'avouerai que la tu me perd un peu xD je n'utilise pas TMC Autotune (c'est quoi? ^^)Voici mon printer.cfg entier: Révélation #MAX3 #V4.3.15 # This file contains common pin mappings for MKS SKIPR # boards. To use this config, the firmware should be compiled for the # stm32f407. When running "make menuconfig", select the 48KiB # bootloader, and enable "Serial for communication" and select the "on USART1 PA10/PA9" # The "make flash" command does not work on the MKS SKIPR. Instead, # after running "make", copy the generated "out/klipper.bin" file to a # file named "mks_skipr.bin" on an SD card and then restart the # MKS SKIPR with that SD card. # This file contains common pin mappings for MKS SKIPR # boards. To use this config, the firmware should be compiled for the # stm32f407. When running "make menuconfig", select the 48KiB # bootloader, and enable "Serial for communication" and select the "on USART1 PA10/PA9" # The "make flash" command does not work on the MKS SKIPR. Instead, # after running "make", copy the generated "out/klipper.bin" file to a # file named "mks_skipr.bin" on an SD card and then restart the # MKS SKIPR with that SD card. # See docs/Config_Reference.md for a description of parameters. [include MKS_THR.cfg] [include Adaptive_Mesh.cfg] [mcu] # The hardware use USART1 PA10/PA9 connect to RK3328 #serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_4D0045001850314335393520-if00 serial: /dev/ttyS0 restart_method: command #[mcu MKS_THR] #serial:/dev/serial/by-id/usb-Klipper_rp2040_D5CE4D9543D14858-if00 #canbus_uuid: 11aa22bb33cc ##################################################################### # 冷却风扇 ##################################################################### [extruder] step_pin: MKS_THR:gpio5 dir_pin: MKS_THR:gpio4 enable_pin: !MKS_THR:gpio10 rotation_distance: 53.5 #22.6789511 #Bondtech 5mm Drive Gears gear_ratio: 1628:170 microsteps: 16 full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree nozzle_diameter: 0.400 filament_diameter: 1.75 min_temp: 0 max_temp: 360 min_extrude_temp: 170 smooth_time: 0.000001 heater_pin: MKS_THR:gpio0 sensor_type:MAX6675 # One of "MAX6675", "MAX31855", "MAX31856", or "MAX31865". # One of "MAX6675", "MAX31855", "MAX31856", or "MAX31865". sensor_pin:MKS_THR:gpio17 # The chip select line for the sensor chip. This parameter must be # provided. spi_speed: 100000 # The SPI speed (in hz) to use when communicating with the chip. # The default is 4000000. #spi_bus:spi1 spi_software_sclk_pin:MKS_THR:gpio18 spi_software_mosi_pin:MKS_THR:gpio19 spi_software_miso_pin:MKS_THR:gpio16 # See the "common SPI settings" section for a description of the # above parameters. #tc_type: K #tc_use_50Hz_filter: False #c_averaging_count: 1 # The above parameters control the sensor parameters of MAX31856 # chips. The defaults for each parameter are next to the parameter # name in the above list. max_power: 1.0 control : pid pid_Kp=14.734 pid_Ki=6.549 pid_Kd=8.288 pressure_advance: 0.032 pressure_advance_smooth_time: 0.03 max_extrude_cross_section:500 instantaneous_corner_velocity: 10.000 max_extrude_only_distance: 120.0 max_extrude_only_velocity:5000 max_extrude_only_accel:2000 step_pulse_duration:0.000002 [tmc2209 extruder] uart_pin: MKS_THR:gpio6 interpolate: True run_current: 0.714 #hold_current: 0.5 #sense_resistor: 0.110 stealthchop_threshold: 0 [adxl345] cs_pin: MKS_THR:gpio13 spi_software_sclk_pin: MKS_THR:gpio14 spi_software_mosi_pin: MKS_THR:gpio15 spi_software_miso_pin: MKS_THR:gpio12 axes_map: -x, z, -y [printer] kinematics:corexy max_velocity: 600 max_accel: 20000 max_accel_to_decel: 10000 max_z_velocity: 20 max_z_accel: 500 square_corner_velocity: 8 ##移动配置============================================================================================================ [force_move] enable_force_move : True [gcode_macro M84] rename_existing:M84.1 gcode: SET_STEPPER_ENABLE STEPPER=stepper_x enable=0 SET_STEPPER_ENABLE STEPPER=stepper_y enable=0 SET_STEPPER_ENABLE STEPPER=stepper_z enable=0 SET_STEPPER_ENABLE STEPPER=extruder enable=0 SET_KINEMATIC_POSITION [delayed_gcode KINEMATIC_POSITION] initial_duration:0.2 gcode: SET_KINEMATIC_POSITION X=150 SET_KINEMATIC_POSITION Y=150 SET_KINEMATIC_POSITION Z=150 SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 [stepper_x] step_pin:PB4 dir_pin:PB3 enable_pin:!PB5 microsteps:16 rotation_distance: 39.94 full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper endstop_pin:tmc2209_stepper_x:virtual_endstop position_min: -7 position_endstop:-7 position_max:325 homing_speed:40 homing_retract_dist:0 homing_positive_dir:False step_pulse_duration:0.000002 [stepper_y] step_pin:PC14 dir_pin:PC13 enable_pin:!PC15 microsteps: 16 rotation_distance: 39.94 full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper endstop_pin:tmc2209_stepper_y:virtual_endstop position_min: -9.5 position_endstop: -9.5 position_max: 325 homing_speed:40 homing_retract_dist:0 homing_positive_dir:False step_pulse_duration:0.000002 [stepper_z] step_pin:PC10 dir_pin:PA15 enable_pin: !PC11 microsteps: 16 rotation_distance: 8 full_steps_per_rotation: 200 endstop_pin:probe:z_virtual_endstop#!PC3 #for Z-max; endstop have'!' is NO #position_endstop:326 position_max:325 position_min: -6 homing_speed: 8 homing_retract_dist: 8.0 second_homing_speed: 8 homing_positive_dir:false step_pulse_duration:0.000002 [tmc2209 stepper_x] uart_pin: PD2 run_current:1.07 #hold_current: 0.5 interpolate: True stealthchop_threshold: 0 diag_pin:^PB8 driver_SGTHRS: 85 #driver_SGTHRS: 130 [tmc2209 stepper_y] uart_pin: PB9 run_current: 1.07 #hold_current: 0.5 interpolate: True stealthchop_threshold: 0 diag_pin:^PC0 driver_SGTHRS: 85 #driver_SGTHRS: 145 #[tmc2240 stepper_y] #cs_pin:PB9 #spi_software_sclk_pin:PA5 #spi_software_mosi_pin:PA7 #spi_software_miso_pin:PA6 #spi_speed:200000 #run_current: 1.07 #hold_current: 0.5 #sense_resistor: 0.110 #interpolate:true #stealthchop_threshold:1 #diag0_pin:!PC0 #driver_SGT:1 #[tmc2240 stepper_x] #cs_pin:PD2 #spi_software_sclk_pin:PA5 #spi_software_mosi_pin:PA7 #spi_software_miso_pin:PA6 #spi_speed:200000 #run_current: 1.07 #hold_current: 0.5 #sense_resistor: 0.110 #interpolate:true #stealthchop_threshold:1 #diag0_pin:!PB8 #driver_SGT:1 [tmc2209 stepper_z] uart_pin: PC5 run_current: 0.95 #hold_current: 0.6 interpolate: True stealthchop_threshold: 1200 ##归零流程修改 [homing_override] set_position_X:0 set_position_y:0 set_position_z:0 axes:xy gcode: {% set HOME_CUR = 1 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set HOLD_CUR = driver_config.hold_current %} {% if params.X is defined %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR * 0.8} G28 X SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} BEEP I=1 DUR=100 G1 X10 F1200 {% endif %} {% if params.Y is defined %} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR * 0.9} G28 Y SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} BEEP I=1 DUR=100 G1 Y10 F1200 {% endif %} {% if params.Z is defined %} # G90 # G1 X{printer.toolhead.axis_maximum.x/2 - printer.probe["x_offset"]} Y{printer.toolhead.axis_maximum.y/2 - printer.probe["y_offset"]} F7800 # G91 G28 Z G1 Z20 F480 BEEP I=1 DUR=100 {% endif %} {% if params.X is undefined %} {% if params.Y is undefined %} {% if params.Z is undefined %} G91 # G1 Z5 F600 G1 X10 F2400 G1 Y10 F2400 G4 P2000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR * 0.8} G28 X SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} BEEP I=1 DUR=100 G1 X10 F1200 SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR * 0.9} G28 Y SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} BEEP I=1 DUR=100 G90 G1 X{printer.toolhead.axis_maximum.x/2 - printer.probe["x_offset"]} Y{printer.toolhead.axis_maximum.y/2 - printer.probe["y_offset"]} F7800 G91 G28 Z BEEP I=1 DUR=100 G1 Z50 F480 {% endif %} {% endif %} {% endif %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} M204 S10000 G90 # G1 X0 Y0 F7800 ##热床热腔================================================================================================================== [heater_bed] heater_pin:PC8 sensor_type: NTC 100K MGB18-104F39050L32 sensor_pin: PA0 max_power: 1.0 control = pid pid_kp = 71.039 pid_ki = 2.223 pid_kd = 567.421 min_temp: -100 max_temp: 125 [heater_generic hot] #gcode_id: # 使用M105查询温度时使用的ID。 # 必须提供此参数。 heater_pin:PB10 max_power:1.0 sensor_type:NTC 100K MGB18-104F39050L32 sensor_pin:PA1 control = watermark max_delta: 1.0 #pid_Kp=63.418 #pid_Ki=1.342 #pid_Kd=749.125 min_temp:-100 max_temp:70 [verify_heater hot] max_error: 300 check_gain_time:480 hysteresis: 5 heating_gain: 1 [verify_heater extruder] max_error: 120 check_gain_time:20 hysteresis: 5 heating_gain: 1 [verify_heater heater_bed] max_error: 200 check_gain_time:60 hysteresis: 5 heating_gain: 1 ##一些引脚定义====================================== ##主板上大涡轮风扇 [output_pin fan2] pin: PA8 pwm: True cycle_time: 0.0100 hardware_pwm: false value: 0.00 scale: 255 shutdown_value: 0.0 ##喷头喉管风扇 50度自启动 #[heater_fan my_nozzle_fan1] #pin:PC9 #max_power:1 #shutdown_speed:1 #cycle_time:0.05 #kick_start_time:0.05 #off_below:0 #heater:extruder #heater_temp:50.0 ##活性炭吹风扇 [output_pin fan3] pin:PC9 pwm: True cycle_time: 0.0100 hardware_pwm: false value: 0.0 scale: 255 shutdown_value: 0.0 ## FAN0 喉管风扇 [heater_fan hotend_fan] pin:MKS_THR:gpio1 max_power: 1.0 kick_start_time: 0.5 heater: extruder heater_temp: 50.0 fan_speed: 1.0 off_below: 0 [heater_fan hotend_fan2] pin:MKS_THR:gpio20 max_power: 1.0 kick_start_time: 0.5 heater: extruder heater_temp: 50.0 fan_speed: 1.0 off_below: 0 [heater_fan borad_fan] pin:PC4 max_power: 1.0 kick_start_time: 0.5 heater: extruder heater_temp: 50.0 fan_speed: 1.0 off_below: 0 ## FAN0 吹模型风扇 [output_pin fan0] pin: MKS_THR:gpio2 pwm: True cycle_time: 0.0100 hardware_pwm: false value: 0 scale: 255 shutdown_value: 0.0 ##LED 灯 [output_pin caselight] ## Chamber Lighting - In 5V-RGB Position pin: PC7 pwm: false shutdown_value:0 value:1 #cycle_time:0.01 [output_pin beeper] ## Chamber Lighting - In 5V-RGB Position pin: PA2 pwm: false shutdown_value:0 value:0 [output_pin pwc] pin: PA3 pwm: False value: 1 shutdown_value: 1 ##宏定义================================================================ [filament_switch_sensor fila] pause_on_runout: True runout_gcode: PAUSE SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 event_delay: 3.0 pause_delay: 0.5 switch_pin: !PC1 [bed_mesh] speed:150 #调平速度 horizontal_move_z:10 #调平中Z抬高高度 mesh_min:25,10 #探测点最小位置 mesh_max:315,315 #探测点最大位置 probe_count:9,9 #调平点数 algorithm:bicubic bicubic_tension:0.2 mesh_pps: 4, 4 #[bltouch] #sensor_pin:^MKS_THR:gpio21 #control_pin:MKS_THR:gpio11 #stow_on_each_sample: False [probe] pin: ^!MKS_THR:gpio21 x_offset: 28 y_offset: 4.4 z_offset: 0.0 speed: 5 samples: 2 samples_result: average sample_retract_dist: 3.0 samples_tolerance: 0.08 samples_tolerance_retries:3 #[gcode_macro G30] # G28 # G1 X100 Y130 Z10 # PROBE_CALIBRATE [resonance_tester] accel_chip:adxl345 probe_points: 160, 160, 10 # an example [gcode_macro SHAPER_CALIBRATE] rename_existing: RESHAPER_CALIBRATE gcode: RESHAPER_CALIBRATE FREQ_START=30 FREQ_END=150 [gcode_macro HOT_CALIBRATE_START] variable_k: 0 gcode: {% if k == 0 %} {% if printer['heater_generic hot'].temperature > 49 %} SET_GCODE_VARIABLE MACRO=HOT_CALIBRATE_END VARIABLE=hot_set VALUE=1 SET_GCODE_OFFSET Z_ADJUST=-0.10 MOVE=0 SET_GCODE_VARIABLE MACRO=HOT_CALIBRATE_START VARIABLE=k VALUE=1 {% endif %} {% endif %} [gcode_macro HOT_CALIBRATE_END] variable_hot_set: 0 gcode: {% if hot_set == 1 %} SET_GCODE_VARIABLE MACRO=HOT_CALIBRATE_END VARIABLE=hot_set VALUE=0 SET_GCODE_OFFSET Z_ADJUST=+0.10 MOVE=0 SET_GCODE_VARIABLE MACRO=HOT_CALIBRATE_START VARIABLE=k VALUE=0 {% endif %} [gcode_macro PRINT_START] gcode: #HOT_CALIBRATE_START [gcode_macro PRINT_START_QD] gcode: #HOT_CALIBRATE_START [gcode_macro CANCEL_PRINT] rename_existing: BASE_CANCEL_PRINT gcode: {% if (printer.gcode_move.position.z) < 200 %} ; check that zhop doesn't exceed z max G1 Z200 F600 {% endif %} G1 X0 Y0 F12000 SDCARD_RESET_FILE PRINT_END BASE_CANCEL_PRINT [gcode_macro PRINT_END] gcode: M106 P2 S0 M106 P0 S0 M106 P3 S0 #关闭活性炭风扇 M104 S0 M140 S0 M141 S0 M220 S100 M221 S100 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value CLEAR_PAUSE SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 M84 # SET_STEPPER_ENABLE STEPPER=stepper_x enable=0 # SET_STEPPER_ENABLE STEPPER=stepper_y enable=0 # SET_STEPPER_ENABLE STEPPER=stepper_z enable=1 # SET_STEPPER_ENABLE STEPPER=extruder enable=0 BED_MESH_CLEAR #恢复调平数据 BED_MESH_PROFILE LOAD=default G31 BEEP I=2 DUR=500 [gcode_macro PAUSE] rename_existing: BASE_PAUSE gcode: # Parameters {% set z = params.Z|default(50)|int %} ; z hop amount {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro # SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 ; disable filament sensor SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max G91 ; relative positioning G1 Z{z} F600 ; raise Z up by z hop amount {% else %} # { action_respond_info("Pause zhop exceeds maximum Z height.") } ; if z max is exceeded, show message and set zhop value for resume to 0 SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} SAVE_GCODE_STATE NAME=PAUSEPARK2 G90 ; absolute positioning G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y} F6000 ; park toolhead at front center SAVE_GCODE_STATE NAME=PAUSEPARK ; save parked position in case toolhead is moved during the pause (otherwise the return zhop can error) M104 S0 ; turn off hotend SET_IDLE_TIMEOUT TIMEOUT=86400 ; set timeout to 12 hours SET_STEPPER_ENABLE STEPPER=extruder enable=0 {% endif %} [gcode_macro RESUME] rename_existing: BASE_RESUME variable_zhop: 0 variable_etemp: 0 gcode: # Parameters {% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm) {% if printer['pause_resume'].is_paused|int == 1 %} # SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 ; enable filament sensor #INITIAL_RGB ; reset LCD color SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} M109 S{etemp|int} ; wait for hotend to heat back up {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=150 ; go back to parked position in case toolhead was moved during pause (otherwise the return zhop can error) G91 ; relative positioning M83 ; relative extruder positioning {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 E{e} F900 ; prime nozzle by E, lower Z back down # {% else %} # G1 Z{zhop * -1} F900 ; lower Z back down without priming (just in case we are testing the macro with cold hotend) {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=150 RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=10 ; restore position BASE_RESUME ; resume print {% endif %} [pause_resume] [display_status] [gcode_macro BEEP] gcode: # Parameters {% set i = params.I|default(1)|int %} ; Iterations (number of times to beep). {% set dur = params.DUR|default(100)|int %} ; Duration/wait of each beep in ms. Default 100ms. {% if printer["output_pin sound"].value|int == 1 %} {% for iteration in range(i|int) %} SET_PIN PIN=beeper VALUE=1 G4 P{dur} SET_PIN PIN=beeper VALUE=0 G4 P{dur} {% endfor %} {% endif %} #[gcode_macro _CG28] #gcode: # {% if "xyz" not in printer.toolhead.homed_axes %} # G28 # {% endif %} [gcode_macro G30] gcode: BED_MESH_CLEAR #清除调平数据 # G28 BED_MESH_CALIBRATE mesh_min=10,10 mesh_max=310,310 METHOD=manual #手动动调平 [gcode_macro M141] gcode: {% set s = params.S|float %} SET_HEATER_TEMPERATURE HEATER=hot TARGET={([s, 65]|min)} [gcode_macro M191] gcode: #Parameters {% set s = params.S|float %} M141 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} {% if s != 0 %} TEMPERATURE_WAIT SENSOR="heater_generic hot" MINIMUM={([s, 65]|min)} #MAXIMUM={s+1} {% endif %} [gcode_macro M106] gcode: {% if params.P is defined %} {% if params.S is defined %} SET_PIN PIN=fan{params.P|int} VALUE={params.S|int} {% else %} SET_PIN PIN=fan{params.P|int} VALUE=255 {% endif %} {% endif %} {% if params.T is defined %} {% if (params.T|int)==-2 %} {% if params.S is defined %} SET_PIN PIN=fan3 VALUE={params.S|int} {% else %} SET_PIN PIN=fan3 VALUE=255 {% endif %} {% endif %} {% endif %} {% if params.P is undefined %} {% if params.T is undefined %} {% if params.S is defined %} SET_PIN PIN=fan0 VALUE={params.S|int} {% else %} SET_PIN PIN=fan0 VALUE=255 {% endif %} {% endif %} {% endif %} [gcode_macro M107] gcode: SET_PIN PIN=fan0 VALUE=0 # SET_PIN PIN=fan1 VALUE=0 # SET_PIN PIN=fan2 VALUE=0 [gcode_macro M303] gcode: {% if params.E is defined %} {% if params.S is defined %} {% if (params.E|int)==-1 %} PID_CALIBRATE HEATER=heater_bed TARGET={params.S|int} {% endif %} {% if (params.E|int)==0 %} PID_CALIBRATE HEATER=extruder TARGET={params.S|int} {% endif %} {% endif %} {% endif %} [gcode_macro M8029] gcode: {% if params.D is defined %} {% if (params.D|int)==1 %} SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 {% endif %} {% if (params.D|int)==0 %} SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 {% endif %} {% endif %} [gcode_macro M900] gcode: {% if params.K is defined %} SET_PRESSURE_ADVANCE ADVANCE={params.K} {% endif %} {% if params.T is defined %} SET_PRESSURE_ADVANCE SMOOTH_TIME={params.T} {% endif %} [gcode_macro M290] gcode: SET_GCODE_OFFSET Z_ADJUST={params.Z} [gcode_macro M901] gcode: # M104 S140 G28 SHAPER_CALIBRATE SAVE_CONFIG [gcode_macro M0] gcode: PAUSE [gcode_macro M25] rename_existing: M9925 gcode: PAUSE [output_pin sound] pin: PA13 value:0 [gcode_macro beep_on] gcode: SET_PIN PIN=sound VALUE=1 [gcode_macro beep_off] gcode: SET_PIN PIN=sound VALUE=0 [gcode_arcs] resolution: 1.0 [gcode_macro M109] rename_existing: M99109 gcode: #Parameters {% set s = params.S|float %} M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; Set hotend temp {% if s != 0 %} TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s} MAXIMUM={s+1} ; Wait for hotend temp (within 1 degree) {% endif %} [gcode_macro M4029] gcode: BED_MESH_CLEAR G91 G1 Z10 F600 G90 G28 G1 X{printer.toolhead.axis_maximum.x/2 - printer.probe["x_offset"]} Y{printer.toolhead.axis_maximum.y/2 - printer.probe["y_offset"]} F7800 G1 Z15 F600 ABORT PROBE_CALIBRATE ABORT G0 Z0 [gcode_macro M603] description: filament unload gcode: G92 E0 G0 E15 F400 G4 P1000 G92 E0 G1 E-80 F800 [gcode_macro M604] description: filament load gcode: M83 G1 E80 F400 #####################################新增KAMP调平 [exclude_object] [gcode_macro G31] gcode: SET_GCODE_VARIABLE MACRO=G29 VARIABLE=k VALUE=1 [gcode_macro G32] gcode: SET_GCODE_VARIABLE MACRO=G29 VARIABLE=k VALUE=0 [gcode_macro G29] variable_k:1 gcode: {% if k|int==1 %} BED_MESH_CLEAR #清除调平数据 # G28 BED_MESH_CALIBRATE PROFILE=kamp #自动调平 {% endif %} [gcode_macro M204] rename_existing: M99204 gcode: {% if params.S is defined %} {% set s = params.S|float %} {% endif %} {% if params.P is defined %} {% if params.T is defined %} {% set s = [params.P|float ,params.T|float] | min %} {% endif %} {% endif %} SET_VELOCITY_LIMIT ACCEL={s} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={s/2} [idle_timeout] timeout: 86400 #[x_twist_compensation] #speed: 150 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 10 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #start_x: 15 # Defines the minimum X coordinate of the calibration # This should be the X coordinate that positions the nozzle at the starting # calibration position. This parameter must be provided. #end_x: 260 # Defines the maximum X coordinate of the calibration # This should be the X coordinate that positions the nozzle at the ending # calibration position. This parameter must be provided. #y: 140 # Defines the Y coordinate of the calibration # This should be the Y coordinate that positions the nozzle during the # calibration process. This parameter must be provided and is recommended to # be near the center of the bed [gcode_macro M1029] gcode: # X_TWIST_PROFILE_LOAD NAME=default # X_TWIST_COMPENSATE_MESH MESH_NAME=default COMPENSATION_NAME=default # SAVE_CONFIG [virtual_sdcard] #path:/home/mks/uploads path: ~/gcode_files #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [bed_mesh default] #*# version = 1 #*# points = #*# 0.031250, -0.001250, -0.018750, -0.033750, -0.055000, -0.070000, -0.088750, -0.112500, -0.140000 #*# 0.042500, 0.002500, -0.028750, -0.035000, -0.056250, -0.062500, -0.081250, -0.107500, -0.132500 #*# 0.066250, 0.037500, 0.003750, -0.002500, -0.018750, -0.018750, 0.010000, -0.080000, -0.097500 #*# 0.085000, 0.047500, 0.017500, 0.007500, 0.005000, -0.015000, -0.037500, -0.070000, -0.082500 #*# 0.097500, 0.065000, 0.042500, 0.050000, 0.047500, 0.027500, 0.013750, -0.012500, 0.000000 #*# 0.067500, 0.043750, 0.030000, 0.040000, 0.026250, 0.027500, 0.023750, -0.002500, 0.007500 #*# 0.055000, 0.043750, 0.032500, 0.043750, 0.032500, 0.048750, 0.042500, 0.018750, 0.067500 #*# 0.078750, 0.062500, 0.053750, 0.062500, 0.055000, 0.063750, 0.066250, 0.071250, 0.167500 #*# 0.095000, 0.080000, 0.071250, 0.068750, 0.071250, 0.073750, 0.073750, 0.081250, 0.145000 #*# tension = 0.2 #*# min_x = 25.0 #*# algo = bicubic #*# y_count = 9 #*# mesh_y_pps = 4 #*# min_y = 10.0 #*# x_count = 9 #*# max_y = 314.96 #*# mesh_x_pps = 4 #*# max_x = 315.0 #*# #*# [input_shaper] #*# shaper_type_x = mzv #*# shaper_freq_x = 52.4 #*# shaper_type_y = mzv #*# shaper_freq_y = 44.0 #*# #*# [bed_mesh kamp] #*# version = 1 #*# points = #*# 0.071250, 0.041250, 0.045000, 0.043750, 0.061250, 0.046250, 0.036250 #*# 0.211250, 0.195000, 0.191250, 0.171250, 0.156250, 0.117500, 0.078750 #*# 0.192500, 0.182500, 0.180000, 0.171250, 0.160000, 0.132500, 0.100000 #*# 0.148750, 0.138750, 0.147500, 0.146250, 0.147500, 0.135000, 0.122500 #*# 0.157500, 0.145000, 0.143750, 0.137500, 0.142500, 0.132500, 0.126250 #*# 0.158750, 0.148750, 0.153750, 0.143750, 0.152500, 0.148750, 0.138750 #*# 0.140000, 0.132500, 0.141250, 0.138750, 0.150000, 0.148750, 0.145000 #*# tension = 0.2 #*# min_x = 62.5 #*# algo = bicubic #*# y_count = 7 #*# mesh_y_pps = 4 #*# min_y = 62.5 #*# x_count = 7 #*# max_y = 262.48 #*# mesh_x_pps = 4 #*# max_x = 262.48 Encore merci pour ton temps et desolé je suis encore débutant
V3DP Posté(e) Janvier 18 Posté(e) Janvier 18 @Epsilon Pas de soucis, il faut bien commencer un jour. TMC Autotune est un plugin de Klipper qui permet de régler automatiquement les paramètres de gestion des moteurs au niveau des drivers TMC (les contrôleurs des moteurs). Le courant de maintien est la valeur du courant qui reste dans le moteur à l'arrêt pour permettre de maintenir la position. Il peut être défini ou pas. Dans le cas de ta X Max 3, qui est avec les fichiers d'origine, mais aussi pour les miennes qui sont 'libérées', on ne spécifie pas la valeur du courant de maintien, la valeur du courant est toujours la même que lors des mouvements. C'est pour éviter de micro déplacements lorsque l'on change la valeur du courant à l'arrêt. J'ai regardé ton fichier printer.cfg, c'est strictement un fichier d'origine. Donc tu ne devrais pas avoir de soucis avec la tête qui bouge lors des pauses, car rien ne coupe le courant sur les moteurs X, Y et Z durant toute l'impression, même pendant les pauses. Tu peux avoir un souci matériel, ou plus simplement avoir appuyé sur un bouton qui coupe le courant sur les moteurs. Je n'ai plus l'écran d'origine sur mes machines, donc je ne peux pas confirmer sa position sur l'écran ni si il est bien présent sur la configuration d'origine. Il faudrait qu'un membre qui a une X Max 3 regarde.
Epsilon Posté(e) lundi à 17:53 Auteur Posté(e) lundi à 17:53 (modifié) Merci pour cette réponse détaillée Je regarderai avec le plugin en question pour voir mais non je n’ai appuyé sur aucun bouton pour désengagé les moteurs. Concernant les lignes sur mon print de citrouille, est-il possible qu'une buse usée puisse me faire ces lignes? J'en profite pour vous demander a quelle fréquence vous remplacez vos buses? Aussi avez vous des lubrifiants a me conseiller pour lubrifier les axes x et y ainsi que les courroies? Puis je utiliser la même pour les deux? Modifié (le) lundi à 17:56 par Epsilon
JoOj Posté(e) lundi à 18:08 Posté(e) lundi à 18:08 il y a 12 minutes, Epsilon a dit : Concernant les lignes sur mon print de citrouille, est-il possible qu'une buse usée puisse me faire ces lignes? Un pla Silk à une brillance qui varie (plus que les autres) avec les conditions d'impression. Il faudrait t'assurer que les périmètres s'impriment à vitesse et ventilation constante, pour voir si ça joue sur le rendu. 1
V3DP Posté(e) lundi à 18:11 Posté(e) lundi à 18:11 (modifié) il y a 19 minutes, Epsilon a dit : Je regarderai avec le plugin en question pour voir mais non je n’ai appuyé sur aucun bouton pour désengagé les moteurs. Pas la peine de regarder ce plugin, ce n'est pas une bonne idée de l'installer sur une X Max 3 complètement d'origine. Pour les lignes sur ta citrouille, j'irai chercher la piste de @JoOj Pour la lubrification des axes X Y et Z. On ne graisse pas les courroies, surtout pas ! Pour les axes X et Y j'utilise de l'Unilube et pour les axes Z, de l'Unilube pour les tiges et de la Magnalube pour les vis trapézoidales. L'usure des buses, sauf si tu as passé du filament chargé de quelque chose, sinon c'est assez résistant. Modifié (le) lundi à 18:13 par V3DP
Epsilon Posté(e) lundi à 18:12 Auteur Posté(e) lundi à 18:12 D'accord car effectivement je trouvais que le rendu était un peu trop "sombre" selon moi, que ça tirait plus vers le noir et qu'on voyait pas assez le vert. As tu des recommandations sur les paramètres a ajuster pour avoir des rendu différents autre que la vitesse? il y a 1 minute, V3DP a dit : Pas la peine de regarder ce plugin, ce n'est pas une bonne idée de l'installer sur une X Max 3 complètement d'origine. Pour les lignes sur ta citrouille, j'irai chercher d'abord du coté de la lubrification des axes X Y et Z. On ne graisse pas les courroies, surtout pas ! Pour les axes X et Y j'utilise de l'Unilube et pour les axes Z, de l'Unilube pour les tiges et de la Magnalube pour les vis trapézoidales. L'usure des buses, sauf si tu as passé du filament chargé de quelque chose, sinon c'est assez résistant. Merci pour tes recommandations Excepté du PLA/PLA+ et bicouleur je n’ai pas mis d'autres filaments pour le moment
JoOj Posté(e) lundi à 18:20 Posté(e) lundi à 18:20 il y a 3 minutes, Epsilon a dit : As tu des recommandations sur les paramètres a ajuster pour avoir des rendu différents autre que la vitesse? Par défaut, la vitesse perimetrique devrait être constante. Par contre du peux avoir des paramètres de vitesse de surplomb qui font ralentir => tu peux donc tenter d'aligner tes vitesses de périmètres sur celles des sur plombs (ça va être treeeeees lent) Pour la ventilation, tu peux la régler "toujours à fond" Mais j'avais pas capté que c'etait un bicolore. Un filament bicolore en général donne des reflets réguliers en a (genre un œuf, tu le tournes, tu as la même couleur de haut en bas)
Epsilon Posté(e) lundi à 18:53 Auteur Posté(e) lundi à 18:53 Oui pardon j'avais oublié de préciser que c'était du bicouleur J'ai dis Silk car sur la boîte de la bobine (Sunlu) il y a marqué "Silk" donc j'ai pris les paramètres Silk sur mon Qidi Studio. Mais l'image que j'avais sur une impression du vendeur n'est pas vraiment la même de ce que j'ai obtenu D'ailleurs j'ai relancer une impression de mon marqué page multi couleur en faisant attention de ne pas bouger la tête cette fois. Le décalage n'est plus apparu, cependant il y a des endroits où le filament ne s’est pas du tout déposer ! En pièce jointe, la photo du maker qui l'a créer... et le miens (j'ai suivi les configurations qu'il a donné) Pareil pour le vase qui ressort beaucoup plus foncé que sur la page d'achat. Donc j'ai l'impression que cest une histoire de paramétrage mais je cherche encore quoi !
Alain D. Posté(e) lundi à 19:46 Posté(e) lundi à 19:46 il y a 51 minutes, Epsilon a dit : Oui pardon j'avais oublié de préciser que c'était du bicouleur Galopin... 1
Epsilon Posté(e) il y a 12 heures Auteur Posté(e) il y a 12 heures Bon j'ai fais un benchy dont voici le résultat On voit bien les lignes entre les couches... Ce matin j'ai regraisser tous les axes Alors j'ai joué sur le Z Offset car je trouvais que la première couche n'était pas assez "écrasé" et j'ai l'impression que ca a arrangé un peu la qualité Par contre n‘est ce pas trop écrasé maintenant ? Car on ne voit plus ce qu'il y a écrit ce qui était sous le benchy (gauche ancienne valeur et droite après ajustement du z offset)
V3DP Posté(e) il y a 7 heures Posté(e) il y a 7 heures Ca ressemble à un problème de "banding", variations de température de la hotend / température un peu trop faible. Quelques pistes Tu as essayé en augmentant la température de la hotend de 5°C ? Tu as calibré ta hotend ? (PID_CALIBRATE HEATER=extruder TARGET= (une température proche de celle que tu utilises, mais légèrement supérieure) Essaye de refaire un Benchy après avoir calibré ta hotend.
Epsilon Posté(e) il y a 3 heures Auteur Posté(e) il y a 3 heures Bonsoir V3DP Tiens non je n'ai pas essayé en augmentant la température ! Je vais tester ca Par contre tu m'as déjà perdu concernant la calibration de mon Hotend... Par exemple sur ma bobine PLA, ca affiche 200-210 en conseil d'impression Si je met mon benchy a 205° sur mon Slicer, par exemple je dois mettre PID_CALIBRATE HEATER=extruder TARGET=206 c'est bien ca?
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant