+ // sometimes even though there is a detectable movement it turns out there are no steps to be had from such a small move
+ if(!has_steps) {
+ block->clear();
+ return false;
+ }
+
+ // info needed by laser
+ block->s_value = roundf(s_value*(1<<11)); // 1.11 fixed point
+ block->is_g123 = g123;
+
+ // use default JD
+ float junction_deviation = this->junction_deviation;
+
+ // use either regular junction deviation or z specific and see if a primary axis move
+ block->primary_axis = true;
+ if(block->steps[ALPHA_STEPPER] == 0 && block->steps[BETA_STEPPER] == 0) {
+ if(block->steps[GAMMA_STEPPER] != 0) {
+ // z only move
+ if(!isnan(this->z_junction_deviation)) junction_deviation = this->z_junction_deviation;
+
+ } else {
+ // is not a primary axis move
+ block->primary_axis= false;
+ #if N_PRIMARY_AXIS > 3
+ for (int i = 3; i < N_PRIMARY_AXIS; ++i) {
+ if(block->steps[i] != 0){
+ block->primary_axis= true;
+ break;
+ }
+ }
+ #endif
+
+ }
+ }
+
+ block->acceleration = acceleration; // save in block
+