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
%