Olá Marcelo,
Eu li o seu programa paramétrico e gostei, parabéns.
Vamos ver o que eu entendo, e as reflexões que incutiu em mim.
Estamos perante um programa que realiza uma usinagem completa de uma peça, programa ao qual foram substituídas com variáveis os valores reais para conseguir descrever diferentes dimensões geométricas. Portanto, não é um programa macro, mas sim a parametrização de uma usinagem completa. A lista de variáveis define todos os aspectos do trabalho (não todos, na verdade). Podemos dividir o programa em três parcelas (sem entrar em detalhes)
- variáveis
-execução diâmetros menores do que 25
-execução diâmetros maior do que 25
Os dois passos para a execução dos diâmetros fornecer
desbaste desbaste
acabamento acabamento
rosca 1° rosca
2 ° rosca
Quando leio um programa escrito por outros eu tento interpretá-lo:
com estas reflexões não quero desmerecer seu trabalho, mas apenas criar novas idéias.
Certamente o programa funciona (e o que funciona, normalmente não se muda), mas há alguns aspectos a considerar.
Estamos perante um processamento padrão, e isso, deduze-se a partir do facto de que existe a presença de velocidade de corte definida no programa,
e não por variáveis: a forma geométrica e, em seguida, o material devem ser sempre os mesmos.
Caso contrário, devemos colocar a mão no código do programa minando o próprio conceito de programa paramétrico. Esta é uma pequena limitação!
Chama a atenção a seguinte linha
IF[#501GE25]GOTO2011 que, em si exclui a outra IF[#501LT25]GOTO1011
Por que usar as duas? A primeira elimina com certeza a segunda, que não é, portanto, necessária. Eu posso pensar a uma espécie de segurança, mas isso abre outros problemas relacionados com a escolha do tipo de programa, paramétrica ou macro.
Outro aspecto que chama atenção é o uso que você faz dos números no programa. Neste caso, não pode causar problemas, mas em geral é preferível não usar dois números de linha idênticos: o leitor, e em condições particulares, também o cnc, pode não compreender ou realizar ações impróprias.
Pessoalmente eu nunca escrevo programas paramétricos para executar uma peça completa, prefiro dividir em subprocessos,
apesar de eu entender que no específico é muito conveniente (eu assumo que a repetição seja elevada).
Estou, portanto, mais rentável para escrever uma macro. Mas por quê? Por várias razões
- O uso de variáveis comuns pode ser potencialmente perigoso (uma macro utiliza variáveis locais, e cada macro tem suas própria)
- Um programa paramétrico tem o risco que pode ser modificado, sendo visível (em oposição a uma macro que não mostra o código executável).
Seria um desastre se alguém, após o trabalho duro que você fez, mudasse algo
- Um programa macro simplifica tanto a exequibilidade que a legibilidade, tornando o programa acessível a pessoas com pouca experiência.
Estamos diante de um programa que funciona, mas a sua desvantagem é o comprimento dado que executa uma usinagem completa e não está limitado à solução específica.
Imagine por um momento criar um programa macro que pode executar as mesmas ações, você poderia obter o mesmo resultado com uma escrita mais simples, mais compreensível.
Existem basicamente duas formas de escrever programas paramétricos:
- programas destinados a resolver um problema particular
- programas gerais ou específicos escritos para a diversidade, a capacidade de ser utilizado mais livremente.
Não quero discutir aqui o que é melhor ou pior, nunca pessoalmente crítico os outros programas, os aprecios todos (também o seu).
Reflito sobre o fato de que a escrita não deve apenas resolver o problema particular, mas adotar uma solução mais ampla.
Aqui o seu exemplo concreto:
-variáveis
-IF [escolha] do tipo de trabalho
-primeira escolha: desbaste / Acabamento / rosca
-segunda escolha: desbaste/acabamento/1 rosca ° / 2 ° rosca
Além das diferenças de código e de forma geométrica, o programa está funcionando em si, então nós poderíamos fazê-lo assim
-variáveis
-if [escolha]
-desbaste / Acabamento / rosca (a escolha é interna)
certamente seria mais fácil de ler, mas ha mais: não mostra o programa executivo, mas apenas uma lista de variáveis
O programa seria escrito de forma G200 B2 A1 C3 D4 H5 I6 ..
Uma linha que pode executar o código completo. Sem dúvida, um pulo para frente, pois
-ninguém vê o programa executável
-ninguém o pode mudar
-é curto
-é facilmente interpretável
-A lista de variáveis foi substituída por uma lista de argumentos (uma vez explicada será facilmente assimilada)
-Não é um programa estático se pode mudar mais facilmente do que um programa paramétrico
Eu digo que você fez um ótimo trabalho, digo-lhe para você continuar neste caminho, se possível transforme os programas paramétricos para macros,
você vai ver que depois das dificuldades iniciais, lhe dará grande satisfação.
Até e obrigado por tudo, Pietro.