![]() |
GCode-Parser
Liste der Anhänge anzeigen (Anzahl: 1)
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. |
AW: GCode-Parser
Ab welcher Delphi-Version?
|
AW: GCode-Parser
DAs kann ich so gar nicht sagen. Ich verwende derzeit D12.2
|
AW: GCode-Parser
Zitat:
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 |
AW: GCode-Parser
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 |
AW: GCode-Parser
Liste der Anhänge anzeigen (Anzahl: 1)
So, wenn ich nun nichts übersehen habe sollte der Parser vernünftig laufen.
Ich habe die geänderte Version und 3 Testdateien beigefügt. |
AW: GCode-Parser
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 |
AW: GCode-Parser
Hi,
mir ist noch aufgefallen, dass die 4. Nachkommastelle 'verschluckt' wird. |
AW: GCode-Parser
Liste der Anhänge anzeigen (Anzahl: 1)
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... |
AW: GCode-Parser
Zitat:
Gruß LP |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz