getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:4.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 4.00 getTurn => turn:-14123.49 = (x2:-142.08 - x1:-95.00) * (y3:4.00 - y1:0.00) - (y2:121.18 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14123.49 = (x2:-133.55 - x1:-95.00) * (y3:4.00 - y1:0.00) - (y2:-124.15 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:111.23 thetaB:252.75 proxturnA:-14123.49 proxturnB:-14123.49 getTheta => use: 2 x2: -133.55 y2: -124.15 thetaB: 252.75 x1: -142.08 y1: 121.18 thetaA: 111.23 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:4.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 4.00 getTurn => turn:-4373.64 = (x2:207.96 - x1:95.00) * (y3:4.00 - y1:0.00) - (y2:-64.34 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4373.64 = (x2:214.16 - x1:95.00) * (y3:4.00 - y1:0.00) - (y2:51.96 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:330.34 thetaB:23.56 proxturnA:-4373.64 proxturnB:-4373.64 getTheta => use: 2 x2: 214.16 y2: 51.96 thetaB: 23.56 x1: 207.96 y1: -64.34 thetaA: 330.34 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:4.00 cachedX1:20.00 cachedY1:4.00 getInverse => cachedXL:-133.55 cachedYL:-124.15 cachedXR:214.16 cachedYR:51.96 cachedThetaR:23.56 cachedXR:214.16 getInverse => cachedYR:51.96 cachedThetaL:252.75 cachedXL:-133.55 cachedYL:-124.15 getInverse => cachedInvalid:0 x_0:20.00 y_0:4.00 xL:-133.55 yL:-124.15 thetaL:252.75 xR:214.16 yR:51.96 thetaR:23.56 x1:20.00 y1:4.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:252.75>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:252.75 < actuatorAngleLMin:0.00 || thetaL:252.75 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:23.56>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:23.56 < actuatorAngleRMin:0.00 || thetaR:23.56 > actuatorAngleRMax:270.00 return false getAngle => x1:-133.55 y1:-124.15 x2:20.00 y2:4.00 x3:214.16 y3:51.96 getAngle => angle:154.03 = 360 + angle2:13.87 - angle1:219.85 constraintsOK => achedInvalid:0 headAngle:154.03 < headAngleMin:0.00 || headAngle:154.03 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-133.55 y2:-124.15 x3:20.00 y3:4.00 getAngle => angle:327.10 = 360 + angle2:39.85 - angle1:72.75 constraintsOK => cachedInvalid:0 angleProxDistL:327.10 < proxDistLAngleMin:0.00 || angleProxDistL:327.10 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:214.16 y2:51.96 x3:20.00 y3:4.00 getAngle => angle:350.32 = 360 + angle2:193.87 - angle1:203.56 constraintsOK => cachedInvalid:0 angleProxDistR:350.32 < proxDistRAngleMin:0.00 || angleProxDistR:350.32 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:4.00 CartesianToMotorSteps => motorPosX = cachedThetaL:252.75 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:23.56 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:4.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:4.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:5.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 5.00 getTurn => turn:-14130.44 = (x2:-143.08 - x1:-95.00) * (y3:5.00 - y1:0.00) - (y2:120.78 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14130.44 = (x2:-132.41 - x1:-95.00) * (y3:5.00 - y1:0.00) - (y2:-124.50 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:111.70 thetaB:253.27 proxturnA:-14130.44 proxturnB:-14130.44 getTheta => use: 2 x2: -132.41 y2: -124.50 thetaB: 253.27 x1: -143.08 y1: 120.78 thetaA: 111.70 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:5.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 5.00 getTurn => turn:-4399.92 = (x2:206.92 - x1:95.00) * (y3:5.00 - y1:0.00) - (y2:-66.13 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4399.92 = (x2:214.71 - x1:95.00) * (y3:5.00 - y1:0.00) - (y2:50.68 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:329.42 thetaB:22.95 proxturnA:-4399.92 proxturnB:-4399.92 getTheta => use: 2 x2: 214.71 y2: 50.68 thetaB: 22.95 x1: 206.92 y1: -66.13 thetaA: 329.42 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:5.00 cachedX1:20.00 cachedY1:5.00 getInverse => cachedXL:-132.41 cachedYL:-124.50 cachedXR:214.71 cachedYR:50.68 cachedThetaR:22.95 cachedXR:214.71 getInverse => cachedYR:50.68 cachedThetaL:253.27 cachedXL:-132.41 cachedYL:-124.50 getInverse => cachedInvalid:0 x_0:20.00 y_0:5.00 xL:-132.41 yL:-124.50 thetaL:253.27 xR:214.71 yR:50.68 thetaR:22.95 x1:20.00 y1:5.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:253.27>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:253.27 < actuatorAngleLMin:0.00 || thetaL:253.27 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:22.95>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:22.95 < actuatorAngleRMin:0.00 || thetaR:22.95 > actuatorAngleRMax:270.00 return false getAngle => x1:-132.41 y1:-124.50 x2:20.00 y2:5.00 x3:214.71 y3:50.68 getAngle => angle:152.85 = 360 + angle2:13.20 - angle1:220.35 constraintsOK => achedInvalid:0 headAngle:152.85 < headAngleMin:0.00 || headAngle:152.85 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-132.41 y2:-124.50 x3:20.00 y3:5.00 getAngle => angle:327.08 = 360 + angle2:40.35 - angle1:73.27 constraintsOK => cachedInvalid:0 angleProxDistL:327.08 < proxDistLAngleMin:0.00 || angleProxDistL:327.08 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:214.71 y2:50.68 x3:20.00 y3:5.00 getAngle => angle:350.26 = 360 + angle2:193.20 - angle1:202.95 constraintsOK => cachedInvalid:0 angleProxDistR:350.26 < proxDistRAngleMin:0.00 || angleProxDistR:350.26 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:5.00 CartesianToMotorSteps => motorPosX = cachedThetaL:253.27 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:22.95 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:5.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:5.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:6.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 6.00 getTurn => turn:-14138.93 = (x2:-144.06 - x1:-95.00) * (y3:6.00 - y1:0.00) - (y2:120.39 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14138.93 = (x2:-131.26 - x1:-95.00) * (y3:6.00 - y1:0.00) - (y2:-124.84 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:112.17 thetaB:253.80 proxturnA:-14138.93 proxturnB:-14138.93 getTheta => use: 2 x2: -131.26 y2: -124.84 thetaB: 253.80 x1: -144.06 y1: 120.39 thetaA: 112.17 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:6.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 6.00 getTurn => turn:-4431.84 = (x2:205.82 - x1:95.00) * (y3:6.00 - y1:0.00) - (y2:-67.96 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4431.84 = (x2:215.22 - x1:95.00) * (y3:6.00 - y1:0.00) - (y2:49.47 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:328.48 thetaB:22.37 proxturnA:-4431.84 proxturnB:-4431.84 getTheta => use: 2 x2: 215.22 y2: 49.47 thetaB: 22.37 x1: 205.82 y1: -67.96 thetaA: 328.48 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:6.00 cachedX1:20.00 cachedY1:6.00 getInverse => cachedXL:-131.26 cachedYL:-124.84 cachedXR:215.22 cachedYR:49.47 cachedThetaR:22.37 cachedXR:215.22 getInverse => cachedYR:49.47 cachedThetaL:253.80 cachedXL:-131.26 cachedYL:-124.84 getInverse => cachedInvalid:0 x_0:20.00 y_0:6.00 xL:-131.26 yL:-124.84 thetaL:253.80 xR:215.22 yR:49.47 thetaR:22.37 x1:20.00 y1:6.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:253.80>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:253.80 < actuatorAngleLMin:0.00 || thetaL:253.80 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:22.37>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:22.37 < actuatorAngleRMin:0.00 || thetaR:22.37 > actuatorAngleRMax:270.00 return false getAngle => x1:-131.26 y1:-124.84 x2:20.00 y2:6.00 x3:215.22 y3:49.47 getAngle => angle:151.70 = 360 + angle2:12.55 - angle1:220.86 constraintsOK => achedInvalid:0 headAngle:151.70 < headAngleMin:0.00 || headAngle:151.70 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-131.26 y2:-124.84 x3:20.00 y3:6.00 getAngle => angle:327.06 = 360 + angle2:40.86 - angle1:73.80 constraintsOK => cachedInvalid:0 angleProxDistL:327.06 < proxDistLAngleMin:0.00 || angleProxDistL:327.06 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:215.22 y2:49.47 x3:20.00 y3:6.00 getAngle => angle:350.19 = 360 + angle2:192.55 - angle1:202.37 constraintsOK => cachedInvalid:0 angleProxDistR:350.19 < proxDistRAngleMin:0.00 || angleProxDistR:350.19 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:6.00 CartesianToMotorSteps => motorPosX = cachedThetaL:253.80 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:22.37 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:6.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:6.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:7.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 7.00 getTurn => turn:-14148.96 = (x2:-145.03 - x1:-95.00) * (y3:7.00 - y1:0.00) - (y2:119.99 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14148.96 = (x2:-130.10 - x1:-95.00) * (y3:7.00 - y1:0.00) - (y2:-125.17 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:112.63 thetaB:254.33 proxturnA:-14148.96 proxturnB:-14148.96 getTheta => use: 2 x2: -130.10 y2: -125.17 thetaB: 254.33 x1: -145.03 y1: 119.99 thetaA: 112.63 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:7.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 7.00 getTurn => turn:-4469.25 = (x2:204.66 - x1:95.00) * (y3:7.00 - y1:0.00) - (y2:-69.82 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4469.25 = (x2:215.68 - x1:95.00) * (y3:7.00 - y1:0.00) - (y2:48.33 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:327.51 thetaB:21.82 proxturnA:-4469.25 proxturnB:-4469.25 getTheta => use: 2 x2: 215.68 y2: 48.33 thetaB: 21.82 x1: 204.66 y1: -69.82 thetaA: 327.51 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:7.00 cachedX1:20.00 cachedY1:7.00 getInverse => cachedXL:-130.10 cachedYL:-125.17 cachedXR:215.68 cachedYR:48.33 cachedThetaR:21.82 cachedXR:215.68 getInverse => cachedYR:48.33 cachedThetaL:254.33 cachedXL:-130.10 cachedYL:-125.17 getInverse => cachedInvalid:0 x_0:20.00 y_0:7.00 xL:-130.10 yL:-125.17 thetaL:254.33 xR:215.68 yR:48.33 thetaR:21.82 x1:20.00 y1:7.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:254.33>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:254.33 < actuatorAngleLMin:0.00 || thetaL:254.33 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:21.82>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:21.82 < actuatorAngleRMin:0.00 || thetaR:21.82 > actuatorAngleRMax:270.00 return false getAngle => x1:-130.10 y1:-125.17 x2:20.00 y2:7.00 x3:215.68 y3:48.33 getAngle => angle:150.56 = 360 + angle2:11.93 - angle1:221.37 constraintsOK => achedInvalid:0 headAngle:150.56 < headAngleMin:0.00 || headAngle:150.56 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-130.10 y2:-125.17 x3:20.00 y3:7.00 getAngle => angle:327.03 = 360 + angle2:41.37 - angle1:74.33 constraintsOK => cachedInvalid:0 angleProxDistL:327.03 < proxDistLAngleMin:0.00 || angleProxDistL:327.03 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:215.68 y2:48.33 x3:20.00 y3:7.00 getAngle => angle:350.10 = 360 + angle2:191.93 - angle1:201.82 constraintsOK => cachedInvalid:0 angleProxDistR:350.10 < proxDistRAngleMin:0.00 || angleProxDistR:350.10 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:7.00 CartesianToMotorSteps => motorPosX = cachedThetaL:254.33 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:21.82 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:7.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:7.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:8.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 8.00 getTurn => turn:-14160.51 = (x2:-145.98 - x1:-95.00) * (y3:8.00 - y1:0.00) - (y2:119.59 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14160.51 = (x2:-128.93 - x1:-95.00) * (y3:8.00 - y1:0.00) - (y2:-125.50 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:113.09 thetaB:254.87 proxturnA:-14160.51 proxturnB:-14160.51 getTheta => use: 2 x2: -128.93 y2: -125.50 thetaB: 254.87 x1: -145.98 y1: 119.59 thetaA: 113.09 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:8.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 8.00 getTurn => turn:-4512.03 = (x2:203.42 - x1:95.00) * (y3:8.00 - y1:0.00) - (y2:-71.73 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4512.03 = (x2:216.11 - x1:95.00) * (y3:8.00 - y1:0.00) - (y2:47.24 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:326.51 thetaB:21.31 proxturnA:-4512.03 proxturnB:-4512.03 getTheta => use: 2 x2: 216.11 y2: 47.24 thetaB: 21.31 x1: 203.42 y1: -71.73 thetaA: 326.51 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:8.00 cachedX1:20.00 cachedY1:8.00 getInverse => cachedXL:-128.93 cachedYL:-125.50 cachedXR:216.11 cachedYR:47.24 cachedThetaR:21.31 cachedXR:216.11 getInverse => cachedYR:47.24 cachedThetaL:254.87 cachedXL:-128.93 cachedYL:-125.50 getInverse => cachedInvalid:0 x_0:20.00 y_0:8.00 xL:-128.93 yL:-125.50 thetaL:254.87 xR:216.11 yR:47.24 thetaR:21.31 x1:20.00 y1:8.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:254.87>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:254.87 < actuatorAngleLMin:0.00 || thetaL:254.87 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:21.31>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:21.31 < actuatorAngleRMin:0.00 || thetaR:21.31 > actuatorAngleRMax:270.00 return false getAngle => x1:-128.93 y1:-125.50 x2:20.00 y2:8.00 x3:216.11 y3:47.24 getAngle => angle:149.44 = 360 + angle2:11.32 - angle1:221.87 constraintsOK => achedInvalid:0 headAngle:149.44 < headAngleMin:0.00 || headAngle:149.44 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-128.93 y2:-125.50 x3:20.00 y3:8.00 getAngle => angle:327.00 = 360 + angle2:41.87 - angle1:74.87 constraintsOK => cachedInvalid:0 angleProxDistL:327.00 < proxDistLAngleMin:0.00 || angleProxDistL:327.00 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:216.11 y2:47.24 x3:20.00 y3:8.00 getAngle => angle:350.01 = 360 + angle2:191.32 - angle1:201.31 constraintsOK => cachedInvalid:0 angleProxDistR:350.01 < proxDistRAngleMin:0.00 || angleProxDistR:350.01 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:8.00 CartesianToMotorSteps => motorPosX = cachedThetaL:254.87 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:21.31 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:8.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:8.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:9.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 9.00 getTurn => turn:-14173.59 = (x2:-146.91 - x1:-95.00) * (y3:9.00 - y1:0.00) - (y2:119.19 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14173.59 = (x2:-127.74 - x1:-95.00) * (y3:9.00 - y1:0.00) - (y2:-125.81 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:113.54 thetaB:255.41 proxturnA:-14173.59 proxturnB:-14173.59 getTheta => use: 2 x2: -127.74 y2: -125.81 thetaB: 255.41 x1: -146.91 y1: 119.19 thetaA: 113.54 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:9.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 9.00 getTurn => turn:-4560.00 = (x2:202.12 - x1:95.00) * (y3:9.00 - y1:0.00) - (y2:-73.65 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4560.00 = (x2:216.51 - x1:95.00) * (y3:9.00 - y1:0.00) - (y2:46.22 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:325.49 thetaB:20.83 proxturnA:-4560.00 proxturnB:-4560.00 getTheta => use: 2 x2: 216.51 y2: 46.22 thetaB: 20.83 x1: 202.12 y1: -73.65 thetaA: 325.49 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:9.00 cachedX1:20.00 cachedY1:9.00 getInverse => cachedXL:-127.74 cachedYL:-125.81 cachedXR:216.51 cachedYR:46.22 cachedThetaR:20.83 cachedXR:216.51 getInverse => cachedYR:46.22 cachedThetaL:255.41 cachedXL:-127.74 cachedYL:-125.81 getInverse => cachedInvalid:0 x_0:20.00 y_0:9.00 xL:-127.74 yL:-125.81 thetaL:255.41 xR:216.51 yR:46.22 thetaR:20.83 x1:20.00 y1:9.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:255.41>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:255.41 < actuatorAngleLMin:0.00 || thetaL:255.41 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:20.83>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:20.83 < actuatorAngleRMin:0.00 || thetaR:20.83 > actuatorAngleRMax:270.00 return false getAngle => x1:-127.74 y1:-125.81 x2:20.00 y2:9.00 x3:216.51 y3:46.22 getAngle => angle:148.34 = 360 + angle2:10.73 - angle1:222.38 constraintsOK => achedInvalid:0 headAngle:148.34 < headAngleMin:0.00 || headAngle:148.34 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-127.74 y2:-125.81 x3:20.00 y3:9.00 getAngle => angle:326.97 = 360 + angle2:42.38 - angle1:75.41 constraintsOK => cachedInvalid:0 angleProxDistL:326.97 < proxDistLAngleMin:0.00 || angleProxDistL:326.97 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:216.51 y2:46.22 x3:20.00 y3:9.00 getAngle => angle:349.90 = 360 + angle2:190.73 - angle1:200.83 constraintsOK => cachedInvalid:0 angleProxDistR:349.90 < proxDistRAngleMin:0.00 || angleProxDistR:349.90 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:9.00 CartesianToMotorSteps => motorPosX = cachedThetaL:255.41 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:20.83 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:9.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:10.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 10.00 getTurn => turn:-14188.19 = (x2:-147.83 - x1:-95.00) * (y3:10.00 - y1:0.00) - (y2:118.78 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14188.19 = (x2:-126.53 - x1:-95.00) * (y3:10.00 - y1:0.00) - (y2:-126.12 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:113.98 thetaB:255.96 proxturnA:-14188.19 proxturnB:-14188.19 getTheta => use: 2 x2: -126.53 y2: -126.12 thetaB: 255.96 x1: -147.83 y1: 118.78 thetaA: 113.98 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:10.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 10.00 getTurn => turn:-4613.01 = (x2:200.75 - x1:95.00) * (y3:10.00 - y1:0.00) - (y2:-75.61 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4613.01 = (x2:216.87 - x1:95.00) * (y3:10.00 - y1:0.00) - (y2:45.26 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:324.44 thetaB:20.37 proxturnA:-4613.01 proxturnB:-4613.01 getTheta => use: 2 x2: 216.87 y2: 45.26 thetaB: 20.37 x1: 200.75 y1: -75.61 thetaA: 324.44 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:10.00 cachedX1:20.00 cachedY1:10.00 getInverse => cachedXL:-126.53 cachedYL:-126.12 cachedXR:216.87 cachedYR:45.26 cachedThetaR:20.37 cachedXR:216.87 getInverse => cachedYR:45.26 cachedThetaL:255.96 cachedXL:-126.53 cachedYL:-126.12 getInverse => cachedInvalid:0 x_0:20.00 y_0:10.00 xL:-126.53 yL:-126.12 thetaL:255.96 xR:216.87 yR:45.26 thetaR:20.37 x1:20.00 y1:10.00 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:10.00 CartesianToMotorSteps => motorPosX = cachedThetaL:255.96 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:20.37 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:10.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:10.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:20.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 20.00 getTurn => turn:-14415.91 = (x2:-156.15 - x1:-95.00) * (y3:20.00 - y1:0.00) - (y2:114.72 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14415.91 = (x2:-113.83 - x1:-95.00) * (y3:20.00 - y1:0.00) - (y2:-128.63 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:118.06 thetaB:261.67 proxturnA:-14415.91 proxturnB:-14415.91 getTheta => use: 2 x2: -113.83 y2: -128.63 thetaB: 261.67 x1: -156.15 y1: 114.72 thetaA: 118.06 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:20.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 20.00 getTurn => turn:-5379.00 = (x2:183.42 - x1:95.00) * (y3:20.00 - y1:0.00) - (y2:-95.30 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5379.00 = (x2:219.13 - x1:95.00) * (y3:20.00 - y1:0.00) - (y2:38.62 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:312.86 thetaB:17.28 proxturnA:-5379.00 proxturnB:-5379.00 getTheta => use: 2 x2: 219.13 y2: 38.62 thetaB: 17.28 x1: 183.42 y1: -95.30 thetaA: 312.86 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:20.00 cachedX1:20.00 cachedY1:20.00 getInverse => cachedXL:-113.83 cachedYL:-128.63 cachedXR:219.13 cachedYR:38.62 cachedThetaR:17.28 cachedXR:219.13 getInverse => cachedYR:38.62 cachedThetaL:261.67 cachedXL:-113.83 cachedYL:-128.63 getInverse => cachedInvalid:0 x_0:20.00 y_0:20.00 xL:-113.83 yL:-128.63 thetaL:261.67 xR:219.13 yR:38.62 thetaR:17.28 x1:20.00 y1:20.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:261.67>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:261.67 < actuatorAngleLMin:0.00 || thetaL:261.67 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:17.28>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:17.28 < actuatorAngleRMin:0.00 || thetaR:17.28 > actuatorAngleRMax:270.00 return false getAngle => x1:-113.83 y1:-128.63 x2:20.00 y2:20.00 x3:219.13 y3:38.62 getAngle => angle:137.34 = 360 + angle2:5.34 - angle1:228.00 constraintsOK => achedInvalid:0 headAngle:137.34 < headAngleMin:0.00 || headAngle:137.34 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-113.83 y2:-128.63 x3:20.00 y3:20.00 getAngle => angle:326.33 = 360 + angle2:48.00 - angle1:81.67 constraintsOK => cachedInvalid:0 angleProxDistL:326.33 < proxDistLAngleMin:0.00 || angleProxDistL:326.33 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.13 y2:38.62 x3:20.00 y3:20.00 getAngle => angle:348.06 = 360 + angle2:185.34 - angle1:197.28 constraintsOK => cachedInvalid:0 angleProxDistR:348.06 < proxDistRAngleMin:0.00 || angleProxDistR:348.06 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:20.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:11.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 11.00 getTurn => turn:-14204.30 = (x2:-148.73 - x1:-95.00) * (y3:11.00 - y1:0.00) - (y2:118.38 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14204.30 = (x2:-125.32 - x1:-95.00) * (y3:11.00 - y1:0.00) - (y2:-126.42 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:114.41 thetaB:256.51 proxturnA:-14204.30 proxturnB:-14204.30 getTheta => use: 2 x2: -125.32 y2: -126.42 thetaB: 256.51 x1: -148.73 y1: 118.38 thetaA: 114.41 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:11.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 11.00 getTurn => turn:-4670.87 = (x2:199.32 - x1:95.00) * (y3:11.00 - y1:0.00) - (y2:-77.58 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4670.87 = (x2:217.20 - x1:95.00) * (y3:11.00 - y1:0.00) - (y2:44.36 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:323.36 thetaB:19.95 proxturnA:-4670.87 proxturnB:-4670.87 getTheta => use: 2 x2: 217.20 y2: 44.36 thetaB: 19.95 x1: 199.32 y1: -77.58 thetaA: 323.36 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:11.00 cachedX1:20.00 cachedY1:11.00 getInverse => cachedXL:-125.32 cachedYL:-126.42 cachedXR:217.20 cachedYR:44.36 cachedThetaR:19.95 cachedXR:217.20 getInverse => cachedYR:44.36 cachedThetaL:256.51 cachedXL:-125.32 cachedYL:-126.42 getInverse => cachedInvalid:0 x_0:20.00 y_0:11.00 xL:-125.32 yL:-126.42 thetaL:256.51 xR:217.20 yR:44.36 thetaR:19.95 x1:20.00 y1:11.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:256.51>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:256.51 < actuatorAngleLMin:0.00 || thetaL:256.51 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:19.95>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:19.95 < actuatorAngleRMin:0.00 || thetaR:19.95 > actuatorAngleRMax:270.00 return false getAngle => x1:-125.32 y1:-126.42 x2:20.00 y2:11.00 x3:217.20 y3:44.36 getAngle => angle:146.20 = 360 + angle2:9.60 - angle1:223.40 constraintsOK => achedInvalid:0 headAngle:146.20 < headAngleMin:0.00 || headAngle:146.20 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-125.32 y2:-126.42 x3:20.00 y3:11.00 getAngle => angle:326.89 = 360 + angle2:43.40 - angle1:76.51 constraintsOK => cachedInvalid:0 angleProxDistL:326.89 < proxDistLAngleMin:0.00 || angleProxDistL:326.89 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:217.20 y2:44.36 x3:20.00 y3:11.00 getAngle => angle:349.65 = 360 + angle2:189.60 - angle1:199.95 constraintsOK => cachedInvalid:0 angleProxDistR:349.65 < proxDistRAngleMin:0.00 || angleProxDistR:349.65 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:11.00 CartesianToMotorSteps => motorPosX = cachedThetaL:256.51 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:19.95 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:11.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:11.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:12.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 12.00 getTurn => turn:-14221.92 = (x2:-149.62 - x1:-95.00) * (y3:12.00 - y1:0.00) - (y2:117.97 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14221.92 = (x2:-124.09 - x1:-95.00) * (y3:12.00 - y1:0.00) - (y2:-126.70 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:114.84 thetaB:257.07 proxturnA:-14221.92 proxturnB:-14221.92 getTheta => use: 2 x2: -124.09 y2: -126.70 thetaB: 257.07 x1: -149.62 y1: 117.97 thetaA: 114.84 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:12.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 12.00 getTurn => turn:-4733.41 = (x2:197.81 - x1:95.00) * (y3:12.00 - y1:0.00) - (y2:-79.56 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4733.41 = (x2:217.50 - x1:95.00) * (y3:12.00 - y1:0.00) - (y2:43.51 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:322.26 thetaB:19.55 proxturnA:-4733.41 proxturnB:-4733.41 getTheta => use: 2 x2: 217.50 y2: 43.51 thetaB: 19.55 x1: 197.81 y1: -79.56 thetaA: 322.26 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:12.00 cachedX1:20.00 cachedY1:12.00 getInverse => cachedXL:-124.09 cachedYL:-126.70 cachedXR:217.50 cachedYR:43.51 cachedThetaR:19.55 cachedXR:217.50 getInverse => cachedYR:43.51 cachedThetaL:257.07 cachedXL:-124.09 cachedYL:-126.70 getInverse => cachedInvalid:0 x_0:20.00 y_0:12.00 xL:-124.09 yL:-126.70 thetaL:257.07 xR:217.50 yR:43.51 thetaR:19.55 x1:20.00 y1:12.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:257.07>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:257.07 < actuatorAngleLMin:0.00 || thetaL:257.07 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:19.55>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:19.55 < actuatorAngleRMin:0.00 || thetaR:19.55 > actuatorAngleRMax:270.00 return false getAngle => x1:-124.09 y1:-126.70 x2:20.00 y2:12.00 x3:217.50 y3:43.51 getAngle => angle:145.16 = 360 + angle2:9.07 - angle1:223.91 constraintsOK => achedInvalid:0 headAngle:145.16 < headAngleMin:0.00 || headAngle:145.16 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-124.09 y2:-126.70 x3:20.00 y3:12.00 getAngle => angle:326.84 = 360 + angle2:43.91 - angle1:77.07 constraintsOK => cachedInvalid:0 angleProxDistL:326.84 < proxDistLAngleMin:0.00 || angleProxDistL:326.84 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:217.50 y2:43.51 x3:20.00 y3:12.00 getAngle => angle:349.51 = 360 + angle2:189.07 - angle1:199.55 constraintsOK => cachedInvalid:0 angleProxDistR:349.51 < proxDistRAngleMin:0.00 || angleProxDistR:349.51 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:12.00 CartesianToMotorSteps => motorPosX = cachedThetaL:257.07 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:19.55 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:12.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:12.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:13.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 13.00 getTurn => turn:-14241.03 = (x2:-150.49 - x1:-95.00) * (y3:13.00 - y1:0.00) - (y2:117.56 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14241.03 = (x2:-122.85 - x1:-95.00) * (y3:13.00 - y1:0.00) - (y2:-126.98 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:115.27 thetaB:257.63 proxturnA:-14241.03 proxturnB:-14241.03 getTheta => use: 2 x2: -122.85 y2: -126.98 thetaB: 257.63 x1: -150.49 y1: 117.56 thetaA: 115.27 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:13.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 13.00 getTurn => turn:-4800.44 = (x2:196.24 - x1:95.00) * (y3:13.00 - y1:0.00) - (y2:-81.55 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4800.44 = (x2:217.78 - x1:95.00) * (y3:13.00 - y1:0.00) - (y2:42.72 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:321.15 thetaB:19.19 proxturnA:-4800.44 proxturnB:-4800.44 getTheta => use: 2 x2: 217.78 y2: 42.72 thetaB: 19.19 x1: 196.24 y1: -81.55 thetaA: 321.15 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:13.00 cachedX1:20.00 cachedY1:13.00 getInverse => cachedXL:-122.85 cachedYL:-126.98 cachedXR:217.78 cachedYR:42.72 cachedThetaR:19.19 cachedXR:217.78 getInverse => cachedYR:42.72 cachedThetaL:257.63 cachedXL:-122.85 cachedYL:-126.98 getInverse => cachedInvalid:0 x_0:20.00 y_0:13.00 xL:-122.85 yL:-126.98 thetaL:257.63 xR:217.78 yR:42.72 thetaR:19.19 x1:20.00 y1:13.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:257.63>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:257.63 < actuatorAngleLMin:0.00 || thetaL:257.63 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:19.19>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:19.19 < actuatorAngleRMin:0.00 || thetaR:19.19 > actuatorAngleRMax:270.00 return false getAngle => x1:-122.85 y1:-126.98 x2:20.00 y2:13.00 x3:217.78 y3:42.72 getAngle => angle:144.13 = 360 + angle2:8.55 - angle1:224.42 constraintsOK => achedInvalid:0 headAngle:144.13 < headAngleMin:0.00 || headAngle:144.13 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-122.85 y2:-126.98 x3:20.00 y3:13.00 getAngle => angle:326.79 = 360 + angle2:44.42 - angle1:77.63 constraintsOK => cachedInvalid:0 angleProxDistL:326.79 < proxDistLAngleMin:0.00 || angleProxDistL:326.79 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:217.78 y2:42.72 x3:20.00 y3:13.00 getAngle => angle:349.36 = 360 + angle2:188.55 - angle1:199.19 constraintsOK => cachedInvalid:0 angleProxDistR:349.36 < proxDistRAngleMin:0.00 || angleProxDistR:349.36 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:13.00 CartesianToMotorSteps => motorPosX = cachedThetaL:257.63 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:19.19 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:13.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:13.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:14.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 14.00 getTurn => turn:-14261.63 = (x2:-151.34 - x1:-95.00) * (y3:14.00 - y1:0.00) - (y2:117.15 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14261.63 = (x2:-121.59 - x1:-95.00) * (y3:14.00 - y1:0.00) - (y2:-127.25 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:115.68 thetaB:258.20 proxturnA:-14261.63 proxturnB:-14261.63 getTheta => use: 2 x2: -121.59 y2: -127.25 thetaB: 258.20 x1: -151.34 y1: 117.15 thetaA: 115.68 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:14.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 14.00 getTurn => turn:-4871.75 = (x2:194.60 - x1:95.00) * (y3:14.00 - y1:0.00) - (y2:-83.55 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4871.75 = (x2:218.03 - x1:95.00) * (y3:14.00 - y1:0.00) - (y2:41.99 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:320.01 thetaB:18.84 proxturnA:-4871.75 proxturnB:-4871.75 getTheta => use: 2 x2: 218.03 y2: 41.99 thetaB: 18.84 x1: 194.60 y1: -83.55 thetaA: 320.01 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:14.00 cachedX1:20.00 cachedY1:14.00 getInverse => cachedXL:-121.59 cachedYL:-127.25 cachedXR:218.03 cachedYR:41.99 cachedThetaR:18.84 cachedXR:218.03 getInverse => cachedYR:41.99 cachedThetaL:258.20 cachedXL:-121.59 cachedYL:-127.25 getInverse => cachedInvalid:0 x_0:20.00 y_0:14.00 xL:-121.59 yL:-127.25 thetaL:258.20 xR:218.03 yR:41.99 thetaR:18.84 x1:20.00 y1:14.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:258.20>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:258.20 < actuatorAngleLMin:0.00 || thetaL:258.20 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:18.84>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:18.84 < actuatorAngleRMin:0.00 || thetaR:18.84 > actuatorAngleRMax:270.00 return false getAngle => x1:-121.59 y1:-127.25 x2:20.00 y2:14.00 x3:218.03 y3:41.99 getAngle => angle:143.11 = 360 + angle2:8.05 - angle1:224.93 constraintsOK => achedInvalid:0 headAngle:143.11 < headAngleMin:0.00 || headAngle:143.11 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-121.59 y2:-127.25 x3:20.00 y3:14.00 getAngle => angle:326.73 = 360 + angle2:44.93 - angle1:78.20 constraintsOK => cachedInvalid:0 angleProxDistL:326.73 < proxDistLAngleMin:0.00 || angleProxDistL:326.73 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:218.03 y2:41.99 x3:20.00 y3:14.00 getAngle => angle:349.20 = 360 + angle2:188.05 - angle1:198.84 constraintsOK => cachedInvalid:0 angleProxDistR:349.20 < proxDistRAngleMin:0.00 || angleProxDistR:349.20 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:14.00 CartesianToMotorSteps => motorPosX = cachedThetaL:258.20 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:18.84 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:14.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:14.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:15.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 15.00 getTurn => turn:-14283.71 = (x2:-152.18 - x1:-95.00) * (y3:15.00 - y1:0.00) - (y2:116.75 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14283.71 = (x2:-120.32 - x1:-95.00) * (y3:15.00 - y1:0.00) - (y2:-127.51 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:116.10 thetaB:258.77 proxturnA:-14283.71 proxturnB:-14283.71 getTheta => use: 2 x2: -120.32 y2: -127.51 thetaB: 258.77 x1: -152.18 y1: 116.75 thetaA: 116.10 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:15.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 15.00 getTurn => turn:-4947.16 = (x2:192.89 - x1:95.00) * (y3:15.00 - y1:0.00) - (y2:-85.54 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:4947.16 = (x2:218.26 - x1:95.00) * (y3:15.00 - y1:0.00) - (y2:41.31 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:318.85 thetaB:18.53 proxturnA:-4947.16 proxturnB:-4947.16 getTheta => use: 2 x2: 218.26 y2: 41.31 thetaB: 18.53 x1: 192.89 y1: -85.54 thetaA: 318.85 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:15.00 cachedX1:20.00 cachedY1:15.00 getInverse => cachedXL:-120.32 cachedYL:-127.51 cachedXR:218.26 cachedYR:41.31 cachedThetaR:18.53 cachedXR:218.26 getInverse => cachedYR:41.31 cachedThetaL:258.77 cachedXL:-120.32 cachedYL:-127.51 getInverse => cachedInvalid:0 x_0:20.00 y_0:15.00 xL:-120.32 yL:-127.51 thetaL:258.77 xR:218.26 yR:41.31 thetaR:18.53 x1:20.00 y1:15.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:258.77>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:258.77 < actuatorAngleLMin:0.00 || thetaL:258.77 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:18.53>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:18.53 < actuatorAngleRMin:0.00 || thetaR:18.53 > actuatorAngleRMax:270.00 return false getAngle => x1:-120.32 y1:-127.51 x2:20.00 y2:15.00 x3:218.26 y3:41.31 getAngle => angle:142.12 = 360 + angle2:7.56 - angle1:225.44 constraintsOK => achedInvalid:0 headAngle:142.12 < headAngleMin:0.00 || headAngle:142.12 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-120.32 y2:-127.51 x3:20.00 y3:15.00 getAngle => angle:326.68 = 360 + angle2:45.44 - angle1:78.77 constraintsOK => cachedInvalid:0 angleProxDistL:326.68 < proxDistLAngleMin:0.00 || angleProxDistL:326.68 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:218.26 y2:41.31 x3:20.00 y3:15.00 getAngle => angle:349.03 = 360 + angle2:187.56 - angle1:198.53 constraintsOK => cachedInvalid:0 angleProxDistR:349.03 < proxDistRAngleMin:0.00 || angleProxDistR:349.03 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:15.00 CartesianToMotorSteps => motorPosX = cachedThetaL:258.77 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:18.53 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:15.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:15.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:16.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 16.00 getTurn => turn:-14307.26 = (x2:-153.01 - x1:-95.00) * (y3:16.00 - y1:0.00) - (y2:116.34 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14307.26 = (x2:-119.05 - x1:-95.00) * (y3:16.00 - y1:0.00) - (y2:-127.76 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:116.50 thetaB:259.34 proxturnA:-14307.26 proxturnB:-14307.26 getTheta => use: 2 x2: -119.05 y2: -127.76 thetaB: 259.34 x1: -153.01 y1: 116.34 thetaA: 116.50 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:16.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 16.00 getTurn => turn:-5026.47 = (x2:191.12 - x1:95.00) * (y3:16.00 - y1:0.00) - (y2:-87.53 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5026.47 = (x2:218.47 - x1:95.00) * (y3:16.00 - y1:0.00) - (y2:40.68 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:317.68 thetaB:18.24 proxturnA:-5026.47 proxturnB:-5026.47 getTheta => use: 2 x2: 218.47 y2: 40.68 thetaB: 18.24 x1: 191.12 y1: -87.53 thetaA: 317.68 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:16.00 cachedX1:20.00 cachedY1:16.00 getInverse => cachedXL:-119.05 cachedYL:-127.76 cachedXR:218.47 cachedYR:40.68 cachedThetaR:18.24 cachedXR:218.47 getInverse => cachedYR:40.68 cachedThetaL:259.34 cachedXL:-119.05 cachedYL:-127.76 getInverse => cachedInvalid:0 x_0:20.00 y_0:16.00 xL:-119.05 yL:-127.76 thetaL:259.34 xR:218.47 yR:40.68 thetaR:18.24 x1:20.00 y1:16.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:259.34>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:259.34 < actuatorAngleLMin:0.00 || thetaL:259.34 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:18.24>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:18.24 < actuatorAngleRMin:0.00 || thetaR:18.24 > actuatorAngleRMax:270.00 return false getAngle => x1:-119.05 y1:-127.76 x2:20.00 y2:16.00 x3:218.47 y3:40.68 getAngle => angle:141.13 = 360 + angle2:7.09 - angle1:225.95 constraintsOK => achedInvalid:0 headAngle:141.13 < headAngleMin:0.00 || headAngle:141.13 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-119.05 y2:-127.76 x3:20.00 y3:16.00 getAngle => angle:326.61 = 360 + angle2:45.95 - angle1:79.34 constraintsOK => cachedInvalid:0 angleProxDistL:326.61 < proxDistLAngleMin:0.00 || angleProxDistL:326.61 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:218.47 y2:40.68 x3:20.00 y3:16.00 getAngle => angle:348.85 = 360 + angle2:187.09 - angle1:198.24 constraintsOK => cachedInvalid:0 angleProxDistR:348.85 < proxDistRAngleMin:0.00 || angleProxDistR:348.85 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:16.00 CartesianToMotorSteps => motorPosX = cachedThetaL:259.34 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:18.24 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:16.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:16.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:17.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 17.00 getTurn => turn:-14332.26 = (x2:-153.82 - x1:-95.00) * (y3:17.00 - y1:0.00) - (y2:115.93 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14332.26 = (x2:-117.76 - x1:-95.00) * (y3:17.00 - y1:0.00) - (y2:-127.99 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:116.90 thetaB:259.92 proxturnA:-14332.26 proxturnB:-14332.26 getTheta => use: 2 x2: -117.76 y2: -127.99 thetaB: 259.92 x1: -153.82 y1: 115.93 thetaA: 116.90 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:17.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 17.00 getTurn => turn:-5109.49 = (x2:189.29 - x1:95.00) * (y3:17.00 - y1:0.00) - (y2:-89.50 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5109.49 = (x2:218.66 - x1:95.00) * (y3:17.00 - y1:0.00) - (y2:40.10 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:316.49 thetaB:17.96 proxturnA:-5109.49 proxturnB:-5109.49 getTheta => use: 2 x2: 218.66 y2: 40.10 thetaB: 17.96 x1: 189.29 y1: -89.50 thetaA: 316.49 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:17.00 cachedX1:20.00 cachedY1:17.00 getInverse => cachedXL:-117.76 cachedYL:-127.99 cachedXR:218.66 cachedYR:40.10 cachedThetaR:17.96 cachedXR:218.66 getInverse => cachedYR:40.10 cachedThetaL:259.92 cachedXL:-117.76 cachedYL:-127.99 getInverse => cachedInvalid:0 x_0:20.00 y_0:17.00 xL:-117.76 yL:-127.99 thetaL:259.92 xR:218.66 yR:40.10 thetaR:17.96 x1:20.00 y1:17.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:259.92>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:259.92 < actuatorAngleLMin:0.00 || thetaL:259.92 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:17.96>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:17.96 < actuatorAngleRMin:0.00 || thetaR:17.96 > actuatorAngleRMax:270.00 return false getAngle => x1:-117.76 y1:-127.99 x2:20.00 y2:17.00 x3:218.66 y3:40.10 getAngle => angle:140.17 = 360 + angle2:6.63 - angle1:226.47 constraintsOK => achedInvalid:0 headAngle:140.17 < headAngleMin:0.00 || headAngle:140.17 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-117.76 y2:-127.99 x3:20.00 y3:17.00 getAngle => angle:326.55 = 360 + angle2:46.47 - angle1:79.92 constraintsOK => cachedInvalid:0 angleProxDistL:326.55 < proxDistLAngleMin:0.00 || angleProxDistL:326.55 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:218.66 y2:40.10 x3:20.00 y3:17.00 getAngle => angle:348.67 = 360 + angle2:186.63 - angle1:197.96 constraintsOK => cachedInvalid:0 angleProxDistR:348.67 < proxDistRAngleMin:0.00 || angleProxDistR:348.67 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:17.00 CartesianToMotorSteps => motorPosX = cachedThetaL:259.92 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:17.96 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:17.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:17.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:18.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 18.00 getTurn => turn:-14358.72 = (x2:-154.61 - x1:-95.00) * (y3:18.00 - y1:0.00) - (y2:115.53 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14358.72 = (x2:-116.46 - x1:-95.00) * (y3:18.00 - y1:0.00) - (y2:-128.22 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:117.29 thetaB:260.50 proxturnA:-14358.72 proxturnB:-14358.72 getTheta => use: 2 x2: -116.46 y2: -128.22 thetaB: 260.50 x1: -154.61 y1: 115.53 thetaA: 117.29 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:18.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 18.00 getTurn => turn:-5196.05 = (x2:187.39 - x1:95.00) * (y3:18.00 - y1:0.00) - (y2:-91.45 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5196.05 = (x2:218.83 - x1:95.00) * (y3:18.00 - y1:0.00) - (y2:39.56 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:315.29 thetaB:17.72 proxturnA:-5196.05 proxturnB:-5196.05 getTheta => use: 2 x2: 218.83 y2: 39.56 thetaB: 17.72 x1: 187.39 y1: -91.45 thetaA: 315.29 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:18.00 cachedX1:20.00 cachedY1:18.00 getInverse => cachedXL:-116.46 cachedYL:-128.22 cachedXR:218.83 cachedYR:39.56 cachedThetaR:17.72 cachedXR:218.83 getInverse => cachedYR:39.56 cachedThetaL:260.50 cachedXL:-116.46 cachedYL:-128.22 getInverse => cachedInvalid:0 x_0:20.00 y_0:18.00 xL:-116.46 yL:-128.22 thetaL:260.50 xR:218.83 yR:39.56 thetaR:17.72 x1:20.00 y1:18.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:260.50>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:260.50 < actuatorAngleLMin:0.00 || thetaL:260.50 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:17.72>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:17.72 < actuatorAngleRMin:0.00 || thetaR:17.72 > actuatorAngleRMax:270.00 return false getAngle => x1:-116.46 y1:-128.22 x2:20.00 y2:18.00 x3:218.83 y3:39.56 getAngle => angle:139.21 = 360 + angle2:6.19 - angle1:226.98 constraintsOK => achedInvalid:0 headAngle:139.21 < headAngleMin:0.00 || headAngle:139.21 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-116.46 y2:-128.22 x3:20.00 y3:18.00 getAngle => angle:326.48 = 360 + angle2:46.98 - angle1:80.50 constraintsOK => cachedInvalid:0 angleProxDistL:326.48 < proxDistLAngleMin:0.00 || angleProxDistL:326.48 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:218.83 y2:39.56 x3:20.00 y3:18.00 getAngle => angle:348.47 = 360 + angle2:186.19 - angle1:197.72 constraintsOK => cachedInvalid:0 angleProxDistR:348.47 < proxDistRAngleMin:0.00 || angleProxDistR:348.47 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:18.00 CartesianToMotorSteps => motorPosX = cachedThetaL:260.50 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:17.72 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:18.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:18.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:19.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 19.00 getTurn => turn:-14386.60 = (x2:-155.39 - x1:-95.00) * (y3:19.00 - y1:0.00) - (y2:115.12 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14386.60 = (x2:-115.15 - x1:-95.00) * (y3:19.00 - y1:0.00) - (y2:-128.43 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:117.68 thetaB:261.08 proxturnA:-14386.60 proxturnB:-14386.60 getTheta => use: 2 x2: -115.15 y2: -128.43 thetaB: 261.08 x1: -155.39 y1: 115.12 thetaA: 117.68 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:19.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 19.00 getTurn => turn:-5285.94 = (x2:185.43 - x1:95.00) * (y3:19.00 - y1:0.00) - (y2:-93.39 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5285.94 = (x2:218.99 - x1:95.00) * (y3:19.00 - y1:0.00) - (y2:39.07 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:314.08 thetaB:17.49 proxturnA:-5285.94 proxturnB:-5285.94 getTheta => use: 2 x2: 218.99 y2: 39.07 thetaB: 17.49 x1: 185.43 y1: -93.39 thetaA: 314.08 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:19.00 cachedX1:20.00 cachedY1:19.00 getInverse => cachedXL:-115.15 cachedYL:-128.43 cachedXR:218.99 cachedYR:39.07 cachedThetaR:17.49 cachedXR:218.99 getInverse => cachedYR:39.07 cachedThetaL:261.08 cachedXL:-115.15 cachedYL:-128.43 getInverse => cachedInvalid:0 x_0:20.00 y_0:19.00 xL:-115.15 yL:-128.43 thetaL:261.08 xR:218.99 yR:39.07 thetaR:17.49 x1:20.00 y1:19.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:261.08>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:261.08 < actuatorAngleLMin:0.00 || thetaL:261.08 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:17.49>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:17.49 < actuatorAngleRMin:0.00 || thetaR:17.49 > actuatorAngleRMax:270.00 return false getAngle => x1:-115.15 y1:-128.43 x2:20.00 y2:19.00 x3:218.99 y3:39.07 getAngle => angle:138.27 = 360 + angle2:5.76 - angle1:227.49 constraintsOK => achedInvalid:0 headAngle:138.27 < headAngleMin:0.00 || headAngle:138.27 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-115.15 y2:-128.43 x3:20.00 y3:19.00 getAngle => angle:326.40 = 360 + angle2:47.49 - angle1:81.08 constraintsOK => cachedInvalid:0 angleProxDistL:326.40 < proxDistLAngleMin:0.00 || angleProxDistL:326.40 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:218.99 y2:39.07 x3:20.00 y3:19.00 getAngle => angle:348.27 = 360 + angle2:185.76 - angle1:197.49 constraintsOK => cachedInvalid:0 angleProxDistR:348.27 < proxDistRAngleMin:0.00 || angleProxDistR:348.27 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:19.00 CartesianToMotorSteps => motorPosX = cachedThetaL:261.08 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:17.49 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:19.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:20.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 20.00 getTurn => turn:-14415.91 = (x2:-156.15 - x1:-95.00) * (y3:20.00 - y1:0.00) - (y2:114.72 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14415.91 = (x2:-113.83 - x1:-95.00) * (y3:20.00 - y1:0.00) - (y2:-128.63 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:118.06 thetaB:261.67 proxturnA:-14415.91 proxturnB:-14415.91 getTheta => use: 2 x2: -113.83 y2: -128.63 thetaB: 261.67 x1: -156.15 y1: 114.72 thetaA: 118.06 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:20.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 20.00 getTurn => turn:-5379.00 = (x2:183.42 - x1:95.00) * (y3:20.00 - y1:0.00) - (y2:-95.30 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5379.00 = (x2:219.13 - x1:95.00) * (y3:20.00 - y1:0.00) - (y2:38.62 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:312.86 thetaB:17.28 proxturnA:-5379.00 proxturnB:-5379.00 getTheta => use: 2 x2: 219.13 y2: 38.62 thetaB: 17.28 x1: 183.42 y1: -95.30 thetaA: 312.86 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:20.00 cachedX1:20.00 cachedY1:20.00 getInverse => cachedXL:-113.83 cachedYL:-128.63 cachedXR:219.13 cachedYR:38.62 cachedThetaR:17.28 cachedXR:219.13 getInverse => cachedYR:38.62 cachedThetaL:261.67 cachedXL:-113.83 cachedYL:-128.63 getInverse => cachedInvalid:0 x_0:20.00 y_0:20.00 xL:-113.83 yL:-128.63 thetaL:261.67 xR:219.13 yR:38.62 thetaR:17.28 x1:20.00 y1:20.00 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:20.00 CartesianToMotorSteps => motorPosX = cachedThetaL:261.67 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:17.28 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:20.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:20.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:30.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 30.00 getTurn => turn:-14784.27 = (x2:-162.94 - x1:-95.00) * (y3:30.00 - y1:0.00) - (y2:110.84 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14784.27 = (x2:-100.14 - x1:-95.00) * (y3:30.00 - y1:0.00) - (y2:-129.90 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:121.51 thetaB:267.74 proxturnA:-14784.27 proxturnB:-14784.27 getTheta => use: 2 x2: -100.14 y2: -129.90 thetaB: 267.74 x1: -162.94 y1: 110.84 thetaA: 121.51 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:30.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 30.00 getTurn => turn:-6449.02 = (x2:160.61 - x1:95.00) * (y3:30.00 - y1:0.00) - (y2:-112.23 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:6449.02 = (x2:219.91 - x1:95.00) * (y3:30.00 - y1:0.00) - (y2:36.02 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:300.31 thetaB:16.09 proxturnA:-6449.02 proxturnB:-6449.02 getTheta => use: 2 x2: 219.91 y2: 36.02 thetaB: 16.09 x1: 160.61 y1: -112.23 thetaA: 300.31 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:30.00 cachedX1:20.00 cachedY1:30.00 getInverse => cachedXL:-100.14 cachedYL:-129.90 cachedXR:219.91 cachedYR:36.02 cachedThetaR:16.09 cachedXR:219.91 getInverse => cachedYR:36.02 cachedThetaL:267.74 cachedXL:-100.14 cachedYL:-129.90 getInverse => cachedInvalid:0 x_0:20.00 y_0:30.00 xL:-100.14 yL:-129.90 thetaL:267.74 xR:219.91 yR:36.02 thetaR:16.09 x1:20.00 y1:30.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:267.74>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:267.74 < actuatorAngleLMin:0.00 || thetaL:267.74 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.09>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.09 < actuatorAngleRMin:0.00 || thetaR:16.09 > actuatorAngleRMax:270.00 return false getAngle => x1:-100.14 y1:-129.90 x2:20.00 y2:30.00 x3:219.91 y3:36.02 getAngle => angle:128.64 = 360 + angle2:1.73 - angle1:233.08 constraintsOK => achedInvalid:0 headAngle:128.64 < headAngleMin:0.00 || headAngle:128.64 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-100.14 y2:-129.90 x3:20.00 y3:30.00 getAngle => angle:325.35 = 360 + angle2:53.08 - angle1:87.74 constraintsOK => cachedInvalid:0 angleProxDistL:325.35 < proxDistLAngleMin:0.00 || angleProxDistL:325.35 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.91 y2:36.02 x3:20.00 y3:30.00 getAngle => angle:345.64 = 360 + angle2:181.73 - angle1:196.09 constraintsOK => cachedInvalid:0 angleProxDistR:345.64 < proxDistRAngleMin:0.00 || angleProxDistR:345.64 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:30.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:21.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 21.00 getTurn => turn:-14446.64 = (x2:-156.89 - x1:-95.00) * (y3:21.00 - y1:0.00) - (y2:114.32 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14446.64 = (x2:-112.49 - x1:-95.00) * (y3:21.00 - y1:0.00) - (y2:-128.82 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:118.43 thetaB:262.27 proxturnA:-14446.64 proxturnB:-14446.64 getTheta => use: 2 x2: -112.49 y2: -128.82 thetaB: 262.27 x1: -156.89 y1: 114.32 thetaA: 118.43 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:21.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 21.00 getTurn => turn:-5475.04 = (x2:181.35 - x1:95.00) * (y3:21.00 - y1:0.00) - (y2:-97.18 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5475.04 = (x2:219.26 - x1:95.00) * (y3:21.00 - y1:0.00) - (y2:38.21 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:311.62 thetaB:17.09 proxturnA:-5475.04 proxturnB:-5475.04 getTheta => use: 2 x2: 219.26 y2: 38.21 thetaB: 17.09 x1: 181.35 y1: -97.18 thetaA: 311.62 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:21.00 cachedX1:20.00 cachedY1:21.00 getInverse => cachedXL:-112.49 cachedYL:-128.82 cachedXR:219.26 cachedYR:38.21 cachedThetaR:17.09 cachedXR:219.26 getInverse => cachedYR:38.21 cachedThetaL:262.27 cachedXL:-112.49 cachedYL:-128.82 getInverse => cachedInvalid:0 x_0:20.00 y_0:21.00 xL:-112.49 yL:-128.82 thetaL:262.27 xR:219.26 yR:38.21 thetaR:17.09 x1:20.00 y1:21.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:262.27>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:262.27 < actuatorAngleLMin:0.00 || thetaL:262.27 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:17.09>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:17.09 < actuatorAngleRMin:0.00 || thetaR:17.09 > actuatorAngleRMax:270.00 return false getAngle => x1:-112.49 y1:-128.82 x2:20.00 y2:21.00 x3:219.26 y3:38.21 getAngle => angle:136.42 = 360 + angle2:4.94 - angle1:228.51 constraintsOK => achedInvalid:0 headAngle:136.42 < headAngleMin:0.00 || headAngle:136.42 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-112.49 y2:-128.82 x3:20.00 y3:21.00 getAngle => angle:326.25 = 360 + angle2:48.51 - angle1:82.27 constraintsOK => cachedInvalid:0 angleProxDistL:326.25 < proxDistLAngleMin:0.00 || angleProxDistL:326.25 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.26 y2:38.21 x3:20.00 y3:21.00 getAngle => angle:347.84 = 360 + angle2:184.94 - angle1:197.09 constraintsOK => cachedInvalid:0 angleProxDistR:347.84 < proxDistRAngleMin:0.00 || angleProxDistR:347.84 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:21.00 CartesianToMotorSteps => motorPosX = cachedThetaL:262.27 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:17.09 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:21.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:21.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:22.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 22.00 getTurn => turn:-14478.76 = (x2:-157.62 - x1:-95.00) * (y3:22.00 - y1:0.00) - (y2:113.92 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14478.76 = (x2:-111.15 - x1:-95.00) * (y3:22.00 - y1:0.00) - (y2:-128.99 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:118.80 thetaB:262.86 proxturnA:-14478.76 proxturnB:-14478.76 getTheta => use: 2 x2: -111.15 y2: -128.99 thetaB: 262.86 x1: -157.62 y1: 113.92 thetaA: 118.80 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:22.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 22.00 getTurn => turn:-5573.92 = (x2:179.23 - x1:95.00) * (y3:22.00 - y1:0.00) - (y2:-99.03 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5573.92 = (x2:219.37 - x1:95.00) * (y3:22.00 - y1:0.00) - (y2:37.84 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:310.38 thetaB:16.92 proxturnA:-5573.92 proxturnB:-5573.92 getTheta => use: 2 x2: 219.37 y2: 37.84 thetaB: 16.92 x1: 179.23 y1: -99.03 thetaA: 310.38 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:22.00 cachedX1:20.00 cachedY1:22.00 getInverse => cachedXL:-111.15 cachedYL:-128.99 cachedXR:219.37 cachedYR:37.84 cachedThetaR:16.92 cachedXR:219.37 getInverse => cachedYR:37.84 cachedThetaL:262.86 cachedXL:-111.15 cachedYL:-128.99 getInverse => cachedInvalid:0 x_0:20.00 y_0:22.00 xL:-111.15 yL:-128.99 thetaL:262.86 xR:219.37 yR:37.84 thetaR:16.92 x1:20.00 y1:22.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:262.86>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:262.86 < actuatorAngleLMin:0.00 || thetaL:262.86 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.92>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.92 < actuatorAngleRMin:0.00 || thetaR:16.92 > actuatorAngleRMax:270.00 return false getAngle => x1:-111.15 y1:-128.99 x2:20.00 y2:22.00 x3:219.37 y3:37.84 getAngle => angle:135.52 = 360 + angle2:4.54 - angle1:229.02 constraintsOK => achedInvalid:0 headAngle:135.52 < headAngleMin:0.00 || headAngle:135.52 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-111.15 y2:-128.99 x3:20.00 y3:22.00 getAngle => angle:326.16 = 360 + angle2:49.02 - angle1:82.86 constraintsOK => cachedInvalid:0 angleProxDistL:326.16 < proxDistLAngleMin:0.00 || angleProxDistL:326.16 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.37 y2:37.84 x3:20.00 y3:22.00 getAngle => angle:347.62 = 360 + angle2:184.54 - angle1:196.92 constraintsOK => cachedInvalid:0 angleProxDistR:347.62 < proxDistRAngleMin:0.00 || angleProxDistR:347.62 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:22.00 CartesianToMotorSteps => motorPosX = cachedThetaL:262.86 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.92 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:22.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:22.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:23.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 23.00 getTurn => turn:-14512.26 = (x2:-158.34 - x1:-95.00) * (y3:23.00 - y1:0.00) - (y2:113.53 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14512.26 = (x2:-109.80 - x1:-95.00) * (y3:23.00 - y1:0.00) - (y2:-129.15 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:119.16 thetaB:263.46 proxturnA:-14512.26 proxturnB:-14512.26 getTheta => use: 2 x2: -109.80 y2: -129.15 thetaB: 263.46 x1: -158.34 y1: 113.53 thetaA: 119.16 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:23.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 23.00 getTurn => turn:-5675.46 = (x2:177.05 - x1:95.00) * (y3:23.00 - y1:0.00) - (y2:-100.84 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5675.46 = (x2:219.47 - x1:95.00) * (y3:23.00 - y1:0.00) - (y2:37.50 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:309.14 thetaB:16.77 proxturnA:-5675.46 proxturnB:-5675.46 getTheta => use: 2 x2: 219.47 y2: 37.50 thetaB: 16.77 x1: 177.05 y1: -100.84 thetaA: 309.14 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:23.00 cachedX1:20.00 cachedY1:23.00 getInverse => cachedXL:-109.80 cachedYL:-129.15 cachedXR:219.47 cachedYR:37.50 cachedThetaR:16.77 cachedXR:219.47 getInverse => cachedYR:37.50 cachedThetaL:263.46 cachedXL:-109.80 cachedYL:-129.15 getInverse => cachedInvalid:0 x_0:20.00 y_0:23.00 xL:-109.80 yL:-129.15 thetaL:263.46 xR:219.47 yR:37.50 thetaR:16.77 x1:20.00 y1:23.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:263.46>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:263.46 < actuatorAngleLMin:0.00 || thetaL:263.46 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.77>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.77 < actuatorAngleRMin:0.00 || thetaR:16.77 > actuatorAngleRMax:270.00 return false getAngle => x1:-109.80 y1:-129.15 x2:20.00 y2:23.00 x3:219.47 y3:37.50 getAngle => angle:134.63 = 360 + angle2:4.16 - angle1:229.53 constraintsOK => achedInvalid:0 headAngle:134.63 < headAngleMin:0.00 || headAngle:134.63 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-109.80 y2:-129.15 x3:20.00 y3:23.00 getAngle => angle:326.07 = 360 + angle2:49.53 - angle1:83.46 constraintsOK => cachedInvalid:0 angleProxDistL:326.07 < proxDistLAngleMin:0.00 || angleProxDistL:326.07 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.47 y2:37.50 x3:20.00 y3:23.00 getAngle => angle:347.39 = 360 + angle2:184.16 - angle1:196.77 constraintsOK => cachedInvalid:0 angleProxDistR:347.39 < proxDistRAngleMin:0.00 || angleProxDistR:347.39 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:23.00 CartesianToMotorSteps => motorPosX = cachedThetaL:263.46 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.77 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:23.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:23.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:24.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 24.00 getTurn => turn:-14547.13 = (x2:-159.04 - x1:-95.00) * (y3:24.00 - y1:0.00) - (y2:113.13 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14547.13 = (x2:-108.45 - x1:-95.00) * (y3:24.00 - y1:0.00) - (y2:-129.30 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:119.51 thetaB:264.06 proxturnA:-14547.13 proxturnB:-14547.13 getTheta => use: 2 x2: -108.45 y2: -129.30 thetaB: 264.06 x1: -159.04 y1: 113.13 thetaA: 119.51 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:24.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 24.00 getTurn => turn:-5779.52 = (x2:174.83 - x1:95.00) * (y3:24.00 - y1:0.00) - (y2:-102.60 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5779.52 = (x2:219.56 - x1:95.00) * (y3:24.00 - y1:0.00) - (y2:37.20 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:307.88 thetaB:16.63 proxturnA:-5779.52 proxturnB:-5779.52 getTheta => use: 2 x2: 219.56 y2: 37.20 thetaB: 16.63 x1: 174.83 y1: -102.60 thetaA: 307.88 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:24.00 cachedX1:20.00 cachedY1:24.00 getInverse => cachedXL:-108.45 cachedYL:-129.30 cachedXR:219.56 cachedYR:37.20 cachedThetaR:16.63 cachedXR:219.56 getInverse => cachedYR:37.20 cachedThetaL:264.06 cachedXL:-108.45 cachedYL:-129.30 getInverse => cachedInvalid:0 x_0:20.00 y_0:24.00 xL:-108.45 yL:-129.30 thetaL:264.06 xR:219.56 yR:37.20 thetaR:16.63 x1:20.00 y1:24.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:264.06>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:264.06 < actuatorAngleLMin:0.00 || thetaL:264.06 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.63>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.63 < actuatorAngleRMin:0.00 || thetaR:16.63 > actuatorAngleRMax:270.00 return false getAngle => x1:-108.45 y1:-129.30 x2:20.00 y2:24.00 x3:219.56 y3:37.20 getAngle => angle:133.74 = 360 + angle2:3.78 - angle1:230.04 constraintsOK => achedInvalid:0 headAngle:133.74 < headAngleMin:0.00 || headAngle:133.74 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-108.45 y2:-129.30 x3:20.00 y3:24.00 getAngle => angle:325.98 = 360 + angle2:50.04 - angle1:84.06 constraintsOK => cachedInvalid:0 angleProxDistL:325.98 < proxDistLAngleMin:0.00 || angleProxDistL:325.98 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.56 y2:37.20 x3:20.00 y3:24.00 getAngle => angle:347.16 = 360 + angle2:183.78 - angle1:196.63 constraintsOK => cachedInvalid:0 angleProxDistR:347.16 < proxDistRAngleMin:0.00 || angleProxDistR:347.16 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:24.00 CartesianToMotorSteps => motorPosX = cachedThetaL:264.06 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.63 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:24.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:24.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:25.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 25.00 getTurn => turn:-14583.36 = (x2:-159.73 - x1:-95.00) * (y3:25.00 - y1:0.00) - (y2:112.74 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14583.36 = (x2:-107.08 - x1:-95.00) * (y3:25.00 - y1:0.00) - (y2:-129.44 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:119.86 thetaB:264.67 proxturnA:-14583.36 proxturnB:-14583.36 getTheta => use: 2 x2: -107.08 y2: -129.44 thetaB: 264.67 x1: -159.73 y1: 112.74 thetaA: 119.86 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:25.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 25.00 getTurn => turn:-5885.95 = (x2:172.56 - x1:95.00) * (y3:25.00 - y1:0.00) - (y2:-104.33 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5885.95 = (x2:219.64 - x1:95.00) * (y3:25.00 - y1:0.00) - (y2:36.93 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:306.63 thetaB:16.50 proxturnA:-5885.95 proxturnB:-5885.95 getTheta => use: 2 x2: 219.64 y2: 36.93 thetaB: 16.50 x1: 172.56 y1: -104.33 thetaA: 306.63 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:25.00 cachedX1:20.00 cachedY1:25.00 getInverse => cachedXL:-107.08 cachedYL:-129.44 cachedXR:219.64 cachedYR:36.93 cachedThetaR:16.50 cachedXR:219.64 getInverse => cachedYR:36.93 cachedThetaL:264.67 cachedXL:-107.08 cachedYL:-129.44 getInverse => cachedInvalid:0 x_0:20.00 y_0:25.00 xL:-107.08 yL:-129.44 thetaL:264.67 xR:219.64 yR:36.93 thetaR:16.50 x1:20.00 y1:25.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:264.67>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:264.67 < actuatorAngleLMin:0.00 || thetaL:264.67 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.50>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.50 < actuatorAngleRMin:0.00 || thetaR:16.50 > actuatorAngleRMax:270.00 return false getAngle => x1:-107.08 y1:-129.44 x2:20.00 y2:25.00 x3:219.64 y3:36.93 getAngle => angle:132.87 = 360 + angle2:3.42 - angle1:230.55 constraintsOK => achedInvalid:0 headAngle:132.87 < headAngleMin:0.00 || headAngle:132.87 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-107.08 y2:-129.44 x3:20.00 y3:25.00 getAngle => angle:325.88 = 360 + angle2:50.55 - angle1:84.67 constraintsOK => cachedInvalid:0 angleProxDistL:325.88 < proxDistLAngleMin:0.00 || angleProxDistL:325.88 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.64 y2:36.93 x3:20.00 y3:25.00 getAngle => angle:346.92 = 360 + angle2:183.42 - angle1:196.50 constraintsOK => cachedInvalid:0 angleProxDistR:346.92 < proxDistRAngleMin:0.00 || angleProxDistR:346.92 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:25.00 CartesianToMotorSteps => motorPosX = cachedThetaL:264.67 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.50 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:25.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:25.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:26.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 26.00 getTurn => turn:-14620.93 = (x2:-160.40 - x1:-95.00) * (y3:26.00 - y1:0.00) - (y2:112.35 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14620.93 = (x2:-105.70 - x1:-95.00) * (y3:26.00 - y1:0.00) - (y2:-129.56 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:120.20 thetaB:265.28 proxturnA:-14620.93 proxturnB:-14620.93 getTheta => use: 2 x2: -105.70 y2: -129.56 thetaB: 265.28 x1: -160.40 y1: 112.35 thetaA: 120.20 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:26.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 26.00 getTurn => turn:-5994.61 = (x2:170.24 - x1:95.00) * (y3:26.00 - y1:0.00) - (y2:-106.01 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:5994.61 = (x2:219.71 - x1:95.00) * (y3:26.00 - y1:0.00) - (y2:36.69 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:305.37 thetaB:16.40 proxturnA:-5994.61 proxturnB:-5994.61 getTheta => use: 2 x2: 219.71 y2: 36.69 thetaB: 16.40 x1: 170.24 y1: -106.01 thetaA: 305.37 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:26.00 cachedX1:20.00 cachedY1:26.00 getInverse => cachedXL:-105.70 cachedYL:-129.56 cachedXR:219.71 cachedYR:36.69 cachedThetaR:16.40 cachedXR:219.71 getInverse => cachedYR:36.69 cachedThetaL:265.28 cachedXL:-105.70 cachedYL:-129.56 getInverse => cachedInvalid:0 x_0:20.00 y_0:26.00 xL:-105.70 yL:-129.56 thetaL:265.28 xR:219.71 yR:36.69 thetaR:16.40 x1:20.00 y1:26.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:265.28>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:265.28 < actuatorAngleLMin:0.00 || thetaL:265.28 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.40>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.40 < actuatorAngleRMin:0.00 || thetaR:16.40 > actuatorAngleRMax:270.00 return false getAngle => x1:-105.70 y1:-129.56 x2:20.00 y2:26.00 x3:219.71 y3:36.69 getAngle => angle:132.01 = 360 + angle2:3.07 - angle1:231.06 constraintsOK => achedInvalid:0 headAngle:132.01 < headAngleMin:0.00 || headAngle:132.01 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-105.70 y2:-129.56 x3:20.00 y3:26.00 getAngle => angle:325.78 = 360 + angle2:51.06 - angle1:85.28 constraintsOK => cachedInvalid:0 angleProxDistL:325.78 < proxDistLAngleMin:0.00 || angleProxDistL:325.78 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.71 y2:36.69 x3:20.00 y3:26.00 getAngle => angle:346.67 = 360 + angle2:183.07 - angle1:196.40 constraintsOK => cachedInvalid:0 angleProxDistR:346.67 < proxDistRAngleMin:0.00 || angleProxDistR:346.67 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:26.00 CartesianToMotorSteps => motorPosX = cachedThetaL:265.28 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.40 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:26.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:26.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:27.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 27.00 getTurn => turn:-14659.82 = (x2:-161.05 - x1:-95.00) * (y3:27.00 - y1:0.00) - (y2:111.97 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14659.82 = (x2:-104.32 - x1:-95.00) * (y3:27.00 - y1:0.00) - (y2:-129.67 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:120.54 thetaB:265.89 proxturnA:-14659.82 proxturnB:-14659.82 getTheta => use: 2 x2: -104.32 y2: -129.67 thetaB: 265.89 x1: -161.05 y1: 111.97 thetaA: 120.54 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:27.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 27.00 getTurn => turn:-6105.36 = (x2:167.89 - x1:95.00) * (y3:27.00 - y1:0.00) - (y2:-107.64 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:6105.36 = (x2:219.77 - x1:95.00) * (y3:27.00 - y1:0.00) - (y2:36.49 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:304.10 thetaB:16.30 proxturnA:-6105.36 proxturnB:-6105.36 getTheta => use: 2 x2: 219.77 y2: 36.49 thetaB: 16.30 x1: 167.89 y1: -107.64 thetaA: 304.10 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:27.00 cachedX1:20.00 cachedY1:27.00 getInverse => cachedXL:-104.32 cachedYL:-129.67 cachedXR:219.77 cachedYR:36.49 cachedThetaR:16.30 cachedXR:219.77 getInverse => cachedYR:36.49 cachedThetaL:265.89 cachedXL:-104.32 cachedYL:-129.67 getInverse => cachedInvalid:0 x_0:20.00 y_0:27.00 xL:-104.32 yL:-129.67 thetaL:265.89 xR:219.77 yR:36.49 thetaR:16.30 x1:20.00 y1:27.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:265.89>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:265.89 < actuatorAngleLMin:0.00 || thetaL:265.89 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.30>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.30 < actuatorAngleRMin:0.00 || thetaR:16.30 > actuatorAngleRMax:270.00 return false getAngle => x1:-104.32 y1:-129.67 x2:20.00 y2:27.00 x3:219.77 y3:36.49 getAngle => angle:131.15 = 360 + angle2:2.72 - angle1:231.57 constraintsOK => achedInvalid:0 headAngle:131.15 < headAngleMin:0.00 || headAngle:131.15 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-104.32 y2:-129.67 x3:20.00 y3:27.00 getAngle => angle:325.68 = 360 + angle2:51.57 - angle1:85.89 constraintsOK => cachedInvalid:0 angleProxDistL:325.68 < proxDistLAngleMin:0.00 || angleProxDistL:325.68 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.77 y2:36.49 x3:20.00 y3:27.00 getAngle => angle:346.42 = 360 + angle2:182.72 - angle1:196.30 constraintsOK => cachedInvalid:0 angleProxDistR:346.42 < proxDistRAngleMin:0.00 || angleProxDistR:346.42 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:27.00 CartesianToMotorSteps => motorPosX = cachedThetaL:265.89 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.30 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:27.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:27.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:28.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 28.00 getTurn => turn:-14700.02 = (x2:-161.70 - x1:-95.00) * (y3:28.00 - y1:0.00) - (y2:111.59 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14700.02 = (x2:-102.93 - x1:-95.00) * (y3:28.00 - y1:0.00) - (y2:-129.76 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:120.87 thetaB:266.50 proxturnA:-14700.02 proxturnB:-14700.02 getTheta => use: 2 x2: -102.93 y2: -129.76 thetaB: 266.50 x1: -161.70 y1: 111.59 thetaA: 120.87 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:28.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 28.00 getTurn => turn:-6218.10 = (x2:165.50 - x1:95.00) * (y3:28.00 - y1:0.00) - (y2:-109.23 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:6218.10 = (x2:219.83 - x1:95.00) * (y3:28.00 - y1:0.00) - (y2:36.31 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:302.84 thetaB:16.22 proxturnA:-6218.10 proxturnB:-6218.10 getTheta => use: 2 x2: 219.83 y2: 36.31 thetaB: 16.22 x1: 165.50 y1: -109.23 thetaA: 302.84 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:28.00 cachedX1:20.00 cachedY1:28.00 getInverse => cachedXL:-102.93 cachedYL:-129.76 cachedXR:219.83 cachedYR:36.31 cachedThetaR:16.22 cachedXR:219.83 getInverse => cachedYR:36.31 cachedThetaL:266.50 cachedXL:-102.93 cachedYL:-129.76 getInverse => cachedInvalid:0 x_0:20.00 y_0:28.00 xL:-102.93 yL:-129.76 thetaL:266.50 xR:219.83 yR:36.31 thetaR:16.22 x1:20.00 y1:28.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:266.50>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:266.50 < actuatorAngleLMin:0.00 || thetaL:266.50 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.22>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.22 < actuatorAngleRMin:0.00 || thetaR:16.22 > actuatorAngleRMax:270.00 return false getAngle => x1:-102.93 y1:-129.76 x2:20.00 y2:28.00 x3:219.83 y3:36.31 getAngle => angle:130.31 = 360 + angle2:2.38 - angle1:232.07 constraintsOK => achedInvalid:0 headAngle:130.31 < headAngleMin:0.00 || headAngle:130.31 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-102.93 y2:-129.76 x3:20.00 y3:28.00 getAngle => angle:325.57 = 360 + angle2:52.07 - angle1:86.50 constraintsOK => cachedInvalid:0 angleProxDistL:325.57 < proxDistLAngleMin:0.00 || angleProxDistL:325.57 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.83 y2:36.31 x3:20.00 y3:28.00 getAngle => angle:346.16 = 360 + angle2:182.38 - angle1:196.22 constraintsOK => cachedInvalid:0 angleProxDistR:346.16 < proxDistRAngleMin:0.00 || angleProxDistR:346.16 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:28.00 CartesianToMotorSteps => motorPosX = cachedThetaL:266.50 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.22 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:28.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:28.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:29.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 29.00 getTurn => turn:-14741.51 = (x2:-162.32 - x1:-95.00) * (y3:29.00 - y1:0.00) - (y2:111.21 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14741.51 = (x2:-101.54 - x1:-95.00) * (y3:29.00 - y1:0.00) - (y2:-129.84 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:121.19 thetaB:267.12 proxturnA:-14741.51 proxturnB:-14741.51 getTheta => use: 2 x2: -101.54 y2: -129.84 thetaB: 267.12 x1: -162.32 y1: 111.21 thetaA: 121.19 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:29.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 29.00 getTurn => turn:-6332.68 = (x2:163.07 - x1:95.00) * (y3:29.00 - y1:0.00) - (y2:-110.76 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:6332.68 = (x2:219.87 - x1:95.00) * (y3:29.00 - y1:0.00) - (y2:36.15 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:301.57 thetaB:16.15 proxturnA:-6332.68 proxturnB:-6332.68 getTheta => use: 2 x2: 219.87 y2: 36.15 thetaB: 16.15 x1: 163.07 y1: -110.76 thetaA: 301.57 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:29.00 cachedX1:20.00 cachedY1:29.00 getInverse => cachedXL:-101.54 cachedYL:-129.84 cachedXR:219.87 cachedYR:36.15 cachedThetaR:16.15 cachedXR:219.87 getInverse => cachedYR:36.15 cachedThetaL:267.12 cachedXL:-101.54 cachedYL:-129.84 getInverse => cachedInvalid:0 x_0:20.00 y_0:29.00 xL:-101.54 yL:-129.84 thetaL:267.12 xR:219.87 yR:36.15 thetaR:16.15 x1:20.00 y1:29.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:267.12>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:267.12 < actuatorAngleLMin:0.00 || thetaL:267.12 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:0.00<0 && thetaR:16.15>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:16.15 < actuatorAngleRMin:0.00 || thetaR:16.15 > actuatorAngleRMax:270.00 return false getAngle => x1:-101.54 y1:-129.84 x2:20.00 y2:29.00 x3:219.87 y3:36.15 getAngle => angle:129.47 = 360 + angle2:2.05 - angle1:232.58 constraintsOK => achedInvalid:0 headAngle:129.47 < headAngleMin:0.00 || headAngle:129.47 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-101.54 y2:-129.84 x3:20.00 y3:29.00 getAngle => angle:325.46 = 360 + angle2:52.58 - angle1:87.12 constraintsOK => cachedInvalid:0 angleProxDistL:325.46 < proxDistLAngleMin:0.00 || angleProxDistL:325.46 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:219.87 y2:36.15 x3:20.00 y3:29.00 getAngle => angle:345.90 = 360 + angle2:182.05 - angle1:196.15 constraintsOK => cachedInvalid:0 angleProxDistR:345.90 < proxDistRAngleMin:0.00 || angleProxDistR:345.90 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:29.00 CartesianToMotorSteps => motorPosX = cachedThetaL:267.12 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.15 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:29.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:30.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 30.00 getTurn => turn:-14784.27 = (x2:-162.94 - x1:-95.00) * (y3:30.00 - y1:0.00) - (y2:110.84 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:14784.27 = (x2:-100.14 - x1:-95.00) * (y3:30.00 - y1:0.00) - (y2:-129.90 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:121.51 thetaB:267.74 proxturnA:-14784.27 proxturnB:-14784.27 getTheta => use: 2 x2: -100.14 y2: -129.90 thetaB: 267.74 x1: -162.94 y1: 110.84 thetaA: 121.51 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:30.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 30.00 getTurn => turn:-6449.02 = (x2:160.61 - x1:95.00) * (y3:30.00 - y1:0.00) - (y2:-112.23 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:6449.02 = (x2:219.91 - x1:95.00) * (y3:30.00 - y1:0.00) - (y2:36.02 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:300.31 thetaB:16.09 proxturnA:-6449.02 proxturnB:-6449.02 getTheta => use: 2 x2: 219.91 y2: 36.02 thetaB: 16.09 x1: 160.61 y1: -112.23 thetaA: 300.31 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:30.00 cachedX1:20.00 cachedY1:30.00 getInverse => cachedXL:-100.14 cachedYL:-129.90 cachedXR:219.91 cachedYR:36.02 cachedThetaR:16.09 cachedXR:219.91 getInverse => cachedYR:36.02 cachedThetaL:267.74 cachedXL:-100.14 cachedYL:-129.90 getInverse => cachedInvalid:0 x_0:20.00 y_0:30.00 xL:-100.14 yL:-129.90 thetaL:267.74 xR:219.91 yR:36.02 thetaR:16.09 x1:20.00 y1:30.00 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:30.00 CartesianToMotorSteps => motorPosX = cachedThetaL:267.74 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:16.09 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:20.00 machinePos[1]:30.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:20.00 cachedY0:30.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:40.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 40.00 getTurn => turn:-15278.21 = (x2:-168.32 - x1:-95.00) * (y3:40.00 - y1:0.00) - (y2:107.35 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:15278.21 = (x2:-85.87 - x1:-95.00) * (y3:40.00 - y1:0.00) - (y2:-129.68 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:124.33 thetaB:274.03 proxturnA:-15278.21 proxturnB:-15278.21 getTheta => use: 2 x2: -85.87 y2: -129.68 thetaB: 274.03 x1: -168.32 y1: 107.35 thetaA: 124.33 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:40.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 40.00 getTurn => turn:-7687.56 = (x2:134.84 - x1:95.00) * (y3:40.00 - y1:0.00) - (y2:-123.75 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:7687.56 = (x2:219.96 - x1:95.00) * (y3:40.00 - y1:0.00) - (y2:35.86 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:287.84 thetaB:16.01 proxturnA:-7687.56 proxturnB:-7687.56 getTheta => use: 2 x2: 219.96 y2: 35.86 thetaB: 16.01 x1: 134.84 y1: -123.75 thetaA: 287.84 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:40.00 cachedX1:20.00 cachedY1:40.00 getInverse => cachedXL:-85.87 cachedYL:-129.68 cachedXR:219.96 cachedYR:35.86 cachedThetaR:16.01 cachedXR:219.96 getInverse => cachedYR:35.86 cachedThetaL:274.03 cachedXL:-85.87 cachedYL:-129.68 getInverse => cachedInvalid:0 x_0:20.00 y_0:40.00 xL:-85.87 yL:-129.68 thetaL:274.03 xR:219.96 yR:35.86 thetaR:16.01 x1:20.00 y1:40.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:274.03>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:274.03 < actuatorAngleLMin:0.00 || thetaL:274.03 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:1 cachedX0:20.00 cachedY0:40.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:20.00 y_0:40.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 20.00 secondY: 40.00 getTurn => turn:-15278.21 = (x2:-168.32 - x1:-95.00) * (y3:40.00 - y1:0.00) - (y2:107.35 - y1:0.00) * (x3:20.00 - x1:-95.00) getTurn => turn:15278.21 = (x2:-85.87 - x1:-95.00) * (y3:40.00 - y1:0.00) - (y2:-129.68 - y1:0.00) * (x3:20.00 - x1:-95.00) getTheta => workmode: 1 thetaA:124.33 thetaB:274.03 proxturnA:-15278.21 proxturnB:-15278.21 getTheta => use: 2 x2: -85.87 y2: -129.68 thetaB: 274.03 x1: -168.32 y1: 107.35 thetaA: 124.33 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:20.00 y_0:40.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 20.00 secondY: 40.00 getTurn => turn:-7687.56 = (x2:134.84 - x1:95.00) * (y3:40.00 - y1:0.00) - (y2:-123.75 - y1:0.00) * (x3:20.00 - x1:95.00) getTurn => turn:7687.56 = (x2:219.96 - x1:95.00) * (y3:40.00 - y1:0.00) - (y2:35.86 - y1:0.00) * (x3:20.00 - x1:95.00) getTheta => workmode: 1 thetaA:287.84 thetaB:16.01 proxturnA:-7687.56 proxturnB:-7687.56 getTheta => use: 2 x2: 219.96 y2: 35.86 thetaB: 16.01 x1: 134.84 y1: -123.75 thetaA: 287.84 getInverse => cachedInvalid 0 cachedX0:20.00 cachedY0:40.00 cachedX1:20.00 cachedY1:40.00 getInverse => cachedXL:-85.87 cachedYL:-129.68 cachedXR:219.96 cachedYR:35.86 cachedThetaR:16.01 cachedXR:219.96 getInverse => cachedYR:35.86 cachedThetaL:274.03 cachedXL:-85.87 cachedYL:-129.68 getInverse => cachedInvalid:0 x_0:20.00 y_0:40.00 xL:-85.87 yL:-129.68 thetaL:274.03 xR:219.96 yR:35.86 thetaR:16.01 x1:20.00 y1:40.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:0.00<0 && thetaL:274.03>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:274.03 < actuatorAngleLMin:0.00 || thetaL:274.03 > actuatorAngleLMax:270.00 return false