def plot_line(self, p1, p2, fast=False): p1 = vector.vec_add(p1, self._cnc_offset) p2 = vector.vec_add(p2, self._cnc_offset) if p1 != self._current_pos: if self._current_z != self._move_z: self._append_tool_up_cmd() self._append_quick_move_cmd(p1) if self._current_z != self._plot_z: self._append_tool_down_cmd() self._append_precise_move_cmd(p2, fast)
def _plan_vertical_obround(position, radius, size, path: ToolPath, move_to_pos): border_pos_1 = vector.vec_add(position, (radius, size / 2)) border_pos_2 = vector.vec_add(position, (-radius, size / 2)) border_pos_3 = vector.vec_add(position, (-radius, -size / 2)) border_pos_4 = vector.vec_add(position, (radius, -size / 2)) if move_to_pos: path.move_to(border_pos_1) else: path.plot_to(border_pos_1) path.plot_arc((-radius, 0), border_pos_2, True) path.plot_to(border_pos_3) path.plot_arc((radius, 0), border_pos_4, True) path.plot_to(border_pos_1)
def _plan_horizontal_obround(position, radius, size, path: ToolPath, move_to_pos): border_pos_1 = vector.vec_add(position, (-size / 2, radius)) border_pos_2 = vector.vec_add(position, (-size / 2, -radius)) border_pos_3 = vector.vec_add(position, (size / 2, -radius)) border_pos_4 = vector.vec_add(position, (size / 2, radius)) if move_to_pos: path.move_to(border_pos_1) else: path.plot_to(border_pos_1) path.plot_arc((0, -radius), border_pos_2, True) path.plot_to(border_pos_3) path.plot_arc((0, radius), border_pos_4, True) path.plot_to(border_pos_1)
def move_to(self, p): p = vector.vec_add(p, self._cnc_offset) if p != self._current_pos: if self._current_z != self._move_z: self._append_tool_up_cmd() self._append_quick_move_cmd(p)
def plot_circle(self, center): center = vector.vec_add(center, self._cnc_offset) if self._current_z != self._plot_z: self._append_tool_down_cmd() self._append_slow_cw_circle_move( vector.vec_sub(center, self._current_pos), False)
def plot_arc(self, r_center, stop, ccw): stop = vector.vec_add(stop, self._cnc_offset) if self._current_z != self._plot_z: self._append_tool_down_cmd() if ccw: self._append_ccw_slow_arc_cmd(r_center, stop, False) else: self._append_cw_slow_arc_cmd(r_center, stop, False)
def plot_to(self, p, fast=False): p = vector.vec_add(p, self._cnc_offset) if p == self._current_pos: return if self._current_z != self._plot_z: self._append_tool_down_cmd() self._append_precise_move_cmd(p, fast)
def translate(self, v): self.lower_left = vector.vec_add(self.lower_left, v) self.upper_right = vector.vec_add(self.upper_right, v)
def translate(self, v): for i in range(len(self.points)): self.points[i] = vector.vec_add(self.points[i], v)
def translate(self, v): self.start = vector.vec_add(self.start, v) self.end = vector.vec_add(self.end, v)
def get_start_pos(self): if self.horizontal: return vector.vec_add(self.position, (-self.size / 2, self.radius)) return vector.vec_add(self.position, (self.radius, self.size / 2))
def translate(self, v): self.position = vector.vec_add(self.position, v)
def get_start_pos(self): return vector.vec_add(self.center, (self.radius, 0))
def translate(self, v): self.center = vector.vec_add(self.center, v)