m115 FIRMWARE_NAME: RepRapFirmware for STM32F4 based Boards FIRMWARE_VERSION: 3.2.2_2 ELECTRONICS: STM32F4 FIRMWARE_DATE: 2021-05-02 ok MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:6436.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:168.27,yR:107.39) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 168.27 secondY: 107.39 getTurn => turn:-31062.64 = (x2:66.37 - x1:-3.08) * (y3:107.39 - y1:91.92) - (y2:279.48 - y1:91.92) * (x3:168.27 - x1:-3.08) getTurn => turn:31062.64 = (x2:98.82 - x1:-3.08) * (y3:107.39 - y1:91.92) - (y2:-80.17 - y1:91.92) * (x3:168.27 - x1:-3.08) getTurn => turn:10857.74 = (x2:-3.08 - x1:-95.00) * (y3:279.48 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:66.37 - x1:-95.00) getTurn => turn:23551.44 = (x2:168.27 - x1:95.00) * (y3:279.48 - y1:0.00) - (y2:107.39 - y1:0.00) * (x3:66.37 - x1:95.00) getForwad => workmode:1 turnLeft:10857.74 turnRight:23551.44 MotorStepsToCartesian => MachinePosX:66.37 MachinePosY:279.48 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:6436.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:168.27,yR:107.39) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 168.27 secondY: 107.39 getTurn => turn:-31062.64 = (x2:66.37 - x1:-3.08) * (y3:107.39 - y1:91.92) - (y2:279.48 - y1:91.92) * (x3:168.27 - x1:-3.08) getTurn => turn:31062.64 = (x2:98.82 - x1:-3.08) * (y3:107.39 - y1:91.92) - (y2:-80.17 - y1:91.92) * (x3:168.27 - x1:-3.08) getTurn => turn:10857.74 = (x2:-3.08 - x1:-95.00) * (y3:279.48 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:66.37 - x1:-95.00) getTurn => turn:23551.44 = (x2:168.27 - x1:95.00) * (y3:279.48 - y1:0.00) - (y2:107.39 - y1:0.00) * (x3:66.37 - x1:95.00) getForwad => workmode:1 turnLeft:10857.74 turnRight:23551.44 MotorStepsToCartesian => MachinePosX:66.37 MachinePosY:279.48 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:6436.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:168.27,yR:107.39) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 168.27 secondY: 107.39 getTurn => turn:-31062.64 = (x2:66.37 - x1:-3.08) * (y3:107.39 - y1:91.92) - (y2:279.48 - y1:91.92) * (x3:168.27 - x1:-3.08) getTurn => turn:31062.64 = (x2:98.82 - x1:-3.08) * (y3:107.39 - y1:91.92) - (y2:-80.17 - y1:91.92) * (x3:168.27 - x1:-3.08) getTurn => turn:10857.74 = (x2:-3.08 - x1:-95.00) * (y3:279.48 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:66.37 - x1:-95.00) getTurn => turn:23551.44 = (x2:168.27 - x1:95.00) * (y3:279.48 - y1:0.00) - (y2:107.39 - y1:0.00) * (x3:66.37 - x1:95.00) getForwad => workmode:1 turnLeft:10857.74 turnRight:23551.44 MotorStepsToCartesian => MachinePosX:66.37 MachinePosY:279.48 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:5200.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:186.92,yR:91.92) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 186.92 secondY: 91.92 getTurn => turn:-33439.46 = (x2:91.92 - x1:-3.08) * (y3:91.92 - y1:91.92) - (y2:267.92 - y1:91.92) * (x3:186.92 - x1:-3.08) getTurn => turn:33439.46 = (x2:91.92 - x1:-3.08) * (y3:91.92 - y1:91.92) - (y2:-84.07 - y1:91.92) * (x3:186.92 - x1:-3.08) getTurn => turn:7445.57 = (x2:-3.08 - x1:-95.00) * (y3:267.92 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:91.92 - x1:-95.00) getTurn => turn:24911.11 = (x2:186.92 - x1:95.00) * (y3:267.92 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:91.92 - x1:95.00) getForwad => workmode:1 turnLeft:7445.57 turnRight:24911.11 MotorStepsToCartesian => MachinePosX:91.92 MachinePosY:267.92 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:5200.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:186.92,yR:91.92) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 186.92 secondY: 91.92 getTurn => turn:-33439.46 = (x2:91.92 - x1:-3.08) * (y3:91.92 - y1:91.92) - (y2:267.92 - y1:91.92) * (x3:186.92 - x1:-3.08) getTurn => turn:33439.46 = (x2:91.92 - x1:-3.08) * (y3:91.92 - y1:91.92) - (y2:-84.07 - y1:91.92) * (x3:186.92 - x1:-3.08) getTurn => turn:7445.57 = (x2:-3.08 - x1:-95.00) * (y3:267.92 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:91.92 - x1:-95.00) getTurn => turn:24911.11 = (x2:186.92 - x1:95.00) * (y3:267.92 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:91.92 - x1:95.00) getForwad => workmode:1 turnLeft:7445.57 turnRight:24911.11 MotorStepsToCartesian => MachinePosX:91.92 MachinePosY:267.92 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:43.00=MotorPosX:4969.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:43.00=MotorPosY:4969.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:0.07,yL:88.66,xR:190.07,yR:88.66) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: 0.07 firstY: 88.66 secondX: 190.07 secondY: 88.66 getTurn => turn:-33439.46 = (x2:95.07 - x1:0.07) * (y3:88.66 - y1:88.66) - (y2:264.66 - y1:88.66) * (x3:190.07 - x1:0.07) getTurn => turn:33439.46 = (x2:95.07 - x1:0.07) * (y3:88.66 - y1:88.66) - (y2:-87.34 - y1:88.66) * (x3:190.07 - x1:0.07) getTurn => turn:8310.01 = (x2:0.07 - x1:-95.00) * (y3:264.66 - y1:0.00) - (y2:88.66 - y1:0.00) * (x3:95.07 - x1:-95.00) getTurn => turn:25155.67 = (x2:190.07 - x1:95.00) * (y3:264.66 - y1:0.00) - (y2:88.66 - y1:0.00) * (x3:95.07 - x1:95.00) getForwad => workmode:1 turnLeft:8310.01 turnRight:25155.67 MotorStepsToCartesian => MachinePosX:95.07 MachinePosY:264.66 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:43.00=MotorPosX:4969.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:43.00=MotorPosY:4969.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:0.07,yL:88.66,xR:190.07,yR:88.66) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: 0.07 firstY: 88.66 secondX: 190.07 secondY: 88.66 getTurn => turn:-33439.46 = (x2:95.07 - x1:0.07) * (y3:88.66 - y1:88.66) - (y2:264.66 - y1:88.66) * (x3:190.07 - x1:0.07) getTurn => turn:33439.46 = (x2:95.07 - x1:0.07) * (y3:88.66 - y1:88.66) - (y2:-87.34 - y1:88.66) * (x3:190.07 - x1:0.07) getTurn => turn:8310.01 = (x2:0.07 - x1:-95.00) * (y3:264.66 - y1:0.00) - (y2:88.66 - y1:0.00) * (x3:95.07 - x1:-95.00) getTurn => turn:25155.67 = (x2:190.07 - x1:95.00) * (y3:264.66 - y1:0.00) - (y2:88.66 - y1:0.00) * (x3:95.07 - x1:95.00) getForwad => workmode:1 turnLeft:8310.01 turnRight:25155.67 MotorStepsToCartesian => MachinePosX:95.07 MachinePosY:264.66 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:4969.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:190.07,yR:88.66) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 190.07 secondY: 88.66 getTurn => turn:-33831.31 = (x2:96.46 - x1:-3.08) * (y3:88.66 - y1:91.92) - (y2:265.40 - y1:91.92) * (x3:190.07 - x1:-3.08) getTurn => turn:33831.31 = (x2:90.54 - x1:-3.08) * (y3:88.66 - y1:91.92) - (y2:-84.81 - y1:91.92) * (x3:190.07 - x1:-3.08) getTurn => turn:6796.93 = (x2:-3.08 - x1:-95.00) * (y3:265.40 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:96.46 - x1:-95.00) getTurn => turn:25103.39 = (x2:190.07 - x1:95.00) * (y3:265.40 - y1:0.00) - (y2:88.66 - y1:0.00) * (x3:96.46 - x1:95.00) getForwad => workmode:1 turnLeft:6796.93 turnRight:25103.39 MotorStepsToCartesian => MachinePosX:96.46 MachinePosY:265.40 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:4969.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:190.07,yR:88.66) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 190.07 secondY: 88.66 getTurn => turn:-33831.31 = (x2:96.46 - x1:-3.08) * (y3:88.66 - y1:91.92) - (y2:265.40 - y1:91.92) * (x3:190.07 - x1:-3.08) getTurn => turn:33831.31 = (x2:90.54 - x1:-3.08) * (y3:88.66 - y1:91.92) - (y2:-84.81 - y1:91.92) * (x3:190.07 - x1:-3.08) getTurn => turn:6796.93 = (x2:-3.08 - x1:-95.00) * (y3:265.40 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:96.46 - x1:-95.00) getTurn => turn:25103.39 = (x2:190.07 - x1:95.00) * (y3:265.40 - y1:0.00) - (y2:88.66 - y1:0.00) * (x3:96.46 - x1:95.00) getForwad => workmode:1 turnLeft:6796.93 turnRight:25103.39 MotorStepsToCartesian => MachinePosX:96.46 MachinePosY:265.40 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:5200.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:186.92,yR:91.92) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 186.92 secondY: 91.92 getTurn => turn:-33439.46 = (x2:91.92 - x1:-3.08) * (y3:91.92 - y1:91.92) - (y2:267.92 - y1:91.92) * (x3:186.92 - x1:-3.08) getTurn => turn:33439.46 = (x2:91.92 - x1:-3.08) * (y3:91.92 - y1:91.92) - (y2:-84.07 - y1:91.92) * (x3:186.92 - x1:-3.08) getTurn => turn:7445.57 = (x2:-3.08 - x1:-95.00) * (y3:267.92 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:91.92 - x1:-95.00) getTurn => turn:24911.11 = (x2:186.92 - x1:95.00) * (y3:267.92 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:91.92 - x1:95.00) getForwad => workmode:1 turnLeft:7445.57 turnRight:24911.11 MotorStepsToCartesian => MachinePosX:91.92 MachinePosY:267.92 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:45.00=MotorPosX:5200.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:45.00=MotorPosY:5200.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:-3.08,yL:91.92,xR:186.92,yR:91.92) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: -3.08 firstY: 91.92 secondX: 186.92 secondY: 91.92 getTurn => turn:-33439.46 = (x2:91.92 - x1:-3.08) * (y3:91.92 - y1:91.92) - (y2:267.92 - y1:91.92) * (x3:186.92 - x1:-3.08) getTurn => turn:33439.46 = (x2:91.92 - x1:-3.08) * (y3:91.92 - y1:91.92) - (y2:-84.07 - y1:91.92) * (x3:186.92 - x1:-3.08) getTurn => turn:7445.57 = (x2:-3.08 - x1:-95.00) * (y3:267.92 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:91.92 - x1:-95.00) getTurn => turn:24911.11 = (x2:186.92 - x1:95.00) * (y3:267.92 - y1:0.00) - (y2:91.92 - y1:0.00) * (x3:91.92 - x1:95.00) getForwad => workmode:1 turnLeft:7445.57 turnRight:24911.11 MotorStepsToCartesian => MachinePosX:91.92 MachinePosY:267.92 XYZ_AXES:3 numVisibleAxes:3 MotorStepsToCartesian => thetaL:40.00=MotorPosX:4622.00/StepsPermmX:115.56 MotorStepsToCartesian => thetaR:40.00=MotorPosY:4622.00/StepsPermmY:115.56 getForwad => getIntersec(distalL:200.00,distalR:200.00,xL:4.59,yL:83.56,xR:194.59,yR:83.56) getIntersec firstRadius: 200.00 secondRadius: 200.00 firstX: 4.59 firstY: 83.56 secondX: 194.59 secondY: 83.56 getTurn => turn:-33439.46 = (x2:99.59 - x1:4.59) * (y3:83.56 - y1:83.56) - (y2:259.56 - y1:83.56) * (x3:194.59 - x1:4.59) getTurn => turn:33439.46 = (x2:99.59 - x1:4.59) * (y3:83.56 - y1:83.56) - (y2:-92.44 - y1:83.56) * (x3:194.59 - x1:4.59) getTurn => turn:9589.20 = (x2:4.59 - x1:-95.00) * (y3:259.56 - y1:0.00) - (y2:83.56 - y1:0.00) * (x3:99.59 - x1:-95.00) getTurn => turn:25465.42 = (x2:194.59 - x1:95.00) * (y3:259.56 - y1:0.00) - (y2:83.56 - y1:0.00) * (x3:99.59 - x1:95.00) getForwad => workmode:1 turnLeft:9589.20 turnRight:25465.42 MotorStepsToCartesian => MachinePosX:99.59 MachinePosY:259.56 XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:0.00 cachedY0:0.00 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:99.59 y_0:259.56 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 99.59 secondY: 259.56 getTurn => turn:-9589.19 = (x2:-42.71 - x1:-95.00) * (y3:259.56 - y1:0.00) - (y2:119.02 - y1:0.00) * (x3:99.59 - x1:-95.00) getTurn => turn:9589.19 = (x2:4.59 - x1:-95.00) * (y3:259.56 - y1:0.00) - (y2:83.56 - y1:0.00) * (x3:99.59 - x1:-95.00) getTheta => workmode: 1 thetaA:66.28 thetaB:40.00 proxturnA:-9589.19 proxturnB:-9589.19 getTheta => use: 2 x2: 4.59 y2: 83.56 thetaB: 40.00 x1: -42.71 y1: 119.02 thetaA: 66.28 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:99.59 y_0:259.56 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 99.59 secondY: 259.56 getTurn => turn:-25465.42 = (x2:-1.57 - x1:95.00) * (y3:259.56 - y1:0.00) - (y2:87.03 - y1:0.00) * (x3:99.59 - x1:95.00) getTurn => turn:25465.42 = (x2:194.59 - x1:95.00) * (y3:259.56 - y1:0.00) - (y2:83.56 - y1:0.00) * (x3:99.59 - x1:95.00) getTheta => workmode: 1 thetaA:137.98 thetaB:40.00 proxturnA:-25465.42 proxturnB:-25465.42 getTheta => use: 2 x2: 194.59 y2: 83.56 thetaB: 40.00 x1: -1.57 y1: 87.03 thetaA: 137.98 getInverse => cachedInvalid 0 cachedX0:99.59 cachedY0:259.56 cachedX1:99.59 cachedY1:259.56 getInverse => cachedXL:4.59 cachedYL:83.56 cachedXR:194.59 cachedYR:83.56 cachedThetaR:40.00 cachedXR:194.59 getInverse => cachedYR:83.56 cachedThetaL:40.00 cachedXL:4.59 cachedYL:83.56 getInverse => cachedInvalid:0 x_0:99.59 y_0:259.56 xL:4.59 yL:83.56 thetaL:40.00 xR:194.59 yR:83.56 thetaR:40.00 x1:99.59 y1:259.56 constraintsOK => cachedInvalid:0 actuatorAngleLMin:-180.00<0 && thetaL:40.00>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:40.00 < actuatorAngleLMin:-180.00 || thetaL:40.00 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:-180.00<0 && thetaR:40.00>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:40.00 < actuatorAngleRMin:-180.00 || thetaR:40.00 > actuatorAngleRMax:270.00 return false getAngle => x1:4.59 y1:83.56 x2:99.59 y2:259.56 x3:194.59 y3:83.56 getAngle => angle:56.72 = angle2:298.36 - angle1:241.64 constraintsOK => achedInvalid:0 headAngle:56.72 < headAngleMin:0.00 || headAngle:56.72 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:4.59 y2:83.56 x3:99.59 y3:259.56 getAngle => angle:201.64 = 360 + angle2:61.64 - angle1:220.00 constraintsOK => cachedInvalid:0 angleProxDistL:201.64 < proxDistLAngleMin:0.00 || angleProxDistL:201.64 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:194.59 y2:83.56 x3:99.59 y3:259.56 getAngle => angle:258.36 = 360 + angle2:118.36 - angle1:220.00 constraintsOK => cachedInvalid:0 angleProxDistR:258.36 < proxDistRAngleMin:0.00 || angleProxDistR:258.36 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:99.59 cachedY0:259.56 CartesianToMotorSteps => motorPosX = cachedThetaL:40.00 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:40.00 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:99.59 machinePos[1]:259.56 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:99.59 cachedY0:259.56 CartesianToMotorSteps => motorPosX = cachedThetaL:40.00 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:40.00 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:99.59 machinePos[1]:259.56 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3 constraintsOK => cachedInvalid:0 cachedX0:99.59 cachedY0:259.56 getInverse => not cantilevered proximalL:130.00 distalL:200.00 xOrigL:-95.00 yOrigL:0.00 x_0:0.00 y_0:0.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: -95.00 firstY: 0.00 secondX: 0.00 secondY: 0.00 getTurn => turn:-10148.70 = (x2:-169.08 - x1:-95.00) * (y3:0.00 - y1:0.00) - (y2:106.83 - y1:0.00) * (x3:0.00 - x1:-95.00) getTurn => turn:10148.70 = (x2:-169.08 - x1:-95.00) * (y3:0.00 - y1:0.00) - (y2:-106.83 - y1:0.00) * (x3:0.00 - x1:-95.00) getTheta => workmode: 1 thetaA:124.74 thetaB:235.26 proxturnA:-10148.70 proxturnB:-10148.70 getTheta => use: 2 x2: -169.08 y2: -106.83 thetaB: 235.26 x1: -169.08 y1: 106.83 thetaA: 124.74 getInverse => not cantilevered proximalR:130.00 distalR:200.00 xOrigR:95.00 yOrigR:0.00 x_0:0.00 y_0:0.00 getIntersec firstRadius: 130.00 secondRadius: 200.00 firstX: 95.00 firstY: 0.00 secondX: 0.00 secondY: 0.00 getTurn => turn:-10148.70 = (x2:169.08 - x1:95.00) * (y3:0.00 - y1:0.00) - (y2:-106.83 - y1:0.00) * (x3:0.00 - x1:95.00) getTurn => turn:10148.70 = (x2:169.08 - x1:95.00) * (y3:0.00 - y1:0.00) - (y2:106.83 - y1:0.00) * (x3:0.00 - x1:95.00) getTheta => workmode: 1 thetaA:304.74 thetaB:55.26 proxturnA:-10148.70 proxturnB:-10148.70 getTheta => use: 2 x2: 169.08 y2: 106.83 thetaB: 55.26 x1: 169.08 y1: -106.83 thetaA: 304.74 getInverse => cachedInvalid 0 cachedX0:0.00 cachedY0:0.00 cachedX1:0.00 cachedY1:0.00 getInverse => cachedXL:-169.08 cachedYL:-106.83 cachedXR:169.08 cachedYR:106.83 cachedThetaR:55.26 cachedXR:169.08 getInverse => cachedYR:106.83 cachedThetaL:235.26 cachedXL:-169.08 cachedYL:-106.83 getInverse => cachedInvalid:0 x_0:0.00 y_0:0.00 xL:-169.08 yL:-106.83 thetaL:235.26 xR:169.08 yR:106.83 thetaR:55.26 x1:0.00 y1:0.00 constraintsOK => cachedInvalid:0 actuatorAngleLMin:-180.00<0 && thetaL:235.26>actuatorAngleLMax:270.00 constraintsOK => cachedInvalid:0 thetaL:235.26 < actuatorAngleLMin:-180.00 || thetaL:235.26 > actuatorAngleLMax:270.00 return false constraintsOK => cachedInvalid:0 actuatorAngleRMin:-180.00<0 && thetaR:55.26>actuatorAngleRMax:270.00 constraintsOK => cachedInvalid:0 thetaR:55.26 < actuatorAngleRMin:-180.00 || thetaR:55.26 > actuatorAngleRMax:270.00 return false getAngle => x1:-169.08 y1:-106.83 x2:0.00 y2:0.00 x3:169.08 y3:106.83 getAngle => angle:180.00 = 360 + angle2:32.29 - angle1:212.29 constraintsOK => achedInvalid:0 headAngle:180.00 < headAngleMin:0.00 || headAngle:180.00 > headAngleMax:180.00 isnan(headAngle):0 return false getAngle => x1:-95.00 y1:0.00 x2:-169.08 y2:-106.83 x3:0.00 y3:0.00 getAngle => angle:337.02 = 360 + angle2:32.29 - angle1:55.26 constraintsOK => cachedInvalid:0 angleProxDistL:337.02 < proxDistLAngleMin:0.00 || angleProxDistL:337.02 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false getAngle => x1:95.00 y1:0.00 x2:169.08 y2:106.83 x3:0.00 y3:0.00 getAngle => angle:337.02 = 360 + angle2:212.29 - angle1:235.26 constraintsOK => cachedInvalid:0 angleProxDistR:337.02 < proxDistRAngleMin:0.00 || angleProxDistR:337.02 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false constraintsOK => cachedInvalid:0 cachedX0:0.00 cachedY0:0.00 CartesianToMotorSteps => motorPosX = cachedThetaL:235.26 * stespPermm[X_AXIS]115.56 motorPosY = cachedThetaR:55.26 * stepsPermm[Y_AXIS]115.56 CartesianToMotorSteps => machinePos[0]:0.00 machinePos[1]:0.00 motorPosX:0.00 motorPosY:115.56 CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3