text_to_gcode working, still need to implement return lines, and implement it in the web app
This commit is contained in:
78
plotter-app/Gcode_generator.py
Normal file
78
plotter-app/Gcode_generator.py
Normal file
@@ -0,0 +1,78 @@
|
||||
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.write("G21 ;Unit to mm\n")
|
||||
self.output.write("G90 ;Absolute positioning\n\n")
|
||||
self.output.write(f"F{self.speed}\n")
|
||||
if self.machine == Machine.LASER:
|
||||
self.output.write(f"S{self.max_s}\n")
|
||||
self.output.write("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.write(f"G0 X{x_mm} Y{y_mm}\n")
|
||||
elif self.machine == Machine.THREEAXIS:
|
||||
self.output.write(f"G0 Z{self.safe_z}\n")
|
||||
self.output.write(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.write(f"G1 X{x_mm} Y{y_mm}\n")
|
||||
elif self.machine == Machine.THREEAXIS:
|
||||
self.output.write(f"G0 Z{self.work_z}\n")
|
||||
self.output.write(f"G1 X{x_mm} Y{y_mm} Z{self.work_z}\n")
|
||||
|
||||
def refill(self, x, y, depth, dip_number):
|
||||
self.output.write(";#################\n")
|
||||
|
||||
if self.machine == Machine.THREEAXIS:
|
||||
self.go_to(x, y)
|
||||
for _ in range(dip_number):
|
||||
self.output.write(f"G1 Z{depth}\n")
|
||||
self.output.write(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.write("M0\n")
|
||||
|
||||
def end_gcode(self):
|
||||
if self.machine == Machine.THREEAXIS:
|
||||
self.go_to(0, 0)
|
||||
|
||||
self.output.write("M5\n")
|
||||
self.output.close()
|
||||
|
||||
def new_file(self, new_file_name):
|
||||
self.end_gcode()
|
||||
self.file = new_file_name
|
||||
self.init_file()
|
||||
22
plotter-app/gcode_test.py
Normal file
22
plotter-app/gcode_test.py
Normal file
@@ -0,0 +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,
|
||||
max_s=255 # Laser power (only for LASER machines)
|
||||
)
|
||||
|
||||
# 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")
|
||||
334
plotter-app/test_gcode.gcode
Normal file
334
plotter-app/test_gcode.gcode
Normal file
@@ -0,0 +1,334 @@
|
||||
G21 ;Unit to mm
|
||||
G90 ;Absolute positioning
|
||||
|
||||
F1000
|
||||
S255
|
||||
M3
|
||||
|
||||
G0 X0.7142857142857144 Y10.0
|
||||
G1 X2.5 Y2.5
|
||||
G0 X4.2857142857142865 Y10.0
|
||||
G1 X2.5 Y2.5
|
||||
G0 X4.2857142857142865 Y10.0
|
||||
G1 X6.071428571428572 Y2.5
|
||||
G0 X7.857142857142858 Y10.0
|
||||
G1 X6.071428571428572 Y2.5
|
||||
G0 X13.92857142857143 Y7.5
|
||||
G1 X13.92857142857143 Y2.5
|
||||
G0 X13.92857142857143 Y6.42857142857143
|
||||
G1 X13.214285714285717 Y7.142857142857143
|
||||
G0 X13.214285714285717 Y7.142857142857143
|
||||
G1 X12.5 Y7.5
|
||||
G0 X12.5 Y7.5
|
||||
G1 X11.42857142857143 Y7.5
|
||||
G0 X11.42857142857143 Y7.5
|
||||
G1 X10.714285714285715 Y7.142857142857143
|
||||
G0 X10.714285714285715 Y7.142857142857143
|
||||
G1 X10.000000000000002 Y6.42857142857143
|
||||
G0 X10.000000000000002 Y6.42857142857143
|
||||
G1 X9.642857142857146 Y5.357142857142858
|
||||
G0 X9.642857142857146 Y5.357142857142858
|
||||
G1 X9.642857142857146 Y4.642857142857143
|
||||
G0 X9.642857142857146 Y4.642857142857143
|
||||
G1 X10.000000000000002 Y3.5714285714285716
|
||||
G0 X10.000000000000002 Y3.5714285714285716
|
||||
G1 X10.714285714285715 Y2.8571428571428577
|
||||
G0 X10.714285714285715 Y2.8571428571428577
|
||||
G1 X11.42857142857143 Y2.5
|
||||
G0 X11.42857142857143 Y2.5
|
||||
G1 X12.5 Y2.5
|
||||
G0 X12.5 Y2.5
|
||||
G1 X13.214285714285717 Y2.8571428571428577
|
||||
G0 X13.214285714285717 Y2.8571428571428577
|
||||
G1 X13.92857142857143 Y3.5714285714285716
|
||||
G0 X16.78571428571429 Y10.0
|
||||
G1 X16.78571428571429 Y2.5
|
||||
G0 X19.642857142857146 Y10.0
|
||||
G1 X19.642857142857146 Y2.5
|
||||
G0 X22.85714285714286 Y10.0
|
||||
G1 X22.85714285714286 Y3.9285714285714293
|
||||
G0 X22.85714285714286 Y3.9285714285714293
|
||||
G1 X23.21428571428572 Y2.8571428571428577
|
||||
G0 X23.21428571428572 Y2.8571428571428577
|
||||
G1 X23.928571428571434 Y2.5
|
||||
G0 X23.928571428571434 Y2.5
|
||||
G1 X24.64285714285715 Y2.5
|
||||
G0 X21.785714285714292 Y7.5
|
||||
G1 X24.285714285714292 Y7.5
|
||||
G0 X26.428571428571434 Y5.357142857142858
|
||||
G1 X30.71428571428572 Y5.357142857142858
|
||||
G0 X30.71428571428572 Y5.357142857142858
|
||||
G1 X30.71428571428572 Y6.071428571428572
|
||||
G0 X30.71428571428572 Y6.071428571428572
|
||||
G1 X30.35714285714286 Y6.7857142857142865
|
||||
G0 X30.35714285714286 Y6.7857142857142865
|
||||
G1 X30.000000000000007 Y7.142857142857143
|
||||
G0 X30.000000000000007 Y7.142857142857143
|
||||
G1 X29.285714285714292 Y7.5
|
||||
G0 X29.285714285714292 Y7.5
|
||||
G1 X28.21428571428572 Y7.5
|
||||
G0 X28.21428571428572 Y7.5
|
||||
G1 X27.500000000000007 Y7.142857142857143
|
||||
G0 X27.500000000000007 Y7.142857142857143
|
||||
G1 X26.785714285714292 Y6.42857142857143
|
||||
G0 X26.785714285714292 Y6.42857142857143
|
||||
G1 X26.428571428571434 Y5.357142857142858
|
||||
G0 X26.428571428571434 Y5.357142857142858
|
||||
G1 X26.428571428571434 Y4.642857142857143
|
||||
G0 X26.428571428571434 Y4.642857142857143
|
||||
G1 X26.785714285714292 Y3.5714285714285716
|
||||
G0 X26.785714285714292 Y3.5714285714285716
|
||||
G1 X27.500000000000007 Y2.8571428571428577
|
||||
G0 X27.500000000000007 Y2.8571428571428577
|
||||
G1 X28.21428571428572 Y2.5
|
||||
G0 X28.21428571428572 Y2.5
|
||||
G1 X29.285714285714292 Y2.5
|
||||
G0 X29.285714285714292 Y2.5
|
||||
G1 X30.000000000000007 Y2.8571428571428577
|
||||
G0 X30.000000000000007 Y2.8571428571428577
|
||||
G1 X30.71428571428572 Y3.5714285714285716
|
||||
G0 X33.214285714285715 Y7.5
|
||||
G1 X33.214285714285715 Y2.5
|
||||
G0 X33.214285714285715 Y5.357142857142858
|
||||
G1 X33.57142857142858 Y6.42857142857143
|
||||
G0 X33.57142857142858 Y6.42857142857143
|
||||
G1 X34.28571428571429 Y7.142857142857143
|
||||
G0 X34.28571428571429 Y7.142857142857143
|
||||
G1 X35.00000000000001 Y7.5
|
||||
G0 X35.00000000000001 Y7.5
|
||||
G1 X36.07142857142858 Y7.5
|
||||
G0 X43.21428571428572 Y10.0
|
||||
G1 X43.571428571428584 Y9.642857142857144
|
||||
G0 X43.571428571428584 Y9.642857142857144
|
||||
G1 X43.92857142857144 Y10.0
|
||||
G0 X43.92857142857144 Y10.0
|
||||
G1 X43.571428571428584 Y10.35714285714286
|
||||
G0 X43.571428571428584 Y10.35714285714286
|
||||
G1 X43.21428571428572 Y10.0
|
||||
G0 X43.571428571428584 Y7.5
|
||||
G1 X43.571428571428584 Y2.5
|
||||
G0 X50.00000000000001 Y6.42857142857143
|
||||
G1 X49.64285714285715 Y7.142857142857143
|
||||
G0 X49.64285714285715 Y7.142857142857143
|
||||
G1 X48.571428571428584 Y7.5
|
||||
G0 X48.571428571428584 Y7.5
|
||||
G1 X47.50000000000001 Y7.5
|
||||
G0 X47.50000000000001 Y7.5
|
||||
G1 X46.42857142857144 Y7.142857142857143
|
||||
G0 X46.42857142857144 Y7.142857142857143
|
||||
G1 X46.071428571428584 Y6.42857142857143
|
||||
G0 X46.071428571428584 Y6.42857142857143
|
||||
G1 X46.42857142857144 Y5.714285714285715
|
||||
G0 X46.42857142857144 Y5.714285714285715
|
||||
G1 X47.14285714285715 Y5.357142857142858
|
||||
G0 X47.14285714285715 Y5.357142857142858
|
||||
G1 X48.92857142857144 Y5.0
|
||||
G0 X48.92857142857144 Y5.0
|
||||
G1 X49.64285714285715 Y4.642857142857143
|
||||
G0 X49.64285714285715 Y4.642857142857143
|
||||
G1 X50.00000000000001 Y3.9285714285714293
|
||||
G0 X50.00000000000001 Y3.9285714285714293
|
||||
G1 X50.00000000000001 Y3.5714285714285716
|
||||
G0 X50.00000000000001 Y3.5714285714285716
|
||||
G1 X49.64285714285715 Y2.8571428571428577
|
||||
G0 X49.64285714285715 Y2.8571428571428577
|
||||
G1 X48.571428571428584 Y2.5
|
||||
G0 X48.571428571428584 Y2.5
|
||||
G1 X47.50000000000001 Y2.5
|
||||
G0 X47.50000000000001 Y2.5
|
||||
G1 X46.42857142857144 Y2.8571428571428577
|
||||
G0 X46.42857142857144 Y2.8571428571428577
|
||||
G1 X46.071428571428584 Y3.5714285714285716
|
||||
G0 X62.142857142857146 Y7.5
|
||||
G1 X62.142857142857146 Y2.5
|
||||
G0 X62.142857142857146 Y6.42857142857143
|
||||
G1 X61.42857142857144 Y7.142857142857143
|
||||
G0 X61.42857142857144 Y7.142857142857143
|
||||
G1 X60.71428571428572 Y7.5
|
||||
G0 X60.71428571428572 Y7.5
|
||||
G1 X59.642857142857146 Y7.5
|
||||
G0 X59.642857142857146 Y7.5
|
||||
G1 X58.92857142857144 Y7.142857142857143
|
||||
G0 X58.92857142857144 Y7.142857142857143
|
||||
G1 X58.21428571428572 Y6.42857142857143
|
||||
G0 X58.21428571428572 Y6.42857142857143
|
||||
G1 X57.85714285714286 Y5.357142857142858
|
||||
G0 X57.85714285714286 Y5.357142857142858
|
||||
G1 X57.85714285714286 Y4.642857142857143
|
||||
G0 X57.85714285714286 Y4.642857142857143
|
||||
G1 X58.21428571428572 Y3.5714285714285716
|
||||
G0 X58.21428571428572 Y3.5714285714285716
|
||||
G1 X58.92857142857144 Y2.8571428571428577
|
||||
G0 X58.92857142857144 Y2.8571428571428577
|
||||
G1 X59.642857142857146 Y2.5
|
||||
G0 X59.642857142857146 Y2.5
|
||||
G1 X60.71428571428572 Y2.5
|
||||
G0 X60.71428571428572 Y2.5
|
||||
G1 X61.42857142857144 Y2.8571428571428577
|
||||
G0 X61.42857142857144 Y2.8571428571428577
|
||||
G1 X62.142857142857146 Y3.5714285714285716
|
||||
G0 X70.35714285714286 Y7.5
|
||||
G1 X71.78571428571429 Y2.5
|
||||
G0 X73.21428571428572 Y7.5
|
||||
G1 X71.78571428571429 Y2.5
|
||||
G0 X73.21428571428572 Y7.5
|
||||
G1 X74.64285714285715 Y2.5
|
||||
G0 X76.07142857142858 Y7.5
|
||||
G1 X74.64285714285715 Y2.5
|
||||
G0 X82.5 Y7.5
|
||||
G1 X82.5 Y2.5
|
||||
G0 X82.5 Y6.42857142857143
|
||||
G1 X81.78571428571429 Y7.142857142857143
|
||||
G0 X81.78571428571429 Y7.142857142857143
|
||||
G1 X81.07142857142858 Y7.5
|
||||
G0 X81.07142857142858 Y7.5
|
||||
G1 X80.0 Y7.5
|
||||
G0 X80.0 Y7.5
|
||||
G1 X79.28571428571429 Y7.142857142857143
|
||||
G0 X79.28571428571429 Y7.142857142857143
|
||||
G1 X78.57142857142858 Y6.42857142857143
|
||||
G0 X78.57142857142858 Y6.42857142857143
|
||||
G1 X78.21428571428572 Y5.357142857142858
|
||||
G0 X78.21428571428572 Y5.357142857142858
|
||||
G1 X78.21428571428572 Y4.642857142857143
|
||||
G0 X78.21428571428572 Y4.642857142857143
|
||||
G1 X78.57142857142858 Y3.5714285714285716
|
||||
G0 X78.57142857142858 Y3.5714285714285716
|
||||
G1 X79.28571428571429 Y2.8571428571428577
|
||||
G0 X79.28571428571429 Y2.8571428571428577
|
||||
G1 X80.0 Y2.5
|
||||
G0 X80.0 Y2.5
|
||||
G1 X81.07142857142858 Y2.5
|
||||
G0 X81.07142857142858 Y2.5
|
||||
G1 X81.78571428571429 Y2.8571428571428577
|
||||
G0 X81.78571428571429 Y2.8571428571428577
|
||||
G1 X82.5 Y3.5714285714285716
|
||||
G0 X85.35714285714288 Y10.0
|
||||
G1 X85.35714285714288 Y2.5
|
||||
G0 X88.21428571428572 Y10.0
|
||||
G1 X88.21428571428572 Y2.5
|
||||
G0 X96.78571428571429 Y7.5
|
||||
G1 X96.78571428571429 Y0.0
|
||||
G0 X96.78571428571429 Y6.42857142857143
|
||||
G1 X97.5 Y7.142857142857143
|
||||
G0 X97.5 Y7.142857142857143
|
||||
G1 X98.21428571428572 Y7.5
|
||||
G0 X98.21428571428572 Y7.5
|
||||
G1 X99.28571428571429 Y7.5
|
||||
G0 X99.28571428571429 Y7.5
|
||||
G1 X100.0 Y7.142857142857143
|
||||
G0 X100.0 Y7.142857142857143
|
||||
G1 X100.71428571428572 Y6.42857142857143
|
||||
G0 X100.71428571428572 Y6.42857142857143
|
||||
G1 X101.07142857142857 Y5.357142857142858
|
||||
G0 X101.07142857142857 Y5.357142857142858
|
||||
G1 X101.07142857142857 Y4.642857142857143
|
||||
G0 X101.07142857142857 Y4.642857142857143
|
||||
G1 X100.71428571428572 Y3.5714285714285716
|
||||
G0 X100.71428571428572 Y3.5714285714285716
|
||||
G1 X100.0 Y2.8571428571428577
|
||||
G0 X100.0 Y2.8571428571428577
|
||||
G1 X99.28571428571429 Y2.5
|
||||
G0 X99.28571428571429 Y2.5
|
||||
G1 X98.21428571428572 Y2.5
|
||||
G0 X98.21428571428572 Y2.5
|
||||
G1 X97.5 Y2.8571428571428577
|
||||
G0 X97.5 Y2.8571428571428577
|
||||
G1 X96.78571428571429 Y3.5714285714285716
|
||||
G0 X103.57142857142858 Y10.0
|
||||
G1 X103.57142857142858 Y2.5
|
||||
G0 X107.85714285714288 Y7.5
|
||||
G1 X107.14285714285714 Y7.142857142857143
|
||||
G0 X107.14285714285714 Y7.142857142857143
|
||||
G1 X106.42857142857143 Y6.42857142857143
|
||||
G0 X106.42857142857143 Y6.42857142857143
|
||||
G1 X106.07142857142858 Y5.357142857142858
|
||||
G0 X106.07142857142858 Y5.357142857142858
|
||||
G1 X106.07142857142858 Y4.642857142857143
|
||||
G0 X106.07142857142858 Y4.642857142857143
|
||||
G1 X106.42857142857143 Y3.5714285714285716
|
||||
G0 X106.42857142857143 Y3.5714285714285716
|
||||
G1 X107.14285714285714 Y2.8571428571428577
|
||||
G0 X107.14285714285714 Y2.8571428571428577
|
||||
G1 X107.85714285714288 Y2.5
|
||||
G0 X107.85714285714288 Y2.5
|
||||
G1 X108.92857142857143 Y2.5
|
||||
G0 X108.92857142857143 Y2.5
|
||||
G1 X109.64285714285714 Y2.8571428571428577
|
||||
G0 X109.64285714285714 Y2.8571428571428577
|
||||
G1 X110.35714285714288 Y3.5714285714285716
|
||||
G0 X110.35714285714288 Y3.5714285714285716
|
||||
G1 X110.71428571428572 Y4.642857142857143
|
||||
G0 X110.71428571428572 Y4.642857142857143
|
||||
G1 X110.71428571428572 Y5.357142857142858
|
||||
G0 X110.71428571428572 Y5.357142857142858
|
||||
G1 X110.35714285714288 Y6.42857142857143
|
||||
G0 X110.35714285714288 Y6.42857142857143
|
||||
G1 X109.64285714285714 Y7.142857142857143
|
||||
G0 X109.64285714285714 Y7.142857142857143
|
||||
G1 X108.92857142857143 Y7.5
|
||||
G0 X108.92857142857143 Y7.5
|
||||
G1 X107.85714285714288 Y7.5
|
||||
G0 X113.57142857142858 Y10.0
|
||||
G1 X113.57142857142858 Y3.9285714285714293
|
||||
G0 X113.57142857142858 Y3.9285714285714293
|
||||
G1 X113.92857142857143 Y2.8571428571428577
|
||||
G0 X113.92857142857143 Y2.8571428571428577
|
||||
G1 X114.64285714285717 Y2.5
|
||||
G0 X114.64285714285717 Y2.5
|
||||
G1 X115.35714285714288 Y2.5
|
||||
G0 X112.5 Y7.5
|
||||
G1 X115.0 Y7.5
|
||||
G0 X117.85714285714288 Y10.0
|
||||
G1 X117.85714285714288 Y3.9285714285714293
|
||||
G0 X117.85714285714288 Y3.9285714285714293
|
||||
G1 X118.21428571428572 Y2.8571428571428577
|
||||
G0 X118.21428571428572 Y2.8571428571428577
|
||||
G1 X118.92857142857144 Y2.5
|
||||
G0 X118.92857142857144 Y2.5
|
||||
G1 X119.64285714285717 Y2.5
|
||||
G0 X116.78571428571429 Y7.5
|
||||
G1 X119.28571428571429 Y7.5
|
||||
G0 X121.42857142857144 Y5.357142857142858
|
||||
G1 X125.71428571428574 Y5.357142857142858
|
||||
G0 X125.71428571428574 Y5.357142857142858
|
||||
G1 X125.71428571428574 Y6.071428571428572
|
||||
G0 X125.71428571428574 Y6.071428571428572
|
||||
G1 X125.35714285714288 Y6.7857142857142865
|
||||
G0 X125.35714285714288 Y6.7857142857142865
|
||||
G1 X125.0 Y7.142857142857143
|
||||
G0 X125.0 Y7.142857142857143
|
||||
G1 X124.28571428571429 Y7.5
|
||||
G0 X124.28571428571429 Y7.5
|
||||
G1 X123.21428571428574 Y7.5
|
||||
G0 X123.21428571428574 Y7.5
|
||||
G1 X122.5 Y7.142857142857143
|
||||
G0 X122.5 Y7.142857142857143
|
||||
G1 X121.78571428571429 Y6.42857142857143
|
||||
G0 X121.78571428571429 Y6.42857142857143
|
||||
G1 X121.42857142857144 Y5.357142857142858
|
||||
G0 X121.42857142857144 Y5.357142857142858
|
||||
G1 X121.42857142857144 Y4.642857142857143
|
||||
G0 X121.42857142857144 Y4.642857142857143
|
||||
G1 X121.78571428571429 Y3.5714285714285716
|
||||
G0 X121.78571428571429 Y3.5714285714285716
|
||||
G1 X122.5 Y2.8571428571428577
|
||||
G0 X122.5 Y2.8571428571428577
|
||||
G1 X123.21428571428574 Y2.5
|
||||
G0 X123.21428571428574 Y2.5
|
||||
G1 X124.28571428571429 Y2.5
|
||||
G0 X124.28571428571429 Y2.5
|
||||
G1 X125.0 Y2.8571428571428577
|
||||
G0 X125.0 Y2.8571428571428577
|
||||
G1 X125.71428571428574 Y3.5714285714285716
|
||||
G0 X128.21428571428572 Y7.5
|
||||
G1 X128.21428571428572 Y2.5
|
||||
G0 X128.21428571428572 Y5.357142857142858
|
||||
G1 X128.57142857142858 Y6.42857142857143
|
||||
G0 X128.57142857142858 Y6.42857142857143
|
||||
G1 X129.2857142857143 Y7.142857142857143
|
||||
G0 X129.2857142857143 Y7.142857142857143
|
||||
G1 X130.0 Y7.5
|
||||
G0 X130.0 Y7.5
|
||||
G1 X131.07142857142858 Y7.5
|
||||
M5
|
||||
32
plotter-app/text_to_gcode.py
Normal file
32
plotter-app/text_to_gcode.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from Gcode_generator import Gcode
|
||||
from Gcode_generator import Machine
|
||||
|
||||
from HersheyFonts import HersheyFonts
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
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,
|
||||
max_s=255 # Laser power (only for LASER machines)
|
||||
)
|
||||
|
||||
|
||||
thefont = HersheyFonts()
|
||||
thefont.load_default_font()
|
||||
thefont.normalize_rendering(100)
|
||||
for (x1, y1), (x2, y2) in thefont.lines_for_text('Wallter is a wall plotter'):
|
||||
gcode.draw_line(x1, y1 ,x2 ,y2)
|
||||
|
||||
# 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")
|
||||
Reference in New Issue
Block a user