Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print
SOFTWARES => Controle => Mach 2/3 => Tópico iniciado por: Cássio Alvarenga em 17 de Julho de 2012, 14:23
-
Pessoal,
Estou fazendo uma macro para trocar as ferramentas do torno que estou construindo, porem estou com problemas na escrita do comando em VB Scrip, Ele sempre mostra a mensagem "Ferramenta invalida" independente da ferramenta (escolhida no M6 T**), creio que o problema esteja logo após o comando IF, alguem sabe como é escrito?
Segue o Codigo:
tool = GetSelectedTool()
SetCurrentTool( tool )
toolnew = GetSelectedTool()
toolold = GetOemdro(824)
Dim MOVI
If (toolnew < 1)Or(toolnew > 16 ) Then
MsgBox (" Numero de ferramenta invalida !!!")
message(" Numero de ferramenta invalida !!!")
Call Code("M30")
end
End If
message(" Trocando ferramenta")
If (toolnew = toolold) Then
message("Ferramenta ja em uso")
end
End If
If (toolnew > toolold) Then
MOVI = (toolnew - toolold)*22.5
End If
If (toolold > toolnew) Then
MOVI = 16-(toolold - toolnew)*22.5
End If
CODE "G00 C10"
While ISMOVING()
Wend
CODE "G92 C0"
While ISMOVING()
Wend
CODE "G00 C" & MOVI
While ISMOVING()
Wend
CODE "G92 C0"
While ISMOVING()
Wend
CODE "G01 C-10"
While ISMOVING()
Wend
CODE "G92 C0"
While ISMOVING()
Wend
-
Rodei seu script no Mach3 e notei que este erro acontece quando a ferramenta atual está em 0.
Experimentei criar umas 4 ou 5 ferramentas gravadas na tabela de ferramentas, e chamei manualmente uma delas - o script não deu erro
O erro está nesta linha:
If (toolnew < 1)Or(toolnew > 16 ) Then
MsgBox (" Numero de ferramenta invalida !!!")
Editado:
Na verdade não é um erro porque voce criou este limite entre a ferramenta 1 e 16, logo ferramenta 0 está fora do escopo.
Creio que a lógica esteja incompleta - faltaria uma mensagem sugerindo que se coloque o numero da ferramenta certa, ou se crie uma macro de inicialização do Mach3 que faça ele colocar a ferramenta 1 como inicial
-
Tem um outro erro.
Quando se escolhe uma ferramenta qualquer entre 1 e 16, o script fica em loop na mensagem "Ferramenta já em Uso".
Talvez este erro esteja acontecendo porque não ví nenhuma confirmação de sinal avisando se a ferramenta está ou não onde deveria.
É como se a lógica estivesse incompleta.
-
Primeiramente, Obrigado Fabio.
Consertei o primeiro erro, ficou assim:
If (toolnew < 0)Or(toolnew > 16 ) Then
MsgBox (" Numero de ferramenta invalida !!!")
Agora a mensagem "ferramenta já em uso" eu agarrei...
If (toolnew = toolold) Then
message("Ferramenta ja em uso")
end
End If
Era para o programa exibir a mensagem somente se a ferramenta nova for igual a antiga (toolnew = toolold) então exibe a mensagem e executa o "end" que ignora o resto da macro.
Creio que a DRO do toolold não seja essa "824" que peguei na tabela: http://www.machsupport.com/MachCustomizeWiki/index.php?title=OEM_DROs (http://www.machsupport.com/MachCustomizeWiki/index.php?title=OEM_DROs) Acho que mudei enquanto fazia as novas telas, mas não acho a referencia...
Sabe como vejo a lista de DROs?
-
Vê se isso funciona:
Num_Positions = 16
tool = GetSelectedTool()
While Tool > Num_Positions
Tool = Question ("Numero de Ferramenta Invalido, Novo Numero?")
Wend
Old_pos = GetDRO (5)
New_Pos = (Tool-1)*360/Num_positions
Move_Dis = New_Pos - Old_Pos
If Abs(Move_Dis) >180 Then
If Move_Dis < 0 Then
Move_Dis = 360 + Move_Dis
Else
Move_Dis = Move_Dis - 360
End If
End If
Code "G00 G91 A" & Move_Dis
While IsMoving ()
Wend
Call SetDRO(3 , New_Pos )
Code "G90"
SetCurrentTool( tool )
Para esta macro funcionar voce precisa ter um eixo A configurado e deve deixar habilitado o comando "Auto Tool change" na janela "General Config"
Editado:
Esta é uma macro para um revolver de 16 posições, portanto o eixo A deve ser angular... e não tem a lógica de ligar ou desligar contatos também...
-
Dá erro de copilação, veja em anexo... :-\
Mas este macro não serve no meu caso, pois fiz o porta ferramenta com catraca, e ele pode girar só de um lado. Se tiver na ferramenta 6 e mudar para 5 por exemplo, vai agarrar... No macro que escrevi ele é obrigado á dar a volta.
-
Esta copilando sim, esqueci de apagar um "wend" no final...
Parece que este funfa!! ;D ;D
Vou modificar ele para trabalhar com catraca e posto aqui os resultados...
Obrigado Fabio!
-
Voce viu que tem uma parte da macro que faz a correção para fazer virar pelo caminho mais curto - é só eliminar alí...
-
Vou dar uma olhada, Tenho que acrescentar uma linha para andar 10º a mais e depois voltar 10º para os pinos da catraca encaixar.
-
Outra coisa...
O "Old_pos = GetDRO (5)" não devia ser (3)? ???
veja: http://www.machsupport.com/MachCustomizeWiki/index.php?title=Standard_DROs (http://www.machsupport.com/MachCustomizeWiki/index.php?title=Standard_DROs)
-
Na verdade não é um erro porque voce criou este limite entre a ferramenta 1 e 16, logo ferramenta 0 está fora do escopo.
Creio que a ferramenta 1 e 16 tb estão fora do escopo. <1 e >16 considera da 2 a 15.
-
Oi pessoal.
Onde é que eu insiro uma macro no mach3,é no VB script?
Grato.
-
Reginaldo,
Depende do que voce quer fazer...
-
Fabio
Estou desenvolvendo uma pequena fresadora 3 eixos e gostaria de fazer a troca de ferramenta automatica (com magazine giratório,como nas fresadoras profissionais) e estou começando a estudar como fazer no mach3,mas não encontro o caminho inicial.
Você pode me dar umas dicas?
Grato,Reginaldo
-
Reginaldo,
Como voce já determinou como será feito o magazine (rotativo), agora voce deve pensar em como será feito o controle.
Há diversas formas de fazer isso, e isso é que vai determinar como será feita a lógica da coisa.
Existem magazines sequenciais e outros mais complexos, com controle e lógica de posição e presença.
Veja como quer fazer e aí criamos alguma coisa.
-
Fabio
Estou pensando usar este modelo,mas fabrica-lo ok
Grato,Reginaldo
-
Interessante - quantas estações?
-
Fabio
Penso em fazer um pequeno para 10 ferramentas por exemplo.
a parte mecânica eu tenho bom recurso,a parte de programação no mach3 que sou leigo.
Aquele programinha que o Cassio Alvarenga fez para o torno,serviria para este modelo "foto" para meu projeto?
Grato,Reginaldo