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
class Machine(Enum):
LASER = 1
THREEAXIS = 2
class Gcode:
def __init__(self, file, mm_per_px, speed, machine, max_s=0, safe_z=0, work_z=0):
self.file = file
self.mm_per_px = mm_per_px
self.speed = speed
self.machine = machine
self.max_s = max_s
self.safe_z = safe_z
self.work_z = work_z
self.output = None
self.init_file()
def init_file(self):
# self.output = open(f"{self.file}.gcode", "w")
self.output = ""
self.output += ("G21 ;Unit to mm\n")
self.output += ("G90 ;Absolute positioning\n\n")
self.output += (f"F{self.speed}\n")
if self.machine == Machine.LASER:
self.output += (f"S{self.max_s}\n")
self.output += ("M3\n\n")
def draw_line(self, x1, y1, x2, y2):
self.go_to(x1, y1)
self.write_to(x2, y2)
def go_to(self, x, y):
x_mm = x * self.mm_per_px
y_mm = y * self.mm_per_px
if self.machine == Machine.LASER:
self.output+=(f"G0 X{x_mm} Y{y_mm}\n")
elif self.machine == Machine.THREEAXIS:
self.output+=(f"G0 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):
x_mm = x * self.mm_per_px
y_mm = y * self.mm_per_px
if self.machine == Machine.LASER:
self.output += (f"G1 X{x_mm} Y{y_mm}\n")
elif self.machine == Machine.THREEAXIS:
self.output += (f"G0 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):
self.output += (";#################\n")
if self.machine == Machine.THREEAXIS:
self.go_to(x, y)
for _ in range(dip_number):
self.output += (f"G1 Z{depth}\n")
self.output += (f"G0 Z{self.safe_z}\n")
elif self.machine == Machine.LASER:
self.go_to(x, y)
self.set_pause()
def set_pause(self):
self.output += ("M0\n")
def end_gcode(self):
if self.machine == Machine.THREEAXIS:
self.go_to(0, 0)
self.output += ("M5\n")
# self.output.close()
def new_file(self, new_file_name):
self.end_gcode()
self.file = new_file_name
self.init_file()
from enum import Enum
class Machine(Enum):
LASER = 1
THREEAXIS = 2
class Gcode:
def __init__(self, file, mm_per_px, speed, machine, max_s=0, safe_z=0, work_z=0):
self.file = file
self.mm_per_px = mm_per_px
self.speed = speed
self.machine = machine
self.max_s = max_s
self.safe_z = safe_z
self.work_z = work_z
self.output = None
self.init_file()
def init_file(self):
# self.output = open(f"{self.file}.gcode", "w")
self.output = ""
self.output += ("G21 ;Unit to mm\n")
self.output += ("G90 ;Absolute positioning\n\n")
self.output += (f"F{self.speed}\n")
if self.machine == Machine.LASER:
self.output += (f"S{self.max_s}\n")
self.output += ("M3\n\n")
def draw_line(self, x1, y1, x2, y2):
self.go_to(x1, y1)
self.write_to(x2, y2)
def go_to(self, x, y):
x_mm = x * self.mm_per_px
y_mm = y * self.mm_per_px
if self.machine == Machine.LASER:
self.output+=(f"G0 X{x_mm} Y{y_mm}\n")
elif self.machine == Machine.THREEAXIS:
self.output+=(f"G0 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):
x_mm = x * self.mm_per_px
y_mm = y * self.mm_per_px
if self.machine == Machine.LASER:
self.output += (f"G1 X{x_mm} Y{y_mm}\n")
elif self.machine == Machine.THREEAXIS:
self.output += (f"G0 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):
self.output += (";#################\n")
if self.machine == Machine.THREEAXIS:
self.go_to(x, y)
for _ in range(dip_number):
self.output += (f"G1 Z{depth}\n")
self.output += (f"G0 Z{self.safe_z}\n")
elif self.machine == Machine.LASER:
self.go_to(x, y)
self.set_pause()
def set_pause(self):
self.output += ("M0\n")
def end_gcode(self):
if self.machine == Machine.THREEAXIS:
self.go_to(0, 0)
self.output += ("M5\n")
# self.output.close()
def new_file(self, new_file_name):
self.end_gcode()
self.file = new_file_name
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
- Dans getText fair appel à text_to_gcode, récupérer le gcode et l'envoyer en serial
- 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 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 Machine
machine_type = Machine.LASER
# Create an instance of the Gcode class
gcode = Gcode(
file="test_gcode", # Output file name (no .gcode extension)
mm_per_px=0.1, # Conversion factor: mm per pixel
speed=1000, # Speed in mm/min
machine=machine_type,
)
# Draw a line from (10, 20) to (30, 40)
gcode.draw_line(10, 20, 30, 40)
# Finish the G-code file
gcode.end_gcode()
from Gcode_generator import Gcode
from Gcode_generator import Machine
machine_type = Machine.LASER
# Create an instance of the Gcode class
gcode = Gcode(
file="test_gcode", # Output file name (no .gcode extension)
mm_per_px=0.1, # Conversion factor: mm per pixel
speed=1000, # Speed in mm/min
machine=machine_type,
)
# Draw a line from (10, 20) to (30, 40)
gcode.draw_line(10, 20, 30, 40)
# Finish the G-code file
gcode.end_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