Files
wallter/SOFTWARE/plotter-app/text_to_gcode.py
2024-11-21 12:35:04 +01:00

57 lines
1.3 KiB
Python

from Gcode_generator import Gcode
from Gcode_generator import Machine
from HersheyFonts import HersheyFonts
import matplotlib.pyplot as plt
machine_type = Machine.THREEAXIS
vertical_offset = 100
def convert_text(text):
# Create an instance of the Gcode class
gcode = Gcode(
file="test_gcode", # Output file name (no .gcode extension)
mm_per_px=0.5, # Conversion factor: mm per pixel
speed=9000, # Speed in mm/min
machine=machine_type,
max_s=255, # Laser power (only for LASER machines)
safe_z= 5,
work_z= 0
)
thefont = HersheyFonts()
thefont.load_default_font()
thefont.normalize_rendering(100)
line_count = 1 # starts at 1 to offset the first line below y = 0
for line in text.splitlines():
text_segments = thefont.lines_for_text(line)
last_p2 = (0,0)
for (x1, y1), (x2, y2) in text_segments:
y1 -= vertical_offset * line_count
y2 -= vertical_offset * line_count
if((x1, y1) == last_p2):
gcode.write_to(x2 ,y2)
else:
gcode.draw_line(x1, y1, x2, y2)
last_p2 = (x2,y2)
line_count += 1
# Finish the G-code file
gcode.end_gcode()
return gcode.output