from robot.func import * # os.environ["LIBGL_ALWAYS_SOFTWARE"] = "1" class PrepareRobotData: line_speed = 100.0 line_smooth = 0 line_tool = 0 def make_step(self, type, point, start_coordinates): step = { "oneshot": "1", "delay": "0.0", "speed": str(self.line_speed), "smooth": str(self.line_smooth), "coord": "0", "tool": str(self.line_tool), "ckStatus": "0x3F", } if type == "line" or type == "free": pairs = zip(start_coordinates, point) data = [] for pair in pairs: data.append(round(sum(pair), 3)) m0, m1, m2, m3, m4, m5 = data if type == "line": step.update({"action": "10"}) if type == "free": step.update({"action": "4"}) step.update({"m0": m0, "m1": m1, "m2": m2, "m3": m3, "m4": m4, "m5": m5}) step.update({"m6": 0, "m7": 0}) elif type == "curve": pairs = zip(self.world_coordinates, point[:5]) m0, m1, m2, m3, m4, m5 = [round(sum(i), 3) for i in pairs] pairs_p = zip(self.world_coordinates, point[6:]) m0_p, m1_p, m2_p, m3_p, m4_p, m5_p = [round(sum(i), 3) for i in pairs_p] step.update({"action": "17"}) step.update({"m0": m0, "m1": m1, "m2": m2, "m3": m3, "m4": m4, "m5": m5}) step.update({"m6": 0, "m7": 0}) step.update( { "m0_p": m0_p, "m1_p": m1_p, "m2_p": m2_p, "m3_p": m3_p, "m4_p": m4_p, "m5_p": m5_p, } ) step.update({"m6_p": 0, "m7_p": 0}) for s in step: step[s] = str(step[s]) return step