Merge branch 'main' of ssh://git.erg.school:2222/P039/wallter

This commit is contained in:
2024-11-20 16:21:49 +01:00
7 changed files with 16421 additions and 27 deletions

15482
PLAN-DECOUPE/00wallterfoot.dxf Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,9 @@
from flask import Flask, render_template, request from flask import Flask, render_template, request
import sys import sys
import os import os
from streamer import stream_gcode from streamer import stream_gcode_websocket
from text_to_gcode import convert_text
import svgToGcode import svgToGcode
app = Flask(__name__) app = Flask(__name__)
@@ -40,7 +42,7 @@ def getSVG():
gcode = svgToGcode.convertToGcode(file.read() ,output) gcode = svgToGcode.convertToGcode(file.read() ,output)
stream_gcode(gcode.splitlines()) stream_gcode_websocket(gcode.splitlines())
print(gcode) print(gcode)
print("done!") print("done!")
else: else:
@@ -60,40 +62,57 @@ def getGcode():
gcode = file.readlines() gcode = file.readlines()
print(str(gcode)) print(str(gcode))
stream_gcode(gcode) stream_gcode_websocket(gcode)
else: else:
print('empty file or unaccepted file') print('empty file or unaccepted file')
return render_template("form.html") return render_template("form.html")
@app.route("/text", methods=["POST", "GET"]) @app.route("/text", methods=["POST", "GET"])
def getText(): def getText():
if request.method == "POST": if request.method == "POST":
txt = request.form["txt"].strip() txt = request.form["txt"].strip() # Récupère le texte de la textarea
print(txt)
if txt: if txt:
# Découpe le texte en lignes de 20 caractères max # Conserver les retours à la ligne dans le texte saisi
formatted_text = "" formatted_text = ""
for line in txt.splitlines():
words = line.split()
current_line = "" current_line = ""
for word in txt.split(): for word in words:
if len(current_line) + len(word) + 1 > 20: if len(current_line) + len(word) + 1 > 20: # Limite de caractères par ligne
formatted_text += current_line.strip() + "\n" formatted_text = formatted_text + current_line.strip() + "\n"
current_line = word + " " current_line = word + " "
else: else:
current_line += word + " " # Ajoute le mot à la ligne actuelle current_line = current_line + word + " "
if current_line.strip(): # Ajoute la dernière ligne
formatted_text = formatted_text + current_line.strip() + "\n"
# Ajoute la dernière ligne si elle n'est pas vide print("Formatted text with line breaks:")
if current_line.strip(): print(formatted_text)
formatted_text += current_line.strip()
print("Original text:", txt) # Générez le G-code à partir du texte formaté
print("Formatted text with line breaks:") gcode_output = convert_text(formatted_text)
print(formatted_text) print("G-code generated:")
print(gcode_output)
# Sauvegardez le fichier G-code
gcode_filename = "retourligne.gcode"
with open(gcode_filename, "w") as gcode_file:
gcode_file.write(gcode_output)
stream_gcode_websocket(gcode_output) #envoi du gcode généré au plotter
print(f"G-code saved to {gcode_filename}")
else:
print('empty text')
else:
print('empty text')
return render_template("form.html") return render_template("form.html")

View File

@@ -1,13 +1,25 @@
blinker==1.9.0 blinker==1.9.0
click==8.1.7 click==8.1.7
contourpy==1.3.1
cycler==0.12.1
Flask==3.1.0 Flask==3.1.0
Flask-FlatPages==0.8.2 Flask-FlatPages==0.8.2
fonttools==4.55.0
Hershey-Fonts==2.1.0
itsdangerous==2.2.0 itsdangerous==2.2.0
Jinja2==3.1.4 Jinja2==3.1.4
kiwisolver==1.4.7
Markdown==3.7 Markdown==3.7
MarkupSafe==3.0.2 MarkupSafe==3.0.2
matplotlib==3.9.2
numpy==2.1.3
packaging==24.2
pillow==11.0.0
pyparsing==3.2.0
pyserial==3.5 pyserial==3.5
python-dateutil==2.9.0.post0
PyYAML==6.0.2 PyYAML==6.0.2
six==1.16.0 six==1.16.0
svg-to-gcode==1.5.4 svg-to-gcode==1.5.4
Werkzeug==3.1.3 Werkzeug==3.1.3
websocket-client

View File

