reamenagement

This commit is contained in:
Nathan-rek
2024-11-20 16:39:17 +01:00
parent e02d1d0bba
commit 12a249e478
142 changed files with 18858 additions and 18858 deletions

0
23.5.26 Normal file
View File

View File

@@ -1,79 +1,79 @@
from enum import Enum from enum import Enum
class Machine(Enum): class Machine(Enum):
LASER = 1 LASER = 1
THREEAXIS = 2 THREEAXIS = 2
class Gcode: class Gcode:
def __init__(self, file, mm_per_px, speed, machine, max_s=0, safe_z=0, work_z=0): def __init__(self, file, mm_per_px, speed, machine, max_s=0, safe_z=0, work_z=0):
self.file = file self.file = file
self.mm_per_px = mm_per_px self.mm_per_px = mm_per_px
self.speed = speed self.speed = speed
self.machine = machine self.machine = machine
self.max_s = max_s self.max_s = max_s
self.safe_z = safe_z self.safe_z = safe_z
self.work_z = work_z self.work_z = work_z
self.output = None self.output = None
self.init_file() self.init_file()
def init_file(self): def init_file(self):
# self.output = open(f"{self.file}.gcode", "w") # self.output = open(f"{self.file}.gcode", "w")
self.output = "" self.output = ""
self.output += ("G21 ;Unit to mm\n") self.output += ("G21 ;Unit to mm\n")
self.output += ("G90 ;Absolute positioning\n\n") self.output += ("G90 ;Absolute positioning\n\n")
self.output += (f"F{self.speed}\n") self.output += (f"F{self.speed}\n")
if self.machine == Machine.LASER: if self.machine == Machine.LASER:
self.output += (f"S{self.max_s}\n") self.output += (f"S{self.max_s}\n")
self.output += ("M3\n\n") self.output += ("M3\n\n")
def draw_line(self, x1, y1, x2, y2): def draw_line(self, x1, y1, x2, y2):
self.go_to(x1, y1) self.go_to(x1, y1)
self.write_to(x2, y2) self.write_to(x2, y2)
def go_to(self, x, y): def go_to(self, x, y):
x_mm = x * self.mm_per_px x_mm = x * self.mm_per_px
y_mm = y * self.mm_per_px y_mm = y * self.mm_per_px
if self.machine == Machine.LASER: if self.machine == Machine.LASER:
self.output+=(f"G0 X{x_mm} Y{y_mm}\n") self.output+=(f"G0 X{x_mm} Y{y_mm}\n")
elif self.machine == Machine.THREEAXIS: elif self.machine == Machine.THREEAXIS:
self.output+=(f"G0 Z{self.safe_z}\n") self.output+=(f"G0 Z{self.safe_z}\n")
self.output+=(f"G0 X{x_mm} Y{y_mm} Z{self.safe_z}\n") self.output+=(f"G0 X{x_mm} Y{y_mm} Z{self.safe_z}\n")
def write_to(self, x, y): def write_to(self, x, y):
x_mm = x * self.mm_per_px x_mm = x * self.mm_per_px
y_mm = y * self.mm_per_px y_mm = y * self.mm_per_px
if self.machine == Machine.LASER: if self.machine == Machine.LASER:
self.output += (f"G1 X{x_mm} Y{y_mm}\n") self.output += (f"G1 X{x_mm} Y{y_mm}\n")
elif self.machine == Machine.THREEAXIS: elif self.machine == Machine.THREEAXIS:
self.output += (f"G0 Z{self.work_z}\n") self.output += (f"G0 Z{self.work_z}\n")
self.output += (f"G1 X{x_mm} Y{y_mm} Z{self.work_z}\n") self.output += (f"G1 X{x_mm} Y{y_mm} Z{self.work_z}\n")
def refill(self, x, y, depth, dip_number): def refill(self, x, y, depth, dip_number):
self.output += (";#################\n") self.output += (";#################\n")
if self.machine == Machine.THREEAXIS: if self.machine == Machine.THREEAXIS:
self.go_to(x, y) self.go_to(x, y)
for _ in range(dip_number): for _ in range(dip_number):
self.output += (f"G1 Z{depth}\n") self.output += (f"G1 Z{depth}\n")
self.output += (f"G0 Z{self.safe_z}\n") self.output += (f"G0 Z{self.safe_z}\n")
elif self.machine == Machine.LASER: elif self.machine == Machine.LASER:
self.go_to(x, y) self.go_to(x, y)
self.set_pause() self.set_pause()
def set_pause(self): def set_pause(self):
self.output += ("M0\n") self.output += ("M0\n")
def end_gcode(self): def end_gcode(self):
if self.machine == Machine.THREEAXIS: if self.machine == Machine.THREEAXIS:
self.go_to(0, 0) self.go_to(0, 0)
self.output += ("M5\n") self.output += ("M5\n")
# self.output.close() # self.output.close()
def new_file(self, new_file_name): def new_file(self, new_file_name):
self.end_gcode() self.end_gcode()
self.file = new_file_name self.file = new_file_name
self.init_file() self.init_file()

View File

@@ -1,3 +1,3 @@
- fonction qui traite le texte utilisateur : ajoute des retours à la ligne quand les phrases sont trop longues. A ajouter dans la fonction getText de l'app web - fonction qui traite le texte utilisateur : ajoute des retours à la ligne quand les phrases sont trop longues. A ajouter dans la fonction getText de l'app web
- Dans getText fair appel à text_to_gcode, récupérer le gcode et l'envoyer en serial - Dans getText fair appel à text_to_gcode, récupérer le gcode et l'envoyer en serial
- Dans text_to_gcode faire une fonction convert_text qui prends un texte avec des retours à la ligne et qui revoit du gcode - Dans text_to_gcode faire une fonction convert_text qui prends un texte avec des retours à la ligne et qui revoit du gcode

Binary file not shown.

Binary file not shown.

View File

@@ -1,22 +1,22 @@
from Gcode_generator import Gcode from Gcode_generator import Gcode
from Gcode_generator import Machine from Gcode_generator import Machine
machine_type = Machine.LASER machine_type = Machine.LASER
# Create an instance of the Gcode class # Create an instance of the Gcode class
gcode = Gcode( gcode = Gcode(
file="test_gcode", # Output file name (no .gcode extension) file="test_gcode", # Output file name (no .gcode extension)
mm_per_px=0.1, # Conversion factor: mm per pixel mm_per_px=0.1, # Conversion factor: mm per pixel
speed=1000, # Speed in mm/min speed=1000, # Speed in mm/min
machine=machine_type, machine=machine_type,
) )
# Draw a line from (10, 20) to (30, 40) # Draw a line from (10, 20) to (30, 40)
gcode.draw_line(10, 20, 30, 40) gcode.draw_line(10, 20, 30, 40)
# Finish the G-code file # Finish the G-code file
gcode.end_gcode() gcode.end_gcode()
print("G-code file generated: example.gcode") print("G-code file generated: example.gcode")

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Some files were not shown because too many files have changed in this diff Show More