Quellcode durchsuchen

Merge pull request #768 from whosawhatsis/Marlin_v1

multiple FWretract fixes
daid vor 11 Jahren
Ursprung
Commit
816f0a678a
1 geänderte Dateien mit 13 neuen und 5 gelöschten Zeilen
  1. 13
    5
      Marlin/Marlin_main.cpp

+ 13
- 5
Marlin/Marlin_main.cpp Datei anzeigen

137
 // M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2  also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate
137
 // M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2  also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate
138
 // M205 -  advanced settings:  minimum travel speed S=while printing T=travel only,  B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk
138
 // M205 -  advanced settings:  minimum travel speed S=while printing T=travel only,  B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk
139
 // M206 - set additional homeing offset
139
 // M206 - set additional homeing offset
140
-// M207 - set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop]
141
-// M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/sec]
140
+// M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop], stays in mm regardless of M200 setting
141
+// M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/min]
142
 // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction.
142
 // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction.
143
 // M218 - set hotend offset (in mm): T<extruder_number> X<offset_on_X> Y<offset_on_Y>
143
 // M218 - set hotend offset (in mm): T<extruder_number> X<offset_on_X> Y<offset_on_Y>
144
 // M220 S<factor in percent>- set speed factor override percentage
144
 // M220 S<factor in percent>- set speed factor override percentage
1113
         destination[X_AXIS]=current_position[X_AXIS];
1113
         destination[X_AXIS]=current_position[X_AXIS];
1114
         destination[Y_AXIS]=current_position[Y_AXIS];
1114
         destination[Y_AXIS]=current_position[Y_AXIS];
1115
         destination[Z_AXIS]=current_position[Z_AXIS];
1115
         destination[Z_AXIS]=current_position[Z_AXIS];
1116
-        current_position[Z_AXIS]+=-retract_zlift;
1117
-        destination[E_AXIS]=current_position[E_AXIS]-retract_length;
1116
+        current_position[Z_AXIS]-=retract_zlift;
1117
+        destination[E_AXIS]=current_position[E_AXIS];
1118
+        current_position[E_AXIS]+=retract_length/volumetric_multiplier[active_extruder];
1119
+        plan_set_e_position(current_position[E_AXIS]);
1120
+        float oldFeedrate = feedrate;
1118
         feedrate=retract_feedrate;
1121
         feedrate=retract_feedrate;
1119
         retracted=true;
1122
         retracted=true;
1120
         prepare_move();
1123
         prepare_move();
1124
+        feedrate = oldFeedrate;
1121
       }
1125
       }
1122
 
1126
 
1123
       break;
1127
       break;
1128
         destination[Y_AXIS]=current_position[Y_AXIS];
1132
         destination[Y_AXIS]=current_position[Y_AXIS];
1129
         destination[Z_AXIS]=current_position[Z_AXIS];
1133
         destination[Z_AXIS]=current_position[Z_AXIS];
1130
         current_position[Z_AXIS]+=retract_zlift;
1134
         current_position[Z_AXIS]+=retract_zlift;
1131
-        destination[E_AXIS]=current_position[E_AXIS]+retract_length+retract_recover_length;
1135
+        destination[E_AXIS]=current_position[E_AXIS];
1136
+        current_position[E_AXIS]-=(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; 
1137
+        plan_set_e_position(current_position[E_AXIS]);
1138
+        float oldFeedrate = feedrate;
1132
         feedrate=retract_recover_feedrate;
1139
         feedrate=retract_recover_feedrate;
1133
         retracted=false;
1140
         retracted=false;
1134
         prepare_move();
1141
         prepare_move();
1142
+        feedrate = oldFeedrate;
1135
       }
1143
       }
1136
       break;
1144
       break;
1137
       #endif //FWRETRACT
1145
       #endif //FWRETRACT

Laden…
Abbrechen
Speichern