Ver código fonte

Do not use feedrate multiiply on Z and E only moves.

Erik vd Zalm 13 anos atrás
pai
commit
9083966c22
1 arquivos alterados com 8 adições e 2 exclusões
  1. 8
    2
      Marlin/Marlin.pde

+ 8
- 2
Marlin/Marlin.pde Ver arquivo

@@ -1602,8 +1602,14 @@ void prepare_move()
1602 1602
 {
1603 1603
   clamp_to_software_endstops(destination);
1604 1604
 
1605
-  previous_millis_cmd = millis();  
1606
-  plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply/60/100.0, active_extruder);
1605
+  previous_millis_cmd = millis(); 
1606
+  // Do not use feedmultiply for E or Z only moves
1607
+  if( (current_position[X_AXIS] == destination [X_AXIS]) && (current_position[Y_AXIS] == destination [Y_AXIS])) {
1608
+      plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
1609
+  }
1610
+  else {
1611
+    plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply/60/100.0, active_extruder);
1612
+  }
1607 1613
   for(int8_t i=0; i < NUM_AXIS; i++) {
1608 1614
     current_position[i] = destination[i];
1609 1615
   }

Carregando…
Cancelar
Salvar