Parênteses são permitidos em um comentário de código G?


9

Eu estou querendo saber se este pedaço de código G é válido:

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

Eu testei isso na minha máquina CNC chinesa e ela retira o comentário e funciona perfeitamente.

A máquina processa isso da maneira G0Y10Z-5que parece ser a abordagem correta para mim.

No entanto, nunca vi esse comentário na prática real do CNC. Seria bom se alguém pudesse testá-lo em sua impressora CNC / 3D.

Muitos simuladores de código G na Internet não conseguem processar essa linha em seu analisador, o que me deixa confuso. Não encontrei nada sobre isso no RepRap Wiki ou mesmo no Google.


Entre ... Bem-vindo à impressão 3D! : o)
Pᴀᴜʟsᴛᴇʀ2

11
Por que não usar apenas o início da linha ";" e evitar todos os riscos?
Carl Witthoft 17/07/2018

Por uma taxa nominal :-), escreverei um regex que puxa todo o "(*)" e substitui por uma nova linha "; *" Deixe as guerras de chama sed vs awk começarem.
Carl Witthoft 17/07/2018

Você está certo, Carl. Eu só estava cuidando do código de terceiros que talvez eu precise manipular algum dia. Eu pessoalmente uso apenas; comentários. :-)
Jan Vorisek

Respostas:


12

Este não é um código G universalmente válido, e como ele é tratado depende da implementação. Você pode usar esse estilo de comentário em algumas máquinas, mas não em todas.

Da maneira que a análise costumava ser implementada no Marlin (um firmware de impressora 3D muito comum), funcionaria bem, a menos que a sequência de comentários incluísse um caractere X, Y, Z, E ou F. O analisador simplesmente procura a primeira ocorrência de X / Y / Z / E / F e, em seguida, tenta analisar em um número o texto que aparece após esse caractere. Se a sequência não puder ser analisada como um número, o padrão será 0. Por exemplo,

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

seria interpretado como G0 Y0 Z-5e não como G0 Y10 Z-5, porque ")" (a cadeia que aparece após a primeira ocorrência de "Y") não analisa nenhum número válido. Seu exemplo funciona bem porque a sequência de comentários não contém caracteres especiais.

O Marlin suporta comentários de fim de linha, que devem começar com ponto e vírgula e continuar até o final da linha.

É assim que costumava funcionar nas versões mais antigas do Marlin. As versões mais recentes do Marlin têm um analisador mais avançado, mas ainda assim não funcionam bem com esses comentários no estilo de parênteses. É melhor evitá-los, pois a compatibilidade não é garantida.


Isso me parece ainda mais estranho. Não há comentários sobre esse comportamento, por exemplo, em RepRap reprap.org/wiki/G-code#Comments
Jan

@JanVorisek Acabei de notar que é um pouco diferente nas versões mais recentes do Marlin. Ainda assim, comentários no estilo de parênteses não são suportados.
Tom van der Zanden

11
Você está certo. Apenas verifiquei alguns analisadores, incluindo Marlin. Concluí que a maioria dos firmwares de impressoras 3D analisa apenas ponto e vírgula como comentários. Parece que os parênteses são / eram? maneira preferida em fresadoras CNC. Vou manter o ponto-e-vírgula, pois me preocupo com a impressão 3D principalmente. Obrigado pelo seu tempo de qualquer maneira :-)
Jan Vorisek

4

Parece que comentários entre parênteses não são permitidos em vários analisadores (ou seja, Marlin). Isso parece ser verdade para a maioria das impressoras 3D. As fresadoras CNC clássicas usam parênteses sem problemas.

Ele deve funcionar nas impressoras Prusa, conforme indicado em seu Wiki . Infelizmente, não há palavras sobre o aninhamento dos comentários.

No entanto, encontrei um comentário nos fóruns do cnczone.com sobre o agrupamento de comentários entre parênteses.

Caracteres imprimíveis e espaço em branco entre parênteses é um comentário. Um parêntese esquerdo sempre inicia um comentário. O comentário termina no primeiro parêntese direito encontrado posteriormente.

Depois que um parêntese esquerdo é colocado em uma linha, um parêntese direito correspondente deve aparecer antes do final da linha.

Comentários não podem ser aninhados; é um erro se um parêntese esquerdo for encontrado após o início de um comentário e antes do final do comentário.

Aqui está um exemplo de uma linha que contém um comentário: G80 M5 (stop motion)

Fonte: cnczone.com

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.