OBJECTIVO
Fresagem de múltiplas caixas para records, que, por muito próximas, devam ser rasgadas, evitando cristas ou zonas cortantes (Ver figura abaixo – casos 2 e 3).
Este programa, que cobre praticamente tudo o que foi abordado neste trabalho, sobre a utilização de macros, foi criado para um controlador MELDAS 500M, aplicado num centro de maquinação horizontal. Algumas funções utilizadas, precisam ser redefinidas para a total compatibilidade com Fanuc. (Ex: rotação do sistema de coordenadas, “input” de “off-set” do raio da ferramenta, interpolação helicoidal)
Existe uma versão detalhadamente comentada deste programa(s), que poderá ser facultada a quem nisso tiver interesse.
NOTAS SOBRE A UTILIZAÇÃO
Na prática, trata-se da maquinação em contorno, de um rasgo com qualquer inclinação no plano. O programa faz recurso à macro de cálculo de inclinação e distância entre dois pontos, também apresentada.
Estão previstos 3 distintos modos de maquinação (argumento Q na linha de chamada) :
| Maquinação completa do rasgo, em contorno (Caso 3). Compensação do raio da ferramenta. O incremento em profundidade (passagem) faz-se da seguinte forma:
|
|||||
| Maquinação apenas das cristas (Caso 2). Rectângulo que passa pelo centro dos furos. Este modo executa-se sem compensação de ferramenta, dado que o programa calcula o percurso do centro da ferramenta utilizada. |
|||||
| Escareamento do rasgo, em contorno. Previu-se a utilização de duas ferramentas – escareadores – pré definidos (T1 e T2), cujos valores estão definidos na macro. Assim, se os valores de T forem 1 ou 2, é ignorado o raio da ferramenta atribuído a J. Caso o valor de T seja diferente de 1 ou 2, é então considerado o valor de J, e ignorado T.O valor do chanfro é atribuído ao argumento C. Seguiu-se a seguinte regra para a maquinação:
|
ESQUEMA
![]() |
NOTAS SOBRE A PROGRAMAÇÃO
O programa calcula, em primeiro lugar, o ângulo entre os centros dos furos, e a correspondente distância. As coordenadas dos centros do primeiro e último furo, são atribuídas, no programa principal, às variáveis comuns #100 a #103.
Faz-se então uma translacção do sistema de coordenadas para o ponto 1 (G52X#100Y#101) e, de seguida, sobre esse ponto, uma rotação do sistema de coordenadas, com o valor calculado na respectiva macro.
Toda a programação se faz consequentemente, como se na prática os pontos estivessem alinhados na horizontal, e o ponto 1 tivesse coordenadas X0 Y0.
É garantida, em qualquer dos modos, a profundidade exacta (diâmetro do chanfro, no modo 3), independentemente dos valores iniciais e finais de Z, e do incremento I.
A variável glocal (comum) #520 é guardada e posteriormente recuperada, no programa principal, pelo facto de, na máquina em causa, esta variável ser utilizada no ciclo de mudança automática de ferramenta definido pelo fabricante.
FORMATO DE CHAMADA (EXEMPLO)
| Plano de segurança (Movimento rápido até R) | |
| Profundidade da caixa (excepto modo 3 – ver notas nos modos) | |
| Início da fresagem (Pode ser um valor negativo) | |
| Profundidade de corte por volta (passagem / incremento) | |
| Diâmetro da caixa | |
| Avanço de trabalho | |
| Rotação da ferramenta | |
| Raio da ferramenta | |
| Número da ferramenta (apenas modo 3) | |
| Chanfro (apenas modo 3) | |
| Plano de saída da caixa | |
| Modo de maquinação | |
PROGRAMA PRINCIPAL
O1(MULTI_CX_RECORDS)
#1=#520
G54
G0 G90 G43 H1 Z100
(Coordenadas)
(X1)#100=-340
(Y1)#101=-71
(X2)#102=-340
(Y2)#103=-45
G65P1001R2Z-3U-0.0I1.0D26.0F1200S1300J8T1C3.5W10Q3
(—————–)
G0 Z100
#520=#1
M30
%
MACRO
Esta macro chama a macro de cálculo do ângulo e distância referida, tendo-lhe sido atribuída, neste exemplo, o número de programa 1002 (G65 P1002).
Estas macros poderão, numa situação de utilização real, ser protegidas contra escrita.
O1001(MACRO_ MULTI_CX_REC)
;
#503=#3
#504=#4
#505=#5
#507=#7
#509=#9
#517=#17
#518=#18
#519=#19
#520=#20
#521=#21
#523=#23
#526=#26
;
IF[[#521-#504]LT#526]GOTO10
G65P1002
;
#1=#507/2
#2=#1-2
#3=#1-#505
;
G52X#100Y#101
G17G68X0Y0R#560
M3S#519
;
G0X0Y0
Z#518
M81
;
IF[#517NE3]GOTO3
M98H300
N3
G10L12P99R#505
G01Z#521F#509
#10=#521-#504
;
WHILE[#10GE#526]DO1
M98H[#517*100]
IF[#10EQ#526]GOTO5
;
#10=#10-#504
END1
#10=#526
M98H[#517*100]
N5
G0Z#523
G69
G52X0Y0
G10L12P99R0
N10M99
;
(——END_MAIN——)
;
N100(Modo1)
IF[#561GE#507]GOTO110
;
G1X#561Y0Z#10F[#509*0.7](rampa)
G41D99X[#561+#1]Y0F#509
G3X#561Y#1I-#5J0
G1X0Y#1
G3X0Y-#5I0J-#1
G1X#561Y-#1
G3X[#561+#1]Y0I0J#1
G1G40X0Y0
GOTO120
;
N110
G01G41D99X#2Y0F#509
G3Z#10I-#2J0P1F[#509*0.7]
G1G40X0Y0F#509
G01G41D99X0Y#1
G3X0Y-#1I0J-#1
G1X#561Y-#1
G3X#561Y#1I0J#1
G1X0Y#1
G40X0Y0
;
N120
M99
(———————–)
N200(Modo2)
G01Z#10F#509
G40X0Y-#3
X#561Y-#3
X#561Y#3
X0Y#3
X0Y0
M99
(———————–)
N300(Modo3-Escarear)
#20=#1+#503(R_chanfro)
(–Calcula_compensa–)
IF[#520EQ0]GOTO302
IF[#520EQ1]GOTO304
IF[#520EQ2]GOTO306
N302
#21=#505
GOTO310
N304(T1_Default)
#21=3.7+ABS[#526]
GOTO310
N306(T2_alternativa)
#21=4.3+ABS[#526]
N310
G10L12P99R#21
;
(–Decide_incrementos–)
IF[#503GT2]GOTO320
#22=#20
M98H340
GOTO330
N320
#22=#1+#504
WHILE[#20GE#22]DO1
M98H340
IF[#22EQ#20]GOTO330
#22=#22+#504
END1
#22=#20
M98H340
N330
M99P5
;
(—Contorno—)
N340
G01Z#526F#509
G01G41D99X0Y#22
G3X0Y-#22I0J-#22
G1X#561Y-#22
G3X#561Y#22I0J#22
G1X0Y#22
G0G40X0Y0
M99
%

Este modo executa-se sem compensação de ferramenta, dado que o programa calcula o percurso do centro da ferramenta utilizada.