Browse Source

Fix Planner::unskew parity with skew

Scott Lahteine 7 years ago
parent
commit
da9748fb21
1 changed files with 3 additions and 3 deletions
  1. 3
    3
      Marlin/planner.h

+ 3
- 3
Marlin/planner.h View File

349
 
349
 
350
       FORCE_INLINE static void skew(float &cx, float &cy, const float &cz) {
350
       FORCE_INLINE static void skew(float &cx, float &cy, const float &cz) {
351
         if (WITHIN(cx, X_MIN_POS + 1, X_MAX_POS) && WITHIN(cy, Y_MIN_POS + 1, Y_MAX_POS)) {
351
         if (WITHIN(cx, X_MIN_POS + 1, X_MAX_POS) && WITHIN(cy, Y_MIN_POS + 1, Y_MAX_POS)) {
352
-          const float sx = cx - (cy * xy_skew_factor) - (cz * (xz_skew_factor - (xy_skew_factor * yz_skew_factor))),
353
-                      sy = cy - (cz * yz_skew_factor);
352
+          const float sx = cx - cy * xy_skew_factor - cz * (xz_skew_factor - (xy_skew_factor * yz_skew_factor)),
353
+                      sy = cy - cz * yz_skew_factor;
354
           if (WITHIN(sx, X_MIN_POS, X_MAX_POS) && WITHIN(sy, Y_MIN_POS, Y_MAX_POS)) {
354
           if (WITHIN(sx, X_MIN_POS, X_MAX_POS) && WITHIN(sy, Y_MIN_POS, Y_MAX_POS)) {
355
             cx = sx; cy = sy;
355
             cx = sx; cy = sy;
356
           }
356
           }
359
 
359
 
360
       FORCE_INLINE static void unskew(float &cx, float &cy, const float &cz) {
360
       FORCE_INLINE static void unskew(float &cx, float &cy, const float &cz) {
361
         if (WITHIN(cx, X_MIN_POS, X_MAX_POS) && WITHIN(cy, Y_MIN_POS, Y_MAX_POS)) {
361
         if (WITHIN(cx, X_MIN_POS, X_MAX_POS) && WITHIN(cy, Y_MIN_POS, Y_MAX_POS)) {
362
-          const float sx = cx + cy * xy_skew_factor + cz * xz_skew_factor,
362
+          const float sx = cx + cy * xy_skew_factor + cz * (xz_skew_factor - (xy_skew_factor * yz_skew_factor)),
363
                       sy = cy + cz * yz_skew_factor;
363
                       sy = cy + cz * yz_skew_factor;
364
           if (WITHIN(sx, X_MIN_POS, X_MAX_POS) && WITHIN(sy, Y_MIN_POS, Y_MAX_POS)) {
364
           if (WITHIN(sx, X_MIN_POS, X_MAX_POS) && WITHIN(sy, Y_MIN_POS, Y_MAX_POS)) {
365
             cx = sx; cy = sy;
365
             cx = sx; cy = sy;

Loading…
Cancel
Save