@@ -0,0 +1,783 @@
G21 ;Unit to mm
G90 ;Absolute positioning
F1000
M3
G0 Z5
G0 X5.357142857142858 Y0.0 Z5
G0 Z0
G1 X5.357142857142858 Y-7.5 Z0
G0 Z5
G0 X5.357142857142858 Y-3.571428571428571 Z5
G0 Z0
G1 X4.642857142857143 Y-2.857142857142857 Z0
G0 Z0
G1 X3.928571428571429 Y-2.5 Z0
G0 Z0
G1 X2.8571428571428577 Y-2.5 Z0
G0 Z0
G1 X2.1428571428571432 Y-2.857142857142857 Z0
G0 Z0
G1 X1.4285714285714288 Y-3.571428571428571 Z0
G0 Z0
G1 X1.0714285714285716 Y-4.642857142857142 Z0
G0 Z0
G1 X1.0714285714285716 Y-5.357142857142858 Z0
G0 Z0
G1 X1.4285714285714288 Y-6.428571428571428 Z0
G0 Z0
G1 X2.1428571428571432 Y-7.142857142857143 Z0
G0 Z0
G1 X2.8571428571428577 Y-7.5 Z0
G0 Z0
G1 X3.928571428571429 Y-7.5 Z0
G0 Z0
G1 X4.642857142857143 Y-7.142857142857143 Z0
G0 Z0
G1 X5.357142857142858 Y-6.428571428571428 Z0
G0 Z5
G0 X10.35714285714286 Y0.0 Z5
G0 Z0
G1 X9.642857142857144 Y0.0 Z0
G0 Z0
G1 X8.928571428571429 Y-0.357142857142857 Z0
G0 Z0
G1 X8.571428571428573 Y-1.428571428571428 Z0
G0 Z0
G1 X8.571428571428573 Y-7.5 Z0
G0 Z5
G0 X7.5 Y-2.5 Z5
G0 Z0
G1 X10.0 Y-2.5 Z0
G0 Z5
G0 X16.071428571428573 Y-3.571428571428571 Z5
G0 Z0
G1 X15.714285714285717 Y-2.857142857142857 Z0
G0 Z0
G1 X14.642857142857146 Y-2.5 Z0
G0 Z0
G1 X13.571428571428573 Y-2.5 Z0
G0 Z0
G1 X12.500000000000002 Y-2.857142857142857 Z0
G0 Z0
G1 X12.142857142857146 Y-3.571428571428571 Z0
G0 Z0
G1 X12.500000000000002 Y-4.285714285714286 Z0
G0 Z0
G1 X13.214285714285717 Y-4.642857142857142 Z0
G0 Z0
G1 X15.0 Y-5.0 Z0
G0 Z0
G1 X15.714285714285717 Y-5.357142857142858 Z0
G0 Z0
G1 X16.071428571428573 Y-6.071428571428571 Z0
G0 Z0
G1 X16.071428571428573 Y-6.428571428571428 Z0
G0 Z0
G1 X15.714285714285717 Y-7.142857142857143 Z0
G0 Z0
G1 X14.642857142857146 Y-7.5 Z0
G0 Z0
G1 X13.571428571428573 Y-7.5 Z0
G0 Z0
G1 X12.500000000000002 Y-7.142857142857143 Z0
G0 Z0
G1 X12.142857142857146 Y-6.428571428571428 Z0
G0 Z5
G0 X22.500000000000004 Y-2.5 Z5
G0 Z0
G1 X22.500000000000004 Y-8.214285714285714 Z0
G0 Z0
G1 X22.142857142857146 Y-9.285714285714286 Z0
G0 Z0
G1 X21.785714285714292 Y-9.642857142857144 Z0
G0 Z0
G1 X21.071428571428573 Y-10.0 Z0
G0 Z0
G1 X20.000000000000004 Y-10.0 Z0
G0 Z0
G1 X19.285714285714292 Y-9.642857142857144 Z0
G0 Z5
G0 X22.500000000000004 Y-3.571428571428571 Z5
G0 Z0
G1 X21.785714285714292 Y-2.857142857142857 Z0
G0 Z0
G1 X21.071428571428573 Y-2.5 Z0
G0 Z0
G1 X20.000000000000004 Y-2.5 Z0
G0 Z0
G1 X19.285714285714292 Y-2.857142857142857 Z0
G0 Z0
G1 X18.571428571428573 Y-3.571428571428571 Z0
G0 Z0
G1 X18.21428571428572 Y-4.642857142857142 Z0
G0 Z0
G1 X18.21428571428572 Y-5.357142857142858 Z0
G0 Z0
G1 X18.571428571428573 Y-6.428571428571428 Z0
G0 Z0
G1 X19.285714285714292 Y-7.142857142857143 Z0
G0 Z0
G1 X20.000000000000004 Y-7.5 Z0
G0 Z0
G1 X21.071428571428573 Y-7.5 Z0
G0 Z0
G1 X21.785714285714292 Y-7.142857142857143 Z0
G0 Z0
G1 X22.500000000000004 Y-6.428571428571428 Z0
G0 Z5
G0 X25.35714285714286 Y0.0 Z5
G0 Z0
G1 X25.35714285714286 Y-7.5 Z0
G0 Z5
G0 X25.35714285714286 Y-3.928571428571429 Z5
G0 Z0
G1 X26.428571428571434 Y-2.857142857142857 Z0
G0 Z0
G1 X27.142857142857146 Y-2.5 Z0
G0 Z0
G1 X28.21428571428572 Y-2.5 Z0
G0 Z0
G1 X28.928571428571434 Y-2.857142857142857 Z0
G0 Z0
G1 X29.285714285714292 Y-3.928571428571429 Z0
G0 Z0
G1 X29.285714285714292 Y-7.5 Z0
G0 Z5
G0 X41.42857142857144 Y-3.571428571428571 Z5
G0 Z0
G1 X41.071428571428584 Y-2.857142857142857 Z0
G0 Z0
G1 X40.00000000000001 Y-2.5 Z0
G0 Z0
G1 X38.92857142857144 Y-2.5 Z0
G0 Z0
G1 X37.85714285714286 Y-2.857142857142857 Z0
G0 Z0
G1 X37.50000000000001 Y-3.571428571428571 Z0
G0 Z0
G1 X37.85714285714286 Y-4.285714285714286 Z0
G0 Z0
G1 X38.571428571428584 Y-4.642857142857142 Z0
G0 Z0
G1 X40.35714285714286 Y-5.0 Z0
G0 Z0
G1 X41.071428571428584 Y-5.357142857142858 Z0
G0 Z0
G1 X41.42857142857144 Y-6.071428571428571 Z0
G0 Z0
G1 X41.42857142857144 Y-6.428571428571428 Z0
G0 Z0
G1 X41.071428571428584 Y-7.142857142857143 Z0
G0 Z0
G1 X40.00000000000001 Y-7.5 Z0
G0 Z0
G1 X38.92857142857144 Y-7.5 Z0
G0 Z0
G1 X37.85714285714286 Y-7.142857142857143 Z0
G0 Z0
G1 X37.50000000000001 Y-6.428571428571428 Z0
G0 Z5
G0 X44.28571428571429 Y0.0 Z5
G0 Z0
G1 X44.64285714285715 Y-0.357142857142857 Z0
G0 Z0
G1 X45.00000000000001 Y0.0 Z0
G0 Z0
G1 X44.64285714285715 Y0.35714285714285837 Z0
G0 Z0
G1 X44.28571428571429 Y0.0 Z0
G0 Z5
G0 X44.64285714285715 Y-2.5 Z5
G0 Z0
G1 X44.64285714285715 Y-8.571428571428573 Z0
G0 Z0
G1 X44.28571428571429 Y-9.642857142857144 Z0
G0 Z0
G1 X43.571428571428584 Y-10.0 Z0
G0 Z0
G1 X42.85714285714286 Y-10.0 Z0
G0 Z5
G0 X46.7857142857143 Y-2.5 Z5
G0 Z0
G1 X48.92857142857144 Y-7.5 Z0
G0 Z5
G0 X51.071428571428584 Y-2.5 Z5
G0 Z0
G1 X48.92857142857144 Y-7.5 Z0
G0 Z0
G1 X48.21428571428572 Y-8.928571428571429 Z0
G0 Z0
G1 X47.50000000000001 Y-9.642857142857144 Z0
G0 Z0
G1 X46.7857142857143 Y-10.0 Z0
G0 Z0
G1 X46.42857142857144 Y-10.0 Z0
G0 Z5
G0 X53.21428571428572 Y0.0 Z5
G0 Z0
G1 X53.21428571428572 Y-7.5 Z0
G0 Z5
G0 X53.21428571428572 Y-3.571428571428571 Z5
G0 Z0
G1 X53.92857142857144 Y-2.857142857142857 Z0
G0 Z0
G1 X54.642857142857146 Y-2.5 Z0
G0 Z0
G1 X55.71428571428572 Y-2.5 Z0
G0 Z0
G1 X56.42857142857144 Y-2.857142857142857 Z0
G0 Z0
G1 X57.142857142857146 Y-3.571428571428571 Z0
G0 Z0
G1 X57.5 Y-4.642857142857142 Z0
G0 Z0
G1 X57.5 Y-5.357142857142858 Z0
G0 Z0
G1 X57.142857142857146 Y-6.428571428571428 Z0
G0 Z0
G1 X56.42857142857144 Y-7.142857142857143 Z0
G0 Z0
G1 X55.71428571428572 Y-7.5 Z0
G0 Z0
G1 X54.642857142857146 Y-7.5 Z0
G0 Z0
G1 X53.92857142857144 Y-7.142857142857143 Z0
G0 Z0
G1 X53.21428571428572 Y-6.428571428571428 Z0
G0 Z5
G0 X63.571428571428584 Y-3.571428571428571 Z5
G0 Z0
G1 X63.21428571428572 Y-2.857142857142857 Z0
G0 Z0
G1 X62.142857142857146 Y-2.5 Z0
G0 Z0
G1 X61.071428571428584 Y-2.5 Z0
G0 Z0
G1 X60.000000000000014 Y-2.857142857142857 Z0
G0 Z0
G1 X59.642857142857146 Y-3.571428571428571 Z0
G0 Z0
G1 X60.000000000000014 Y-4.285714285714286 Z0
G0 Z0
G1 X60.71428571428572 Y-4.642857142857142 Z0
G0 Z0
G1 X62.500000000000014 Y-5.0 Z0
G0 Z0
G1 X63.21428571428572 Y-5.357142857142858 Z0
G0 Z0
G1 X63.571428571428584 Y-6.071428571428571 Z0
G0 Z0
G1 X63.571428571428584 Y-6.428571428571428 Z0
G0 Z0
G1 X63.21428571428572 Y-7.142857142857143 Z0
G0 Z0
G1 X62.142857142857146 Y-7.5 Z0
G0 Z0
G1 X61.071428571428584 Y-7.5 Z0
G0 Z0
G1 X60.000000000000014 Y-7.142857142857143 Z0
G0 Z0
G1 X59.642857142857146 Y-6.428571428571428 Z0
G0 Z5
G0 X70.0 Y0.0 Z5
G0 Z0
G1 X70.0 Y-7.5 Z0
G0 Z5
G0 X70.0 Y-3.571428571428571 Z5
G0 Z0
G1 X69.28571428571429 Y-2.857142857142857 Z0
G0 Z0
G1 X68.57142857142858 Y-2.5 Z0
G0 Z0
G1 X67.5 Y-2.5 Z0
G0 Z0
G1 X66.78571428571429 Y-2.857142857142857 Z0
G0 Z0
G1 X66.07142857142858 Y-3.571428571428571 Z0
G0 Z0
G1 X65.71428571428571 Y-4.642857142857142 Z0
G0 Z0
G1 X65.71428571428571 Y-5.357142857142858 Z0
G0 Z0
G1 X66.07142857142858 Y-6.428571428571428 Z0
G0 Z0
G1 X66.78571428571429 Y-7.142857142857143 Z0
G0 Z0
G1 X67.5 Y-7.5 Z0
G0 Z0
G1 X68.57142857142858 Y-7.5 Z0
G0 Z0
G1 X69.28571428571429 Y-7.142857142857143 Z0
G0 Z0
G1 X70.0 Y-6.428571428571428 Z0
G0 Z5
G0 X73.21428571428572 Y0.0 Z5
G0 Z0
G1 X73.57142857142858 Y-0.357142857142857 Z0
G0 Z0
G1 X73.92857142857143 Y0.0 Z0
G0 Z0
G1 X73.57142857142858 Y0.35714285714285837 Z0
G0 Z0
G1 X73.21428571428572 Y0.0 Z0
G0 Z5
G0 X73.57142857142858 Y-2.5 Z5
G0 Z0
G1 X73.57142857142858 Y-8.571428571428573 Z0
G0 Z0
G1 X73.21428571428572 Y-9.642857142857144 Z0
G0 Z0
G1 X72.5 Y-10.0 Z0
G0 Z0
G1 X71.78571428571429 Y-10.0 Z0
G0 Z5
G0 X80.35714285714286 Y-2.5 Z5
G0 Z0
G1 X80.35714285714286 Y-8.214285714285714 Z0
G0 Z0
G1 X80.0 Y-9.285714285714286 Z0
G0 Z0
G1 X79.64285714285715 Y-9.642857142857144 Z0
G0 Z0
G1 X78.92857142857144 Y-10.0 Z0
G0 Z0
G1 X77.85714285714286 Y-10.0 Z0
G0 Z0
G1 X77.14285714285715 Y-9.642857142857144 Z0
G0 Z5
G0 X80.35714285714286 Y-3.571428571428571 Z5
G0 Z0
G1 X79.64285714285715 Y-2.857142857142857 Z0
G0 Z0
G1 X78.92857142857144 Y-2.5 Z0
G0 Z0
G1 X77.85714285714286 Y-2.5 Z0
G0 Z0
G1 X77.14285714285715 Y-2.857142857142857 Z0
G0 Z0
G1 X76.42857142857143 Y-3.571428571428571 Z0
G0 Z0
G1 X76.07142857142857 Y-4.642857142857142 Z0
G0 Z0
G1 X76.07142857142857 Y-5.357142857142858 Z0
G0 Z0
G1 X76.42857142857143 Y-6.428571428571428 Z0
G0 Z0
G1 X77.14285714285715 Y-7.142857142857143 Z0
G0 Z0
G1 X77.85714285714286 Y-7.5 Z0
G0 Z0
G1 X78.92857142857144 Y-7.5 Z0
G0 Z0
G1 X79.64285714285715 Y-7.142857142857143 Z0
G0 Z0
G1 X80.35714285714286 Y-6.428571428571428 Z0
G0 Z5
G0 X1.4285714285714288 Y-10.0 Z5
G0 Z0
G1 X1.4285714285714288 Y-17.5 Z0
G0 Z5
G0 X1.4285714285714288 Y-13.571428571428573 Z5
G0 Z0
G1 X2.1428571428571432 Y-12.857142857142856 Z0
G0 Z0
G1 X2.8571428571428577 Y-12.5 Z0
G0 Z0
G1 X3.928571428571429 Y-12.5 Z0
G0 Z0
G1 X4.642857142857143 Y-12.857142857142856 Z0
G0 Z0
G1 X5.357142857142858 Y-13.571428571428573 Z0
G0 Z0
G1 X5.714285714285715 Y-14.642857142857142 Z0
G0 Z0
G1 X5.714285714285715 Y-15.357142857142856 Z0
G0 Z0
G1 X5.357142857142858 Y-16.428571428571427 Z0
G0 Z0
G1 X4.642857142857143 Y-17.142857142857142 Z0
G0 Z0
G1 X3.928571428571429 Y-17.5 Z0
G0 Z0
G1 X2.8571428571428577 Y-17.5 Z0
G0 Z0
G1 X2.1428571428571432 Y-17.142857142857142 Z0
G0 Z0
G1 X1.4285714285714288 Y-16.428571428571427 Z0
G0 Z5
G0 X12.142857142857146 Y-10.0 Z5
G0 Z0
G1 X12.142857142857146 Y-17.5 Z0
G0 Z5
G0 X12.142857142857146 Y-13.571428571428573 Z5
G0 Z0
G1 X11.42857142857143 Y-12.857142857142856 Z0
G0 Z0
G1 X10.714285714285715 Y-12.5 Z0
G0 Z0
G1 X9.642857142857144 Y-12.5 Z0
G0 Z0
G1 X8.928571428571429 Y-12.857142857142856 Z0
G0 Z0
G1 X8.214285714285715 Y-13.571428571428573 Z0
G0 Z0
G1 X7.8571428571428585 Y-14.642857142857142 Z0
G0 Z0
G1 X7.8571428571428585 Y-15.357142857142856 Z0
G0 Z0
G1 X8.214285714285715 Y-16.428571428571427 Z0
G0 Z0
G1 X8.928571428571429 Y-17.142857142857142 Z0
G0 Z0
G1 X9.642857142857144 Y-17.5 Z0
G0 Z0
G1 X10.714285714285715 Y-17.5 Z0
G0 Z0
G1 X11.42857142857143 Y-17.142857142857142 Z0
G0 Z0
G1 X12.142857142857146 Y-16.428571428571427 Z0
G0 Z5
G0 X18.571428571428573 Y-13.571428571428573 Z5
G0 Z0
G1 X18.21428571428572 Y-12.857142857142856 Z0
G0 Z0
G1 X17.142857142857146 Y-12.5 Z0
G0 Z0
G1 X16.071428571428573 Y-12.5 Z0
G0 Z0
G1 X15.0 Y-12.857142857142856 Z0
G0 Z0
G1 X14.642857142857146 Y-13.571428571428573 Z0
G0 Z0
G1 X15.0 Y-14.285714285714286 Z0
G0 Z0
G1 X15.714285714285717 Y-14.642857142857142 Z0
G0 Z0
G1 X17.5 Y-15.0 Z0
G0 Z0
G1 X18.21428571428572 Y-15.357142857142856 Z0
G0 Z0
G1 X18.571428571428573 Y-16.071428571428573 Z0
G0 Z0
G1 X18.571428571428573 Y-16.428571428571427 Z0
G0 Z0
G1 X18.21428571428572 Y-17.142857142857142 Z0
G0 Z0
G1 X17.142857142857146 Y-17.5 Z0
G0 Z0
G1 X16.071428571428573 Y-17.5 Z0
G0 Z0
G1 X15.0 Y-17.142857142857142 Z0
G0 Z0
G1 X14.642857142857146 Y-16.428571428571427 Z0
G0 Z5
G0 X20.35714285714286 Y-12.5 Z5
G0 Z0
G1 X22.500000000000004 Y-17.5 Z0
G0 Z5
G0 X24.642857142857146 Y-12.5 Z5
G0 Z0
G1 X22.500000000000004 Y-17.5 Z0
G0 Z0
G1 X21.785714285714292 Y-18.928571428571427 Z0
G0 Z0
G1 X21.071428571428573 Y-19.642857142857146 Z0
G0 Z0
G1 X20.35714285714286 Y-20.0 Z0
G0 Z0
G1 X20.000000000000004 Y-20.0 Z0
G0 Z5
G0 X27.142857142857146 Y-10.0 Z5
G0 Z0
G1 X27.5 Y-10.357142857142858 Z0
G0 Z0
G1 X27.857142857142858 Y-10.0 Z0
G0 Z0
G1 X27.5 Y-9.642857142857142 Z0
G0 Z0
G1 X27.142857142857146 Y-10.0 Z0
G0 Z5
G0 X27.5 Y-12.5 Z5
G0 Z0
G1 X27.5 Y-18.571428571428573 Z0
G0 Z0
G1 X27.142857142857146 Y-19.642857142857146 Z0
G0 Z0
G1 X26.42857142857143 Y-20.0 Z0
G0 Z0
G1 X25.71428571428572 Y-20.0 Z0
G0 Z5
G0 X32.5 Y-10.0 Z5
G0 Z0
G1 X31.785714285714285 Y-10.0 Z0
G0 Z0
G1 X31.071428571428573 Y-10.357142857142858 Z0
G0 Z0
G1 X30.71428571428571 Y-11.428571428571429 Z0
G0 Z0
G1 X30.71428571428571 Y-17.5 Z0
G0 Z5
G0 X29.642857142857146 Y-12.5 Z5
G0 Z0
G1 X32.142857142857146 Y-12.5 Z0
G0 Z5
G0 X38.57142857142857 Y-12.5 Z5
G0 Z0
G1 X38.57142857142857 Y-18.214285714285715 Z0
G0 Z0
G1 X38.214285714285715 Y-19.28571428571429 Z0
G0 Z0
G1 X37.857142857142854 Y-19.642857142857146 Z0
G0 Z0
G1 X37.14285714285714 Y-20.0 Z0
G0 Z0
G1 X36.07142857142857 Y-20.0 Z0
G0 Z0
G1 X35.357142857142854 Y-19.642857142857146 Z0
G0 Z5
G0 X38.57142857142857 Y-13.571428571428573 Z5
G0 Z0
G1 X37.857142857142854 Y-12.857142857142856 Z0
G0 Z0
G1 X37.14285714285714 Y-12.5 Z0
G0 Z0
G1 X36.07142857142857 Y-12.5 Z0
G0 Z0
G1 X35.357142857142854 Y-12.857142857142856 Z0
G0 Z0
G1 X34.64285714285714 Y-13.571428571428573 Z0
G0 Z0
G1 X34.285714285714285 Y-14.642857142857142 Z0
G0 Z0
G1 X34.285714285714285 Y-15.357142857142856 Z0
G0 Z0
G1 X34.64285714285714 Y-16.428571428571427 Z0
G0 Z0
G1 X35.357142857142854 Y-17.142857142857142 Z0
G0 Z0
G1 X36.07142857142857 Y-17.5 Z0
G0 Z0
G1 X37.14285714285714 Y-17.5 Z0
G0 Z0
G1 X37.857142857142854 Y-17.142857142857142 Z0
G0 Z0
G1 X38.57142857142857 Y-16.428571428571427 Z0
G0 Z5
G0 X47.142857142857146 Y-10.0 Z5
G0 Z0
G1 X47.142857142857146 Y-17.5 Z0
G0 Z5
G0 X47.142857142857146 Y-13.571428571428573 Z5
G0 Z0
G1 X47.85714285714286 Y-12.857142857142856 Z0
G0 Z0
G1 X48.57142857142858 Y-12.5 Z0
G0 Z0
G1 X49.642857142857146 Y-12.5 Z0
G0 Z0
G1 X50.35714285714286 Y-12.857142857142856 Z0
G0 Z0
G1 X51.07142857142858 Y-13.571428571428573 Z0
G0 Z0
G1 X51.42857142857144 Y-14.642857142857142 Z0
G0 Z0
G1 X51.42857142857144 Y-15.357142857142856 Z0
G0 Z0
G1 X51.07142857142858 Y-16.428571428571427 Z0
G0 Z0
G1 X50.35714285714286 Y-17.142857142857142 Z0
G0 Z0
G1 X49.642857142857146 Y-17.5 Z0
G0 Z0
G1 X48.57142857142858 Y-17.5 Z0
G0 Z0
G1 X47.85714285714286 Y-17.142857142857142 Z0
G0 Z0
G1 X47.142857142857146 Y-16.428571428571427 Z0
G0 Z5
G0 X53.57142857142857 Y-14.642857142857142 Z5
G0 Z0
G1 X57.85714285714286 Y-14.642857142857142 Z0
G0 Z0
G1 X57.85714285714286 Y-13.928571428571429 Z0
G0 Z0
G1 X57.5 Y-13.214285714285715 Z0
G0 Z0
G1 X57.142857142857146 Y-12.857142857142856 Z0
G0 Z0
G1 X56.42857142857144 Y-12.5 Z0
G0 Z0
G1 X55.35714285714286 Y-12.5 Z0
G0 Z0
G1 X54.642857142857146 Y-12.857142857142856 Z0
G0 Z0
G1 X53.92857142857144 Y-13.571428571428573 Z0
G0 Z0
G1 X53.57142857142857 Y-14.642857142857142 Z0
G0 Z0
G1 X53.57142857142857 Y-15.357142857142856 Z0
G0 Z0
G1 X53.92857142857144 Y-16.428571428571427 Z0
G0 Z0
G1 X54.642857142857146 Y-17.142857142857142 Z0
G0 Z0
G1 X55.35714285714286 Y-17.5 Z0
G0 Z0
G1 X56.42857142857144 Y-17.5 Z0
G0 Z0
G1 X57.142857142857146 Y-17.142857142857142 Z0
G0 Z0
G1 X57.85714285714286 Y-16.428571428571427 Z0
G0 Z5
G0 X63.92857142857144 Y-13.571428571428573 Z5
G0 Z0
G1 X63.571428571428584 Y-12.857142857142856 Z0
G0 Z0
G1 X62.5 Y-12.5 Z0
G0 Z0
G1 X61.42857142857144 Y-12.5 Z0
G0 Z0
G1 X60.35714285714287 Y-12.857142857142856 Z0
G0 Z0
G1 X60.0 Y-13.571428571428573 Z0
G0 Z0
G1 X60.35714285714287 Y-14.285714285714286 Z0
G0 Z0
G1 X61.071428571428584 Y-14.642857142857142 Z0
G0 Z0
G1 X62.85714285714287 Y-15.0 Z0
G0 Z0
G1 X63.571428571428584 Y-15.357142857142856 Z0
G0 Z0
G1 X63.92857142857144 Y-16.071428571428573 Z0
G0 Z0
G1 X63.92857142857144 Y-16.428571428571427 Z0
G0 Z0
G1 X63.571428571428584 Y-17.142857142857142 Z0
G0 Z0
G1 X62.5 Y-17.5 Z0
G0 Z0
G1 X61.42857142857144 Y-17.5 Z0
G0 Z0
G1 X60.35714285714287 Y-17.142857142857142 Z0
G0 Z0
G1 X60.0 Y-16.428571428571427 Z0
G0 Z5
G0 X66.42857142857143 Y-12.5 Z5
G0 Z0
G1 X66.42857142857143 Y-17.5 Z0
G0 Z5
G0 X66.42857142857143 Y-14.642857142857142 Z5
G0 Z0
G1 X66.78571428571429 Y-13.571428571428573 Z0
G0 Z0
G1 X67.5 Y-12.857142857142856 Z0
G0 Z0
G1 X68.21428571428571 Y-12.5 Z0
G0 Z0
G1 X69.28571428571429 Y-12.5 Z0
G0 Z5
G0 X70.35714285714286 Y-12.5 Z5
G0 Z0
G1 X72.5 Y-17.5 Z0
G0 Z5
G0 X74.64285714285715 Y-12.5 Z5
G0 Z0
G1 X72.5 Y-17.5 Z0
G0 Z0
G1 X71.78571428571429 Y-18.928571428571427 Z0
G0 Z0
G1 X71.07142857142858 Y-19.642857142857146 Z0
G0 Z0
G1 X70.35714285714286 Y-20.0 Z0
G0 Z0
G1 X70.0 Y-20.0 Z0
G0 Z5
G0 X77.14285714285715 Y-10.0 Z5
G0 Z0
G1 X77.5 Y-10.357142857142858 Z0
G0 Z0
G1 X77.85714285714286 Y-10.0 Z0
G0 Z0
G1 X77.5 Y-9.642857142857142 Z0
G0 Z0
G1 X77.14285714285715 Y-10.0 Z0
G0 Z5
G0 X77.5 Y-12.5 Z5
G0 Z0
G1 X77.5 Y-18.571428571428573 Z0
G0 Z0
G1 X77.14285714285715 Y-19.642857142857146 Z0
G0 Z0
G1 X76.42857142857143 Y-20.0 Z0
G0 Z0
G1 X75.71428571428571 Y-20.0 Z0
G0 Z5
G0 X85.35714285714285 Y-12.5 Z5
G0 Z0
G1 X87.5 Y-17.5 Z0
G0 Z5
G0 X89.64285714285714 Y-12.5 Z5
G0 Z0
G1 X87.5 Y-17.5 Z0
G0 Z0
G1 X86.78571428571428 Y-18.928571428571427 Z0
G0 Z0
G1 X86.07142857142857 Y-19.642857142857146 Z0
G0 Z0
G1 X85.35714285714285 Y-20.0 Z0
G0 Z0
G1 X85.0 Y-20.0 Z0
G0 Z5
G0 X91.78571428571428 Y-12.5 Z5
G0 Z0
G1 X91.78571428571428 Y-17.5 Z0
G0 Z5
G0 X91.78571428571428 Y-14.642857142857142 Z5
G0 Z0
G1 X92.14285714285714 Y-13.571428571428573 Z0
G0 Z0
G1 X92.85714285714285 Y-12.857142857142856 Z0
G0 Z0
G1 X93.57142857142856 Y-12.5 Z0
G0 Z0
G1 X94.64285714285714 Y-12.5 Z0
G0 Z5
G0 X96.07142857142856 Y-14.642857142857142 Z5
G0 Z0
G1 X100.35714285714285 Y-14.642857142857142 Z0
G0 Z0
G1 X100.35714285714285 Y-13.928571428571429 Z0
G0 Z0
G1 X100.0 Y-13.214285714285715 Z0
G0 Z0
G1 X99.64285714285714 Y-12.857142857142856 Z0
G0 Z0
G1 X98.92857142857143 Y-12.5 Z0
G0 Z0
G1 X97.85714285714285 Y-12.5 Z0
G0 Z0
G1 X97.14285714285714 Y-12.857142857142856 Z0
G0 Z0
G1 X96.42857142857143 Y-13.571428571428573 Z0
G0 Z0
G1 X96.07142857142856 Y-14.642857142857142 Z0
G0 Z0
G1 X96.07142857142856 Y-15.357142857142856 Z0
G0 Z0
G1 X96.42857142857143 Y-16.428571428571427 Z0
G0 Z0
G1 X97.14285714285714 Y-17.142857142857142 Z0
G0 Z0
G1 X97.85714285714285 Y-17.5 Z0
G0 Z0
G1 X98.92857142857143 Y-17.5 Z0
G0 Z0
G1 X99.64285714285714 Y-17.142857142857142 Z0
G0 Z0
G1 X100.35714285714285 Y-16.428571428571427 Z0
G0 Z5
G0 X0.0 Y0.0 Z5
M5

View File

@@ -1,6 +1,9 @@
import serial import serial
import time import time
import threading
import websocket
import time
import queue
#### Load gcode testfile #### Load gcode testfile
@@ -10,9 +13,9 @@ import time
#### Streamer #### Serial treamer
def stream_gcode(gcode): def stream_gcode_serial(gcode):
# Open grbl serial port # Open grbl serial port
s = serial.Serial('/dev/ttyACM0',115200) s = serial.Serial('/dev/ttyACM0',115200)
@@ -40,5 +43,68 @@ def stream_gcode(gcode):
print('job done') print('job done')
#stream_gcode(gcode)
#### Web Socket Streamer
# Global variables
ws = None
response_queue = queue.Queue() # Thread-safe queue for server responses
def receiver():
"""Receives messages from the WebSocket server."""
while True:
try:
# Receive a message from the WebSocket
for l in ws.recv().splitlines():
if isinstance(l, str):
response = l
else:
response = str(l, 'utf-8')
# print("Received:", response)
response_queue.put(response) # Add response to the queue
except Exception as e:
print("Error in receiver:", e)
break
def stream_gcode_websocket(gcode):
"""Streams G-code commands to the WebSocket server."""
global ws
ws = websocket.WebSocket()
ws.connect("ws://192.168.0.1:81") # Replace with your server's address
# Start the receiver thread
t = threading.Thread(target=receiver, daemon=True)
t.start()
# Wake up GRBL
ws.send("\r\n\r\n")
time.sleep(2) # Wait for GRBL to initialize
with response_queue.mutex:
response_queue.queue.clear()
for line in gcode:
l = str(line.strip()) # Strip all EOL characters for consistency
print('Sending:', l)
ws.send(l + '\n') # Send G-code block to the server
# Wait for server response
try:
grbl_out = response_queue.get(timeout=5) # Wait up to 5 seconds for a response
print('Response:', grbl_out.strip())
if(grbl_out.strip() != "ok"):
break
except queue.Empty:
print("Timeout waiting for server response.")
print('Job done')
ws.close()
# gcode = [
# "G0 X10 Y10",
# "G1 X20 Y20",
# "G1 X30 Y10"
# ]
# stream_gcode_websocket(gcode)

View File

@@ -0,0 +1,8 @@
import socket
import sys
# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect the socket to the port where the server is listening
server_address = ('192.168.0.1', 81)
print(sys.stderr, 'connecting to %s port %s' % server_address)
sock.connect(server_address)

View File

@@ -0,0 +1,24 @@
import threading, websocket, time
ws = websocket.WebSocket()
ws.connect("ws://192.168.0.1:81")
# Reception needs to be done in a separate thread; you cannot
# assume that a given command will always result in exactly one
# response at a predictable time
# def receiver():
# while True:
# for l in ws.recv().splitlines():
# if isinstance(l, str):
# print(l)
# else:
# print(str(l, 'utf-8'))
# t = threading.Thread(target=receiver)
# t.start()
# ws.send("?") # realtime characters need no line terminator
# ws.send("$/axes/x\n") # line-oriented commands need \n at the end
ws.send("\r\n\r\n")
print(ws.recv())
ws.send("G0 X10\n")
print(ws.recv())