AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GCode-Parser

Ein Thema von DaCoda · begonnen am 27. Sep 2024 · letzter Beitrag vom 30. Sep 2024
Antwort Antwort
Seite 1 von 2  1 2      
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#1

GCode-Parser

  Alt 27. Sep 2024, 23:07
Hallo,
bei der Entwicklung meines Maschinen-Steuerprogramms ist dieser G-Codeparser entstanden.

Eventuell kann das ja sonst noch jemand mal brauchen.
Der Parser ist nicht vollständig, was die G- und M-Funktionen angeht, sollte aber für den Anfang reichen.

Die Ausgabe bei Params (im Memo) ist verdreht, sollte XYZIJR sein, aber das habe ich (noch) nicht so hinbekommen

Im Anhang ist der Parser und ein Mini-Testprogramm.
Angehängte Dateien
Dateityp: zip GCodeParser.zip (181,9 KB, 23x aufgerufen)
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: GCode-Parser

  Alt 28. Sep 2024, 07:13
Ab welcher Delphi-Version?
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#3

AW: GCode-Parser

  Alt 28. Sep 2024, 11:46
DAs kann ich so gar nicht sagen. Ich verwende derzeit D12.2
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
156 Beiträge
 
Delphi 12 Athens
 
#4

AW: GCode-Parser

  Alt 28. Sep 2024, 19:30
Im Anhang ist der Parser und ein Mini-Testprogramm.
Ich habe deinen Parser auch mal mit einem etwas modifizierten NC-Programmen getestet. Dabei ist mir eine Inkompatibilität aufgefallen.
Wenn in einem Satz kein Fahrbefehl enthalten ist, wird automatisch der Fahrbefehl, der im vorherigen Satz verwendet wurde, ergänzt.

G03X16.4034Y19.6197I16.2573J29.8664F601
G03X22.5886Y17.4267I26.4238J64.7078
G02X28.4696Y14.9650I-5.0995J-20.4389
G02X30.3826Y13.5958I-11.4268J-17.9860
G02X34.9424Y8.8573I-13.8491J-17.8901
G02X36.0083Y6.7722I-6.8578J-4.8207
G03X36.8925Y4.7653I9.2324J2.8691
G03X37.5032Y4.2915I0.9835J0.6372
G01X37.6013Y4.2923
usw.

hat dieselbe Wirkung wie

G03X16.4034Y19.6197I16.2573J29.8664F601
X22.5886Y17.4267I26.4238J64.7078
G02X28.4696Y14.9650I-5.0995J-20.4389
X30.3826Y13.5958I-11.4268J-17.9860
X34.9424Y8.8573I-13.8491J-17.8901
X36.0083Y6.7722I-6.8578J-4.8207
G03X36.8925Y4.7653I9.2324J2.8691
X37.5032Y4.2915I0.9835J0.6372
G01X37.6013Y4.2923
usw.

Wenn dein Parser mit NC-Code nach DIN 66025 kompatibel sein soll, müsstest du das auf jeden Fall noch anpassen. Dein Parser meldet bei den Zeilen 2, 4, 5, 6 und 8 fälschlicherweise "Type: ctUnknown, Code: -1, Params:[], Comment:"

Type: ctGCode, Code: 3, Params:[ J29.866 F600.000 Y19.620 X16.403 I16.257], Comment:
Type: ctUnknown, Code: -1, Params:[], Comment:
Type: ctGCode, Code: 2, Params:[ J-20.439 Y14.965 X28.470 I-5.100], Comment:
Type: ctUnknown, Code: -1, Params:[], Comment:
Type: ctUnknown, Code: -1, Params:[], Comment:
Type: ctUnknown, Code: -1, Params:[], Comment:
Type: ctGCode, Code: 3, Params:[ J2.869 Y4.765 X36.893 I9.232], Comment:
Type: ctUnknown, Code: -1, Params:[], Comment:
Type: ctGCode, Code: 1, Params:[ Y4.292 X37.601], Comment:


Gruß LP
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#5

AW: GCode-Parser

  Alt 28. Sep 2024, 20:00
Hallo LP,
vielen Dank für deinen Test und die Anmerkungen. Ich schaue mir das noch mal an.
Vorerst muss ich aber das Problem mit GDI+ lösen...

LG
Toddie
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#6

AW: GCode-Parser

  Alt 28. Sep 2024, 22:26
So, wenn ich nun nichts übersehen habe sollte der Parser vernünftig laufen.
Ich habe die geänderte Version und 3 Testdateien beigefügt.
Angehängte Dateien
Dateityp: zip Test.zip (93,4 KB, 10x aufgerufen)
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
156 Beiträge
 
Delphi 12 Athens
 
#7

AW: GCode-Parser

  Alt 29. Sep 2024, 01:14
Leider haben sich doch Fehler eingeschlichen. Zunächst einmal ist die Testdatei fehlerhaft. Der G03 Befehl muss natürlich am Anfang des ersten Kreisbogen-Blocks stehen:

G00 X18.7900 Y18.7900 Z5.0000
G00 Z0.5000
G01 Z0.0000 F100 S10000 ; Z-Achse mit Geschwindigkeit 100mm/Minute und Spindeldrehzahl 10000Umin auf Position 0.0000mm fahren
G01 Z-0.5000
G03 X68.9784 Y32.2381 I21.2121 J21.2122 F600
X32.2379 Y68.9785 I-28.9763 J7.7641; Zeile ohne Fahrbefehl
X18.7900Y18.7900I7.7642J-28.9763 (Zeile ohne Fahrbefehl und ohne Spaces)
G00 Z5.0000
G00 X0.0000 Y0.0000
G00 Z0.0000

Aber auch die Auswertung ist fehlerhaft. Es fehlen die I- und J-Parameter.
Es wäre vielleicht keine schlechte Idee, in der Textausgabe deines Testprogramms die original NC-Programmzeile links und in einer zweiten Spalte die Auswertung des Parsers auszugeben. Dann könnte man schnell überblicken, ob alles stimmt. Dafür könnte man, um Platz zu sparen, womöglich auf die Kommentare verzichten bzw. sie durch einen Platzhalter ersetzen.

Gruß LP
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: GCode-Parser

  Alt 29. Sep 2024, 16:46
Hi,

mir ist noch aufgefallen, dass die 4. Nachkommastelle 'verschluckt' wird.
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: GCode-Parser

  Alt 29. Sep 2024, 18:01
ich würde sowas mit plex und pyacc lösen - ist einfacher
die Quellen zu diesen zwei Programmen gibts mit FPC.

Edit:
sodele, habe ein Paket geschnürrt, das die Verwendung von plex und pyacc veranschaulicht.
Änderungen sind dann selbst vorzunehmen.
siehe Anhang: Win32 Konsolen-Anwendung.

einfach entpacken, und build.bat starten - müsste, wenns gut geht, klappen.
voila...
Angehängte Dateien
Dateityp: zip packed.zip (324,7 KB, 8x aufgerufen)
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet

Geändert von paule32.jk (29. Sep 2024 um 19:56 Uhr)
  Mit Zitat antworten Zitat
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
156 Beiträge
 
Delphi 12 Athens
 
#10

AW: GCode-Parser

  Alt 29. Sep 2024, 20:32
Hi,

mir ist noch aufgefallen, dass die 4. Nachkommastelle 'verschluckt' wird.
Es wird nichts verschluckt, sondern es wird korrekt auf 3 Stellen gerundet. Nicht jede Maschinensteuerung kann 4 Nachkommastellen auflösen.

Gruß LP
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz