¿Se permiten paréntesis dentro de un comentario de código G?

9

Me pregunto si esta parte del código G es válida:

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

He probado esto en mi máquina CNC china y elimina el comentario y funciona perfectamente.

La máquina procesa esto como lo G0Y10Z-5que me parece el enfoque correcto.

Sin embargo, nunca he visto ese comentario en la práctica real de CNC. Sería bueno si alguien puede probarlo en su impresora CNC / 3D.

Muchos simuladores de código G en Internet no pueden procesar dicha línea en su analizador, por lo que me confunde. No he encontrado nada al respecto en RepRap Wiki o incluso en Google.

Jan Vorisek
fuente
Por cierto ... ¡Bienvenido a la impresión 3D! : o)
Pᴀᴜʟsᴛᴇʀ2
1
¿Por qué no usar el inicio de línea ";" y evitar todo riesgo?
Carl Witthoft
Por una tarifa nominal :-), escribiré una expresión regular que extraiga todo "(*)" y reemplace con una nueva línea "; *" Que comiencen las guerras de llamas sed vs awk.
Carl Witthoft
Tienes razón Carl. Solo estaba cuidando el código de terceros que podría necesitar manejar algún día. Yo personalmente solo uso; comentarios :-)
Jan Vorisek

Respuestas:

12

Este no es un código G universalmente válido, y la forma en que se maneja depende de la implementación. Puede usar este estilo de comentario en algunas máquinas, pero no en todas.

La forma en que se solía implementar el análisis en Marlin (un firmware de impresora 3D muy común), funcionaría bien a menos que la cadena de comentarios incluyera un carácter X, Y, Z, E o F. El analizador simplemente busca la primera aparición de X / Y / Z / E / F y luego intenta analizar el número de texto que aparece después de ese carácter en un número. Si la cadena no se puede analizar como un número, su valor predeterminado es 0. Por ejemplo,

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

se interpretaría como G0 Y0 Z-5y no como G0 Y10 Z-5, porque ")" (la cadena que aparece después de la primera aparición de "Y") no analiza ningún número válido. Su ejemplo funciona bien porque la cadena de comentarios no contiene ningún carácter especial.

Marlin admite comentarios de fin de línea, que deben comenzar con un punto y coma y continuar hasta el final de la línea.

Así es como solía funcionar en versiones anteriores de Marlin. Las versiones más nuevas de Marlin tienen un analizador más avanzado, pero todavía no funcionaría bien con estos comentarios al estilo de paréntesis. Es mejor evitarlos, ya que no se garantiza la compatibilidad.

Tom van der Zanden
fuente
Esto me suena aún más raro. No hay comentarios sobre este comportamiento, por ejemplo, en RepRap reprap.org/wiki/G-code#Comments
Jan Vorisek
@ JanVorisek Acabo de notar que es ligeramente diferente en las versiones más nuevas de Marlin. Aún así, los comentarios al estilo de paréntesis no son compatibles.
Tom van der Zanden
1
Tienes razón. Solo revisé algunos analizadores, incluido Marlin. Llegué a la conclusión de que la mayoría de los firmwares de impresoras 3D analizan solo puntos y comas como comentarios. Parece que los paréntesis son / eran? forma preferida en fresadoras CNC. Me quedaré con el punto y coma, ya que me importa la impresión 3D principalmente. Gracias por su tiempo de todos modos :-)
Jan Vorisek
4

Parece que los comentarios entre paréntesis no están permitidos en numerosos analizadores (es decir, Marlin). Esto parece ser cierto para la mayoría de las impresoras 3D. Las fresadoras CNC clásicas usan paréntesis sin problemas.

Debería funcionar en impresoras Prusa como se indica en su Wiki . Lamentablemente, no hay palabras sobre la anidación de los comentarios.

Sin embargo, he encontrado un comentario en los foros de cnczone.com con respecto a la anidación de comentarios entre paréntesis.

Los caracteres imprimibles y el espacio en blanco entre paréntesis es un comentario. Un paréntesis izquierdo siempre comienza un comentario. El comentario termina en el primer paréntesis derecho encontrado a partir de entonces.

Una vez que se coloca un paréntesis izquierdo en una línea, debe aparecer un paréntesis derecho coincidente antes del final de la línea.

Los comentarios no pueden estar anidados; es un error si se encuentra un paréntesis izquierdo después del comienzo de un comentario y antes del final del comentario.

Aquí hay un ejemplo de una línea que contiene un comentario: G80 M5 (stop motion)

Fuente: cnczone.com

Jan Vorisek
fuente