Sind Klammern in einem G-Code-Kommentar zulässig?

9

Ich frage mich, ob dieser G-Code gültig ist:

G0 (Some comment (Its G0 command)) Y10 Z-5

Ich habe dies auf meiner chinesischen CNC-Maschine getestet und es entfernt den Kommentar und funktioniert einwandfrei.

Die Maschine verarbeitet dies als G0Y10Z-5den richtigen Ansatz für mich.

Ich habe jedoch noch nie einen solchen Kommentar in der realen CNC-Praxis gesehen. Es wäre schön, wenn jemand es auf seinem CNC / 3D-Drucker testen könnte.

Viele G-Code-Simulatoren im Internet verarbeiten eine solche Zeile in ihrem Parser nicht, was mich verwirrt. Ich habe im RepRap-Wiki oder sogar bei Google nichts darüber gefunden.

Jan Vorisek
quelle
Übrigens ... Willkommen beim 3D-Druck! : o)
Pᴀᴜʟsᴛᴇʀ2
1
Warum nicht einfach Start-of-Line ";" verwenden und jedes Risiko vermeiden?
Carl Witthoft
Gegen eine geringe Gebühr :-) schreibe ich einen regulären Ausdruck, der alle "(*)" herauszieht und durch eine neue Zeile ersetzt "; *" Lass die Flammenkriege von sed gegen awk beginnen.
Carl Witthoft
Du hast recht, Carl. Ich habe mich nur um Code von Drittanbietern gekümmert, den ich möglicherweise eines Tages verarbeiten muss. Ich persönlich benutze nur; Bemerkungen. :-)
Jan Vorisek

Antworten:

12

Dies ist kein universell gültiger G-Code, und wie damit umgegangen wird, hängt von der Implementierung ab. Sie können diesen Kommentarstil auf einigen Computern verwenden, jedoch nicht auf allen.

Die Art und Weise, wie das Parsen in Marlin (einer sehr verbreiteten 3D-Drucker-Firmware) implementiert wurde, funktioniert einwandfrei, es sei denn, die Kommentarzeichenfolge enthält ein X-, Y-, Z-, E- oder F-Zeichen. Der Parser sucht einfach nach dem ersten Auftreten von X / Y / Z / E / F und versucht dann, das nach diesem Zeichen erscheinende Textbit in eine Zahl zu zerlegen. Wenn die Zeichenfolge nicht als Zahl analysiert werden kann, wird stattdessen standardmäßig 0 verwendet. Zum Beispiel,

 G0 (Some comment containing the character Y) Y10 Z-5

würde als G0 Y0 Z-5und nicht als interpretiert werden G0 Y10 Z-5, da ")" (die Zeichenfolge, die nach dem ersten Auftreten von "Y" erscheint) keine gültige Zahl analysiert. Ihr Beispiel funktioniert einwandfrei, da die Kommentarzeichenfolge keine Sonderzeichen enthält.

Marlin unterstützt Zeilenende-Kommentare, die mit einem Semikolon beginnen und bis zum Zeilenende fortgesetzt werden sollten.

So funktionierte es früher in älteren Marlin-Versionen. Neuere Marlin-Versionen verfügen über einen erweiterten Parser, der jedoch mit diesen Kommentaren im Klammerstil nicht gut funktioniert. Vermeiden Sie sie am besten, da die Kompatibilität nicht garantiert ist.

Tom van der Zanden
quelle
Das klingt für mich noch seltsamer. Es gibt keine Kommentare zu diesem Verhalten, zum Beispiel in RepRap reprap.org/wiki/G-code#Comments
Jan Vorisek
@ JanVorisek Ich habe gerade bemerkt, dass es in neueren Versionen von Marlin etwas anders ist. Kommentare im Klammerstil werden jedoch nicht unterstützt.
Tom van der Zanden
1
Du hast recht. Ich habe gerade ein paar Parser überprüft, einschließlich Marlin. Ich bin zu dem Schluss gekommen, dass die meisten Firmwares für 3D-Drucker nur Semikolons als Kommentare analysieren. Sieht aus wie Klammern sind / waren? bevorzugter Weg in CNC-Fräsmaschinen. Ich werde mich an das Semikolon halten, da mir der 3D-Druck am wichtigsten ist. Trotzdem danke für deine Zeit :-)
Jan Vorisek
4

Es sieht so aus, als ob Kommentare in Klammern in zahlreichen Parsern (z. B. Marlin) nicht zulässig sind. Dies scheint für die meisten 3D-Drucker zu gelten. Klassische CNC-Fräsmaschinen verwenden problemlos Klammern.

Es sollte auf Prusa-Druckern funktionieren, wie in ihrem Wiki angegeben . Leider gibt es keine Worte zum Verschachteln der Kommentare.

Ich habe jedoch in den cnczone.com-Foren einen Kommentar zum Verschachteln von Kommentaren in Klammern gefunden.

Druckbare Zeichen und Leerzeichen in Klammern sind ein Kommentar. Eine linke Klammer beginnt immer einen Kommentar. Der Kommentar endet mit der ersten rechten Klammer, die danach gefunden wird.

Sobald eine linke Klammer in eine Zeile eingefügt wird, muss vor dem Zeilenende eine passende rechte Klammer stehen.

Kommentare dürfen nicht verschachtelt werden. Es ist ein Fehler, wenn nach dem Beginn eines Kommentars und vor dem Ende des Kommentars eine linke Klammer gefunden wird.

Hier ist ein Beispiel für eine Zeile mit einem Kommentar: G80 M5 (stop motion)

Quelle: cnczone.com

Jan Vorisek
quelle