Browse Source

Possible fix for FWRETRACT with 0 zlift.

Erik van der Zalm 10 years ago
parent
commit
8a2e84e3f1
1 changed files with 14 additions and 10 deletions
  1. 14
    10
      Marlin/Marlin_main.cpp

+ 14
- 10
Marlin/Marlin_main.cpp View File

@@ -1283,28 +1283,32 @@ void refresh_cmd_timeout(void)
1283 1283
       feedrate=retract_feedrate*60;
1284 1284
       retracted[active_extruder]=true;
1285 1285
       prepare_move();
1286
-      current_position[Z_AXIS]-=retract_zlift;
1286
+      if(retract_zlift > 0.01) {
1287
+         current_position[Z_AXIS]-=retract_zlift;
1287 1288
 #ifdef DELTA
1288
-      calculate_delta(current_position); // change cartesian kinematic to  delta kinematic;
1289
-      plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]);
1289
+         calculate_delta(current_position); // change cartesian kinematic to  delta kinematic;
1290
+         plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]);
1290 1291
 #else
1291
-      plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
1292
+         plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
1292 1293
 #endif
1293
-      prepare_move();
1294
+         prepare_move();
1295
+      }
1294 1296
       feedrate = oldFeedrate;
1295 1297
     } else if(!retracting && retracted[active_extruder]) {
1296 1298
       destination[X_AXIS]=current_position[X_AXIS];
1297 1299
       destination[Y_AXIS]=current_position[Y_AXIS];
1298 1300
       destination[Z_AXIS]=current_position[Z_AXIS];
1299 1301
       destination[E_AXIS]=current_position[E_AXIS];
1300
-      current_position[Z_AXIS]+=retract_zlift;
1302
+      if(retract_zlift > 0.01) {
1303
+         current_position[Z_AXIS]+=retract_zlift;
1301 1304
 #ifdef DELTA
1302
-      calculate_delta(current_position); // change cartesian kinematic  to  delta kinematic;
1303
-      plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]);
1305
+         calculate_delta(current_position); // change cartesian kinematic  to  delta kinematic;
1306
+         plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]);
1304 1307
 #else
1305
-      plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
1308
+         plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
1306 1309
 #endif
1307
-      //prepare_move();
1310
+         //prepare_move();
1311
+      }
1308 1312
       if (swapretract) {
1309 1313
         current_position[E_AXIS]-=(retract_length_swap+retract_recover_length_swap)/volumetric_multiplier[active_extruder]; 
1310 1314
       } else {

Loading…
Cancel
Save