Clube CNC Brasil

Softwares => Mach 2 e 3 => Tópico iniciado por: pedro eira em 12/02/11 - 18:04

Título: movimento extra
Enviado por: pedro eira em 12/02/11 - 18:04
Olá pessoal, eu tenho uma fresadora 3 eixos controlada pelo mach3, gostava de saber se é possível acrescentar uma determinada função ao controlador que é
mais ou menos isto: preciso que durante um movimento em G1 do eixo X, Y ou os dois em simultanio, o eixo Z execute um movimento constante durante todo o percurso  para cima e para baixo de  + ou -  0.5mm a 1mm.
O meu cad/cam gera um código para esse mesmo movimento, o problema é que não é reconhecido pelo mach3.
Se alguém me pudesse ajudar nesta questão, agradecia que entrasse em contacto comigo pois posso fornecer a informação mais detalhada.
Obrigado, fiquem bem.
 
Título: Re: movimento extra
Enviado por: ecarmo em 12/02/11 - 18:57
Pedro;

É perfeitamente possível interpolar os movimentos de X-Y com Z

Se vc postar maiores detalhes e o código, fica mais fácil detectar o que esta ocorrendo.
Qual CAD/CAM vc esta usando?

Abraços...
Título: Re: movimento extra
Enviado por: pedro eira em 12/02/11 - 19:13
Obrigado pela resposta.
O cad que utilizo é o Wcam, http://www.dmrsoftware.com/ como é para a área da pedra, é muito pouco conhecido aqui pela net.
Quanto ao código que ele gera para esse tal movimento em particular, vou reunir uma informação mais detalhada sobre o que pretendo se possivel com
fotos e videos e logo passo a informação.
Obrigado.
 
Título: Re: movimento extra
Enviado por: ecarmo em 12/02/11 - 20:11
Ok! fico no aguardo
Esse assunto não me é estranho, é para polir a lateral das pedras?
abraços....
Título: Re: movimento extra
Enviado por: pedro eira em 14/02/11 - 06:32
Abaixo mostro o iso com o código que o meu cam cria para esse movimento.
( Mas não é aceite pelo Mach3.)
N220 M3
N230 G1Z-34F1000
N240 #450=1     Nesta cota indica o curso de 1 mm que o Z deve executar entre Z-34.5 e Z-33.5.
N250 #449=500  Nesta indica a velocidade do Z com feed 500.
N260 M23
N270 G1X12.725Y88.65F800
N280 G2X10Y100I35J100
N290 G1Y120
N300 Y140
N310 Y160
N320 Y175
N330 G2X12.577Y183.406I25J175
N340 X17.974Y188.253I25J175
N350 X25Y190I25J175
N360 G1X40
N370 X60
N380 X80
N390 X100
N400 X120
N410 X140
N420 X160
N430 X175
N440 G2X183.09Y187.631I175J175
N450 X187.89Y182.672I175J175
N460 X190Y175I175J175
N470 G1Y160
Título: Re: movimento extra
Enviado por: pedro eira em 14/02/11 - 06:46
Para que possa funcionar como eu pretendo, tenho que modificar o iso manualmente da seguinte maneira.
(Modificação que eu faço indicada com a cro azul.)
N200 S5000
N210 M3
N220 G1Z-34F1000
N230 X12.725Y88.65F800
N240 G2X10Y100I35J100
N250 G1Y120 Z-34.5
N260 Y140 Z-33.5
N270 Y160 Z-34.5
N280 Y175 Z-33.5
N290 G2X12.577Y183.406I25J175 Z-34.5
N300 X17.974Y188.253I25J175 Z-33.5
N310 X25Y190I25J175 Z-34.5
N320 G1X40 Z-33.5
N330 X60 Z-34.5
N340 X80 Z-33.5
N350 X100 Z-34.5
N360 X120 Z-33.5
N370 X140 Z-34.5
N380 X160 Z-33.5
N390 X175 Z-34.5
N400 G2X183.09Y187.631I175J175 Z-33.5
N410 X187.89Y182.672I175J175 Z-34.5
N420 X190Y175I175J175 Z-33.5
N430 G1Y160 Z-34.5
N440 Y140 Z-33.5
N450 Y120 Z-34.5
N460 Y100 Z-33.5
N470 Y80 Z-34.5
N480 Y60 Z-33.5
N490 Y40 Z-34.5
N500 Y25 Z-33.5
N510 G2X188.685Y18.858I175J25 Z-34.5
N520 X183.116Y12.385I175J25 Z-33.5
N530 X177.942Y10.291I175J25 Z-34.5
N540 X175Y10I175J25 Z-33.5
N550 G1X160 Z-34.5
N560 X140 Z-33.5
N570 X120 Z-34.5
N580 X100 Z-33.5
N590 X80 Z-34.5
N600 X60 Z-33.5
N610 X40 Z-34.5
N620 X25 Z-33.5
N630 G2X17.856Y11.811I25J25 Z-34.5
N640 X11.966Y17.577I25J25 Z-33.5
N650 X10Y25I25J25 Z-34.5
N660 G1Y40 Z-33.5
N670 Y60 Z-34.5
N680 Y80 Z-33.5
N690 Y100 Z-34.5
N700 G2X12.725Y111.35I35J100
N710 G1X35Y100
N720 G0Z5
N730 M5
Título: Re: movimento extra
Enviado por: pedro eira em 14/02/11 - 06:53
A ideia era substituir este código: (#450=1 e #449=500) por um que fosse aceite pelo Mach3.

Encontrei um video no youtube que é exactamente o que eu pretendo.
Abraços, obrigado fiquem bem...

http://www.youtube.com/user/Marmoelettro#p/c/8CB0A061480C7EDA/9/jfy_uO3B2Z8
Título: Re: movimento extra
Enviado por: Ismael em 14/02/11 - 09:29
Pedro.

Bom dia.

Estive olhando seu topico e vc ira contruir uma maquina para isso ?
Vc que esse tipo de percurso para não gastar parelho a fresa ? Ou por outro motivo ?

Abraço
Título: Re: movimento extra
Enviado por: ecarmo em 14/02/11 - 09:59
Olá pedro eira;

Comentário sobre o primeiro código que vc enviou

Ele roda no Mach3
Só faltou colocar " ; " antes do comentário

O correto seria assim:

N240 #450=1     ;Nesta cota indica o curso de 1 mm que o Z deve executar entre Z-34.5 e Z-33.5.
N250 #449=500  ;Nesta indica a velocidade do Z com feed 500.

Existe a oscilação, ela só esta no eixo errado, porque ocorre nos eixos X-Y e deveria ocorrer no Z

Não conheço o Software que vc usa, talvez exista alguma configuração errada para gerar o GCode.

Abraços.
Título: Re: movimento extra
Enviado por: ecarmo em 14/02/11 - 10:10
Olá pedro eira;

Comentário sobre o segundo código que vc enviou.

Vc editou manualmente a oscilação do eixo Z, mas se olhar na tela do Mach3 verá que existe uma oscilação em X-Y. Isso é intencional ou foi gerado incorretamente no programa?

(http://img832.imageshack.us/img832/7744/oscilaoxy.png)

Abraços.
Título: Re: movimento extra
Enviado por: pedro eira em 14/02/11 - 10:31
Foi intencional.
Para que eu possa encontrar a cota onde ponho o movimento do Z, tive de criar manualmente vários pontos ao longo do percurso X e Y.
Em uma situação normal ele cria o seguinte:

N290 S5100
N300 M3
N310 G1Z-34F1000
N330 <#450=1>
N340 <#449=500>
N350 M23
N360 G1X10.979Y93.82F1000
N370 G2X10Y100I30J100
N380 G1Y175
N390 G2X25Y190I25J175
N400 G1X175
N410 G2X190Y175I175J175
N420 G1Y25
N430 G2X175Y10I175J25
N440 G1X25
N450 G2X10Y25I25J25
N460 G1Y100
N470 G2X10.979Y106.18I30J100
N480 G1X30Y100
N490 G0Z5
N500 M5
Título: Re: movimento extra
Enviado por: pedro eira em 14/02/11 - 10:38
Desculpe, não tinha visto a imagem que anexou.
 
A oscilação que você fala deve ser porque eu executei um quadrado de 200mm por 200mm com todos os cantos em raio de 25mm.
Título: Re: movimento extra
Enviado por: ecarmo em 14/02/11 - 11:06
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
A oscilação que você fala deve ser porque eu executei um quadrado de 200mm por 200mm com todos os cantos em raio de 25mm.

Acho que não tem nada à ver, o fato dos cantos serem redondos não explica a oscilação, ainda acho que vc esta cometendo algum erro na configuração, infelizmente não tenho acesso ao programa para verificar isso.

Consegui uma solução por outros meios, e não sei se isso lhe atenderia, porque é muito trabalhoso de fazer.
Desenhei no Sketchup o contorno do movimento que aparece no vídeo que vc enviou e gerei o codigoG no CamBam.

Código anexo:

Título: Re: movimento extra
Enviado por: pedro eira em 14/02/11 - 17:49
Olá ecarmo.

O ficheiro que você mandou funciona. mas como você referiu deve ser muito trabalhoso, bem como os que eu tenho de modificar manualmente.

Você pode reparar que o iso que eu modifiquei manualmente, embora possa ter o tal erro de oscilação em X e Y, (só modifiquei para lhe dar o exemplo, não corri no Mach3!)
o Z posiciona-se a -34 e depois a oscilação é apenas de 1mm entre Z-34.5 e Z-33.5

Não existirá um comando que possamos inserir no iso a ponto de o Mach faça a oscilação pretendida?

Me desculpe se estou a fazer uma pergunta parva, é que eu sou muito bom a programar com o cad/cam mas de controladores cnc não percebo nada.

Já corri o ficheiro no mach com o #450=1, ele é aceite mas não executa qualquer movimento em Z.

 
Título: Re: movimento extra
Enviado por: pedro eira em 14/02/11 - 17:59
(http://)Esta é a minha maquina: X 3300mm Y 1400mm Z 350mm
Título: Re: movimento extra
Enviado por: ecarmo em 14/02/11 - 18:40
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Já corri o ficheiro no mach com o #450=1, ele é aceite mas não executa qualquer movimento em Z.

É por isso que estou achando que deve haver algum problema com o software, no códigoG não sai as coordenadas de Z (apenas a inicial de Z-34).

Poderia ser pensado uma macro para alterar o codigoG no Mach3, ou mesmo um programa para fazer isso. Vou verificar tb se existe alguma possibilidade de fazer isso com alguma função. Qualquer novidade eu posto aqui.

O arquivo que enviei é um retângulo 300mm x 400mm com r=100mm, e Z=0 a -40 (senoide) mas na altura pode ser usado qualquer valor.

Abraços...
Título: Re: movimento extra
Enviado por: ecarmo em 14/02/11 - 19:20
Ola pedro eira; boas notícias.

Testei uma função no Mach3 que produz a oscilação de 1mm no eixo Z

Experimente e veja se lhe atende:

f(Z) = -34 + sin(X+Y)

Abraços.
Título: Re: movimento extra
Enviado por: pedro eira em 14/02/11 - 19:22
Ok, amanhã vou testar sem falta.
Obrigado, fica bem...
 Só uma coisa, como coloco o comando?

N220 M3
N230 G1Z-34F1000
N240 f(Z) = -34 + sin(X+Y) ???
N260 M23
N270 G1X12.725Y88.65F800
N280 G2X10Y100I35J100
N290 G1Y120
N300 Y140
N310 Y160
N320 Y175
N330 G2X12.577Y183.406I25J175
N340 X17.974Y188.253I25J175
N350 X25Y190I25J175
N360 G1X40
N370 X60
N380 X80
N390 X100
N400 X120
N410 X140
N420 X160
N430 X175
N440 G2X183.09Y187.631I175J175
N450 X187.89Y182.672I175J175
N460 X190Y175I175J175
N470 G1Y160
Título: Re: movimento extra
Enviado por: ecarmo em 14/02/11 - 20:37
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Só uma coisa, como coloco o comando?

Não é no CodigoG, na barra de ferramenta do Mach3 (em cima) click em "Function Cfg`s" e depois em "Formulas"; na janela que abrir marque exatamente como esta na figura anexa (Não se esqueça de marcar "Formulas Enabled" e depois "Ok"
O eixo Z vai variar +- 1mm conforme o valor de X e Y a partir de -34conforme corre o Gcode.

Para desativar a função, desmarque "Formulas Enabled" e depois "Ok"

Abraços...

 

Título: Re: movimento extra
Enviado por: pedro eira em 15/02/11 - 06:17
Olá ecarmo.

Hoje testei a formula que me enviou, mas com f(z) = -34+sin(x+y) dá erro. funciona com esta :f(z) = -1+sin(x+y)
o problema é que a velocidade do Z é muito lenta, e um outro problema é o facto de ter de estar a activar e desactivar constantemente a formula para não interferir em outros trabalhos.
Por exemplo, num determinado trabalho eu tenho que utilizar em média 10 ferramentas diferentes com sequência de troca automática, onde apenas duas delas que são mais ou menos a 4ª e a 5ª ferramenta, é que tem de fazer a oscilação. e aí fica tudo complicado. 


Obrigado por tudo desculpa qualquer coisa, fica bem...
Título: Re: movimento extra
Enviado por: ecarmo em 15/02/11 - 08:11
pedro eira;
Não há o que se desculpar.
No seu caso a unica maneira é resolver através do Gcode; como já citei antes, não tenho acesso ao software que vc usa, e não sei os parâmetros dele.
Existe 2 alternativas para evitar a edição manual:
Procurar solucionar o problema com o seu software ou substitui-lo.
Ainda não larguei o osso; se encontrar outra forma eu relato.
Abraços...
Título: Re: movimento extra
Enviado por: matrix em 15/02/11 - 09:59
Olá a todos,

Penso eu que uma solução seria utilizar uma macro para activar e desactivar as formulas, dessa forma é só colocar ex: m500 entre o
código G para activar de colocar M501 no final para desactivar.

É só uma ideia, acha que funciona Ecarmo ?
Título: Re: movimento extra
Enviado por: ecarmo em 15/02/11 - 10:44
Olá Matrix;

Eu acho uma tentativa válida, e pode trazer um resultado útil .
Ocorre que da mesma forma teria que editar o código manualmente.
Como o colega pedro eira relatou, ele necessita utilizar várias ferramentas, e provavelmente o código dever ser muito longo e complexo, o que demanda algum trabalho manual e experimentação para apurar o local exato das incersões.
Nesse tópico, apesar de ainda não conserguir-mos resolver satisfatóriamente, já apareceu alguns assuntos que pode ter desdobramentos em outros casos diferentes.
Ainda acho que a melhor solução é via software gerador do Gcode.

Abraços.

Título: Re: movimento extra
Enviado por: matrix em 15/02/11 - 11:01
Sim, mas uma coisa é estar a alterar linha a linha, e outra é colocar um código m500 no inicio e um código m501
no final.

Se utilizar o exemplo da sua formula e fazer uma macro para ligar as formulas e outra para desligar.

Não domino as formulas nem as macros, você sabe fazer uma macro para ligar as formulas?

Título: Re: movimento extra
Enviado por: pedro eira em 15/02/11 - 11:09
Olá amigos,

Como o Matrix sugeriu, para mim não há problema algum em inserir  M500 e M501 apenas no Gcode das ferramentas que pretendo a oscilação, pois utilizo um programinha que se chama : Multiple File Search and Replace que está em http://www.internet-soft.com/replace.htm, que é simplesmente extraordinário, podemos criar uma lista do-que  queremos que ele modifique e depois é só primir run e pronto temos tudo modificado como nós queremos em apenas 1 click.

A unica questão aqui seria só, na oscilação conseguir mais velocidade em Z.
Obrigado.
Título: Re: movimento extra
Enviado por: pedro eira em 15/02/11 - 11:12
Aqui vai um exemplo do Gcode original criado pelo cad/cam:


%
N10 {VER 6.0.3.236 - D:\TESTEI~1\1 - WKMACH=0 -  15-02-2011 - 14:12:12 CSL5}
N20 <OTT=R100>
N30 R2=0.0 {SPESSORE MATERIALE}
N40 D0
N50 G0G90
N60 G0G53Z0
N70 M81 {Unlock A}
N80 M83 {Unlock C}
N90 {LUN325=325+0.0}
N100 G17
N110 R3=5 {QUOTA SICUREZZA RAPIDI}
N120 <IFF <OTT>:N140;N140;N130>
N130 <IFF <R117>:N420;N420;N140>
N140 (fresa 20 UTENSILE CODICE 64397332243075)
N150 T17M6
N160 <IFF <OTT>:N170;N170;N180>
N170 R99=1
N180 L<ORIGINI>
N190 M67
N200 M82 {Lock A}
N210 G0C90
N220 M84 {Lock C}
N230 G64 {Fast positioning and fast feed}
N240 G0X0.0Y-10
N250 M81 {Unlock A}
N260 A0.0
N270 M82 {Lock A}
N280 G0G43Z=R3
N290 S5100
N300 M3
N310 G1Z-30F100
N320 <LCK:OFF>
N330 <#450=1>
N340 <#449=500>
N350 M23
N360 G1X300F1000
N370 M25
N380 M05
N390 G0Z=R3
N400 M81 {Unlock A}
N410 M83 {Unlock C}
N420 <LCK:ON>
N430 <IFF <OTT>:N450;N450;N440>
N440 <RET>
N450 M32
N460 M30
Título: Re: movimento extra
Enviado por: pedro eira em 15/02/11 - 11:15
Agora o mesmo modificado em um click pelo tal programinha:
Reparem no M500 e M501 em azul.

%
N10 (VER 6.0.3.236 - D\TESTEI~1\1 - WKMACH=0 -  15-02-2011 - 141212 CSL5)
N20
N30
N40 D0
N50 G0G90
N60 G0G53Z0
N70 M81 (Unlock A)
N80 M83 (Unlock C)
N90 (LUN325=325+0.0)
N100 G17
N110 R3=5 (QUOTA SICUREZZA RAPIDI)
N120 (N140N140N130)
N130 ( AA117FFFN420N420N140)
N140 (fresa 20 UTENSILE CODICE 64397332243075)
N150 T17M6
N160 (N170N170N180)
N170 G54
N180
N190 M67
N200 M82 (Lock A)
N210 G0C90
N220 M84 (Lock C)
N230 G64
N240 G0X0.0Y-10
N250 M81 (Unlock A)
N260 A0.0
N270 M82 (Lock A)
N280 G0G43Z=R3
N290 S5100
N300 M3
N310 G1Z-30F100
N320 (LCKOFF)
N330 M500
N340 (#449=500)
N350 M23
N360 G1X300F1000
N370 M25
N380 M05
N390 G0Z=R3
N400 M81 (Unlock A)
N410 M83 (Unlock C)
N420
N430 (N450N450N440)
N440
N450 M501
N460 M30
Título: Re: movimento extra
Enviado por: pedro eira em 15/02/11 - 11:21
Sei que devem achar estranho porque é que utilizo esse programinha para modificar o Gcode.

Eu explico melhor,
Comprei uma maquina aqui há 7 anos atrás que trazia o cad/cam e gerava o Gcode correto para ela,
uma infeliz noite tive um curto circuito no quadro eletrico e simplesmente derreteu tudo, como para o reparo do mesmo era simplesmente uma exorbitante quantia de dinheiro, nós resolvemos ser nós a reparar o mesmo, metemos o mach3 e quanto ao cad/cam resolvemos com o multiple file search and replace.

Acho que me expliquei!
Obrigado
Título: Re: movimento extra
Enviado por: ecarmo em 15/02/11 - 23:51
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Sim, mas uma coisa é estar a alterar linha a linha, e outra é colocar um código m500 no inicio e um código m501
no final.
Não domino as formulas nem as macros, você sabe fazer uma macro para ligar as formulas?

O problema é como fazer a interpolação em tempo real do eixo Z oscilante com os eixos X-Y
Na formula que postei, ocorre a oscilação em tempo real, mas é muito lenta para a velocidade dos eixos e depende da variação de X ou Y para completar a senoide.

Seria mais funcional implementar uma formula envolvendo o tempo, mas desconheço alguma documentação sobre isso e nem sei se é possível.

Uma macro para criar um movimento oscilante no eixo Z pode ser um caminho, ela pode ser chamada ou desativada junto com a instrução da troca de ferramenta.
Talvez pudesse fazer uma macro para tratar o código antes de rodar para inserir as coordenadas do Z; vou pensar um pouco sobre isso e talvez surja alguma coisa, vamos ver...

Abraços...
Título: Re: movimento extra
Enviado por: ecarmo em 16/02/11 - 00:02
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Reparem no M500 e M501 em azul.

Você poderia postar as macros M500 e M501?

Abraços...
Título: Re: movimento extra
Enviado por: matrix em 16/02/11 - 05:39
Citar
Você poderia postar as macros M500 e M501?

Penso que o nosso amigo Pedro referia as macros como exemplo onde colocar, e como.


Título: Re: movimento extra
Enviado por: pedro eira em 16/02/11 - 07:05
Exactamente, amigo matrix.

Pois foi em função da sua ideia, sinseramente eu disso pouco percebo.

Obrigado.
Título: Re: movimento extra
Enviado por: fgilii em 16/02/11 - 15:27
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Já corri o ficheiro no mach com o #450=1, ele é aceite mas não executa qualquer movimento em Z.

É por isso que estou achando que deve haver algum problema com o software, no códigoG não sai as coordenadas de Z (apenas a inicial de Z-34).
No exemplo do programa existe esta variável (#450) e foi atribuido um valor a ela (1) mas em momento algum ela foi usada (ou chamada) - por exemplo " G01 Z -#450" = neste caso, eu disse para descer o "Z" no valor da variável...
Título: Re: movimento extra
Enviado por: matrix em 16/02/11 - 18:26
Olá Fábio, contactei a artsoft e infelizmente o Scott disse que não é possível ligar ou desligar as formulas através de um script,
portanto voltamos ao inicio.
Título: Re: movimento extra
Enviado por: ecarmo em 16/02/11 - 21:26
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Olá Fábio, contactei a artsoft e infelizmente o Scott disse que não é possível ligar ou desligar as formulas através de um script,
portanto voltamos ao inicio.

Nisso eu vou discordar, com um Script eu posso imputar valores aos eixos. uma fórmula não pode ser desligada, mas pode ser anulada se o resultado for Zero.
Como as fórmulas usam as posições dos eixos para apresentar um resultado, pode-se usar um eixo vago como comando para ativar ou desativar uma fórmula.

Por exemplo

f(z) = Z+(X*A)

Supondo A como sendo um eixo fora de uso.
Se A = 0  a formula é inativa, e se A = 1,  Z é igual a Z+X

Abraços...
Título: Re: movimento extra
Enviado por: matrix em 17/02/11 - 06:02
Ecarmo, sim concordo contigo mas isso não invalida a informação que me foi dada pelo scott, a tua ideia contorna
esse problema e diga-se que é uma excelente ideia e pode resultar.

Fazer uma macro m500 que impute um valor na DRO do eixo A, e fazer outra macro m501 que impute um valor de zero, desta forma anula
a a formula porque o valor é zero,

Pode resultar, fazer isso é que não é a minha praia.
Título: Re: movimento extra
Enviado por: ecarmo em 17/02/11 - 09:51
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Citar
Você poderia postar as macros M500 e M501?
Penso que o nosso amigo Pedro referia as macros como exemplo onde colocar, e como.
Eu supus que ele já tivesse as macros; existe algumas pastas no diretório do Mach3 para macros conforme o template do tipo da máquina (fresa , torno ou plasma); nesse caso provavelmente deveria estar em:
C:\Mach3\macros\Mach3Mill

A forma de fazer é através de vbscript; existe um console vbscript para confecção, testes e depuração e salvar as macros, esta acessível na tela do Mach3 em:

Operator -> VB Script Editor

Abraços...

Título: Re: movimento extra
Enviado por: ecarmo em 17/02/11 - 09:59
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Olá Fábio, contactei a artsoft e infelizmente o Scott disse que não é possível ligar ou desligar as formulas através de um

Matrix; se vc tem acesso ao pessoal da Artsoft, poderia pedir maiores informação sobe o uso de fórmulas (praticamente inexiste documentação).
Seria possível utilizar o tempo como variável na função?
Quais são (todas) as operações matemáticas e trigonométrica que podem ser usadas?
Posso usar operações lógicas?
Posso inserir um script?
Além das anteriores existe outras possibilidades?

Além disso, existe alguma outra abordagem que pode ser utilizada para solucionar o caso.

Abraços
Título: Re: movimento extra
Enviado por: matrix em 17/02/11 - 10:22
Ecarmo, infelizmente o meu acesso é muito limitado, e o meu inglês e o meu conhecimento mais técnico não ajuda nada, poderia
fazer esse tipo de perguntas mas só iria gerar mais perguntas, e eu não quero incomodar (muito) o pessoal da artsoft.

Mas posso tentar pedir mais informação, para isso tenho de colocar perguntas muito concretas, eu vou começar
por perguntar se tem mais informação sobre formulas, depois posto o resultado.

 
Título: Re: movimento extra
Enviado por: ecarmo em 17/02/11 - 10:53
Ok Matrix;

Toda informação é valiosa, agradeço qualquer novidade; creio que é interesse da Artsoft expor as funcionalidades do Mach3
No caso das formulas, além das informações serem praticamente inexistentes (pode até ser que existam, mas eu não encontrei); o uso das fórmulas parece muito limitado (apesar de poderoso em alguns casos), eles poderiam oferecer maiores recursos em versões futuras.

Abraços.
Título: Re: movimento extra
Enviado por: fgilii em 17/02/11 - 11:19
Eu estava entendendo que a idéia era fazer o eixo "Z" ter um movimento alternativo e constante durante as usinagens, independente do percurso adotado...

Pelo que pude entender, atraves das formulas eu consigo um determinado deslocamento alternativo sim, mas so com um ciclo e que dura apenas o percurso ou seja - sai de zero, vai at[e o m[aximo de Z (pela formula) e volta a zero...

Eu tenho a sensa;'ao que o melhor ainda seria criar uma rotina que faca um movimento alternativo - duas macros - uma liga a rotina e outra desliga.
Título: Re: movimento extra
Enviado por: ecarmo em 17/02/11 - 11:47
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Eu estava entendendo que a idéia era fazer o eixo "Z" ter um movimento alternativo e constante durante as usinagens, independente do percurso adotado...
Isso, mas acho que que pode ter ficado um entendimento ambíguo; O movimento de Z, tem que ser alternativo (senoide), mas tem que ter a duração do trecho de percurso onde seja necessário esse comportamento de Z , o que tá pegando (ente outras coisas) é o numero de oscilações por unidade de X e Y.

Citar
Pelo que pude entender, atraves das formulas eu consigo um determinado deslocamento alternativo sim, mas so com um ciclo e que dura apenas o percurso ou seja - sai de zero, vai at[e o m[aximo de Z (pela formula) e volta a zero...
Acho que não (mas não estou certo disso), provavelmente eu consigo promover alguns ciclos na dimensão da usinagem (estou considerando um quadro de 300 x400 com cantos redondos). Ocorre que é muito pouco para a necessidade.

Correção; após novos testes, ficou claro que eu consigo uma senoide por linha de Gcode:
por exemplo:
G1 X0
G1 X100 ; consigo 1 oscilação

G1 X0
G1 X50
G1 X100 ; consigo 2 oscilações




Citar
Eu tenho a sensa;'ao que o melhor ainda seria criar uma rotina que faca um movimento alternativo - duas macros - uma liga a rotina e outra desliga.
Eu tb acho que uma rotina poderia ser uma boa opção. Estou considerando algumas possibilidades, inclusive essa; vc teria como fazer essa rotina? Meu vb é meio manqueta.  ;D

Como ja relatei antes, acho que o melhor seria via Gcode no programa gerador.
Vc conhece algum programa que ofereça esse tipo de percurso?

No SU eu consigo gerar esse percurso, mas dá o mesmo trabalho que editar o código à mão, preciso desenhar linha a linha o contorno senoide na curva, estou procurando um plugin para automatizar isso, se encontrar ou conseguir modificar esse abaixo (não sei nada de Ruby, alguém se habilita) estará resolvido.
Código: Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
require "sketchup"

module JF
    def self.draw_sine_wave
        pr = %w( Length Amplitude Segments )
        de = [10, 5, 24]

        ret = UI.inputbox(pr, de)
        return unless ret
        #a = 10.0.feet
        #b = 250.0.feet
        b, a, s = ret.map{|e| e.to_l}
        pts = []
        0.step(b, b/s) do |x|
            y = a * Math::sin( (x / b) * 2 * Math::PI)
            pts << [x, y]
        end
        Sketchup.active_model.start_operation("Sine Wave")
        grp = Sketchup.active_model.active_entities.add_group
        entities = grp.entities
        entities.add_edges pts
        Sketchup.active_model.commit_operation

    end

end
unless file_loaded? "sine_wave.rb"
    UI.menu("Plugins").add_item("Sine Wave") { JF.draw_sine_wave }
    file_loaded "sine_wave.rb"
end

Abraços


Título: Re: movimento extra
Enviado por: matrix em 17/02/11 - 13:31

Bom trago algumas noticias sobre a minha consulta ao Scott.

1º ele diz-me que nos já respondeu ao dezenas de milhares de perguntas sobre o mach e eu fui o primeiro a fazer uma
pergunta sobre as formulas, isto leva-me a pensar de duas formas:

Ou nunca ninguém trabalhou com formulas e por consequençia não á perguntas.
Ou eu sou tótó e fiz uma pergunta estúpida. 

2º Tem neste fórum http://www.machsupport.com/forum/index.php/topic,4126.0.html uma breve explicação sobre formulas que, ele
diz que podem ajudar a entender o básico, mas está em ingles e isso dificulta o meu entendimento.

Dá uma vista de olhos e diz qualquer coisa.
Título: Re: movimento extra
Enviado por: ecarmo em 17/02/11 - 14:29
Valeu Matrix;
Eu já tinha visto essa página quando estava atrás de subsídios para um quarto eixo, pena que na época passou batido. agora vai pros favoritos.
Veja com esse assunto é escasso, só há uns poucos detalhes. Realmente existe um numero muito restrito de pessoas que usam as formulas do Mach3 (inclusive nos aqui  ;D); por isso a dificuldade de encontrar informações à respeito.
Mas eu antevejo nisso um recurso poderosissimo que pode influenciar até o designer das maquinas que usamos (já tô com umas caraminholas na cabeça).
Abraços...
Título: Re: movimento extra
Enviado por: matrix em 17/02/11 - 16:51
Acabei por esquecer de dizer que não existe manual para as formulas.

 
Título: Re: movimento extra
Enviado por: ecarmo em 17/02/11 - 17:38
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Acabei por esquecer de dizer que não existe manual para as formulas.

É o que esta ocorrendo, as coisas vão no chute e na tentativa e erro; essa é uma falha da Artsoft, eles fazem a bagaça e não documentam; se passar muito tempo até quem fez a programação dessa parte do soft acaba esquecendo muitos detalhes, e os outros então, ficam completamente boiando no assunto).

Abraços.

Título: Re: movimento extra
Enviado por: pedro eira em 17/02/11 - 18:48
Olá pessoal tudo bem?

Não sei se isto que vou dizer, é uma grande asneira ou não mas de qualquer maneira cá vai:
Como o amigo ecarmo pôs este exemplo:

Correção; após novos testes, ficou claro que eu consigo uma senoide por linha de Gcode:
por exemplo:
G1 X0
G1 X100 ; consigo 1 oscilação

G1 X0
G1 X50
G1 X100 ; consigo 2 oscilações.

O meu cad/cam gera isto:

Título: Re: movimento extra
Enviado por: ecarmo em 17/02/11 - 23:29
Olá Pedro eira;
Não é nenhuma asneira, até faz muito sentido.
Ocorre que com muitos segmentos a coisa não funfa como o esperado.
Vou continuar experimentando. Qualquer novidade eu posto.
Abraços...
Título: Re: movimento extra
Enviado por: matrix em 18/02/11 - 10:46
Estive a pensar um pouco sobre a situação que o ecarmo falou, usar a DRO do eixo A para imputar valores
de forma a validar as formulas.

A ideia é fazer uma macro que imputasse valores nas dro  dos eixos A/B/C ( eixos que não são usados) Ex:

Quando A macro m500 for activa ela imputa os valores da seguinte forma:

Eixo A seria o valor onde o eixo Z se encontra no momento , poderemos por um exemplo de 60mm.( isto porque este valor pode ser diferente por causa do tipo de ferramenta)

Eixo B seria o valor do eixo Z menos 1 milímetro, que daria um valor de 59mm

Eixo C seria o valor do eixo Z mais 1 milímetro, que daria um valor de 61mm

Quando a macro m501 for activa os valores dos eixo voltam para zero, isto para de certa forma anular o efeito da formula.


Agora é só fazer uma formula que faça o eixo Z oscilar entre o valor B e o valor C, penso eu que seria colocada no campo f(z).

Isto falando assim por alto o que acham?




     
Título: Re: movimento extra
Enviado por: ecarmo em 18/02/11 - 11:04
Olá Matrix;
Nem precisa de macro para colocar o valor nos eixos
Basta enumerar o eixo no gcode

G00 B59 C61 A1

Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Agora é só fazer uma formula que faça o eixo Z oscilar entre o valor B e o valor C, penso eu que seria colocada no campo f(z).

Isto falando assim por alto o que acham?

A idéia é boa, vou tentar fazer alguma coisa  ?_26

Abraços
Título: Re: movimento extra
Enviado por: matrix em 18/02/11 - 12:52


Ecarmo , a ideia de ser uma macro é para pegar sempre o valor real do eixo Z, ou seja, dependendo da ferramenta, a oscilação tem que acontecer
a partir sempre de um determinado sitio, que não é sempre o mesmo, uma ferramenta pode ser a 30mm e outra pode ser a 60mm.

Isso evita de procurar sempre qual vai ser o sitio da oscilação e colocar manual mente nos DROs dos eixos, dessa forma é só colocar o
codigo da macro no sitio certo, e para fazer isso automaticamente o tal programa replacer funcionara perfeitamente.

Entendeu?

   
Título: Re: movimento extra
Enviado por: ecarmo em 18/02/11 - 13:06
Matrix;
O lance da formula é sempre trabalhar com valor real do DRO, elas foram pensadas apenas para fazer correções na geometria das máquinas em "tempo real" (com isso por exemplo é possível controlar um braço robótico a partir do código G comum para 3 eixos) se houvesse a possibilidade de colocar apenas uma instrução condicional (como em qualquer linguagem de programação) já estaria resolvido.

O problema é como detectar e expressar essa idéia numa formula matemática com as limitações existentes.
Como ativar é a outra parte do problema, por hora a tentativa é fazer algo que funcione (mas acho muito difícil por esse meio sem tirar um coelho da cartola) ?_49

Abs...
Título: Re: movimento extra
Enviado por: matrix em 18/02/11 - 13:19
Estou a perceber, um resumidamente, a ideia inicial das formulas é corrigir um eixo em relação a outro, é isso?

 
Título: Re: movimento extra
Enviado por: ecarmo em 18/02/11 - 13:40
Exatamente! A idéia era corrigir ele dele mesmo ou em função dos outros.
Digamos que um  eixo Z esteja montado oblicuo na posição diagonal de um quadrado, o Gcode manda Z-10
A diagonal de um quadrado de lado 1 é 1.414; na função ficaria assim:
f(x) Z*1.414
Toda vez que o gcode manda G01 Z-10 o eixo Z move na diagonal -14.14 e desce na vertical -10

=                    l
      =              l
             =       l
                   = l
  
Basicamente conciliar a geometria da maquina com a instrução do Gcode; pensando um pouco dá pra fazer uma maquina de 3 eixos apenas com 2  ;D
Abraços...
Título: Re: movimento extra
Enviado por: fgilii em 18/02/11 - 14:05
Enoch e Matrix,

Uma idéia seria trabalhar com coordenadas incrementais (G90) e não absolutas (G91)...

Independente de onde esteja o "Z" (falando em coordenadas) a macro leria o DRO e faria a oscilação...

O duro é que além de falta de tempo, não conheço o suficiente de VB para programas algo... me desculpem
Título: Re: movimento extra
Enviado por: fgilii em 18/02/11 - 14:08
Outra idéia meio absurda, mas que talvez funcione seria usar os sinais para controle de altura de uma tocha de plasma, e fazer os movimentos em "Z".

O Mach3 tem esta função de controle de altura de "Z" independente do que foi programado em código-G.

Faria um controle de oscilação analogico, e o Mach3 leria e executaria.

A vantagem é que se pode inclusive fazer variar a velocidade de reação do "Z" em relação à velocidade do eixo propriamente dito e o que foi programado em termos de velocidade de avanço.
Título: Re: movimento extra
Enviado por: ecarmo em 18/02/11 - 14:23
Obrigado Fábio;

São muitos caminhos, esse que vc citou são bem promissores; solução tem!
Precisamos de tempo! Tempo para amadurecer as idéias e tempo + conhecimento para por em prática.
Não tenho duvida que conseguiremos; só não sei quando.   ?_12

Abraços.
Título: Re: movimento extra
Enviado por: ecarmo em 18/02/11 - 15:26
Olá pedro eira;
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
O meu cad/cam gera isto:
Se vc consegue dividir os segmentos de 10mm em 10mm

Experimente essa fórmula:

Z+cos((X+Y)*628)

Como esse Gcode:

G90 G21 G61
G0 X0 Y0 Z-30
F500
G1X10
G1X20
G1X30
G1X40
G1X50
G1X60
G1X70
G1X80
G1X90
G1X100


Abraços...
Título: Re: movimento extra
Enviado por: pedro eira em 18/02/11 - 16:37
Olá ecarmo, já fiz o teste.

É muito semelhante há primeira, se não igual. E também detectei um pequeno problema que:
com a formula activa, faz pequenas pausas durante o percurso, tanto com esta nova formula ou com a primeira.

Pude detectar isso hoje porque tive algum tempo livre.

Abraços.
Título: Re: movimento extra
Enviado por: ecarmo em 18/02/11 - 16:47
Olá pedro eira;

Experimente substituir G61 por G64

Abaços
Título: Re: movimento extra
Enviado por: matrix em 19/02/11 - 10:51
Ou estou enganado (não estou com maquina para testar) mas essa formula funciona.

Ela está a variar 1mm no eixo Z, o problema vai ser quando o gcode for em IJ mode.

Pelo que eu percebi das formulas, e como diz o nosso ecarmo, vai ser difícil tirar coelhinho da cartola, hehehe.
Título: Re: movimento extra
Enviado por: matrix em 19/02/11 - 10:56
Ecarmo, pode explicar o significado dessa formula?

Z+cos((X+Y)*628)??

Só para ter uma ideia.
Título: Re: movimento extra
Enviado por: ecarmo em 19/02/11 - 11:35
Matrix;

Z  = posição inicial
+  = para acrescentar a variação
cos = cosseno da variavel (pode assumir qualquer valor entre -1 e 1)
( ) = separar as operações matemáticas por nível de prioridade.
X = posição atual do eixo X
+ = somar a posição de X com Y (aqui é o pulo do gato para detectar algum movimento)
Y = posição atual do eixo Y
* = multiplicação por um fator de ajuste
628 = múltiplo de uma circunferência completa em radianos (poderia ser outro valor de melhor ajuste)

Abraços...
Título: Re: movimento extra
Enviado por: matrix em 19/02/11 - 12:31
Percebo.

E se utilizar a aplicação brains para imputar valores no eixo A.

Acho que com o brains podemos fazer oscilar entre 0 e 30 em função dos eixos YX .

O que achas?
Título: Re: movimento extra
Enviado por: pedro eira em 21/02/11 - 09:14
Olá ecarmo.
já efectuei o teste em G64 e funciona perfeitamente.

Para já o único problema é ter que activar e desactivar a formula manualmente.

Obrigado a todos os envolvidos, já é um grande começo!
Abraços.
Título: Re: movimento extra
Enviado por: ecarmo em 21/02/11 - 10:25
 pedro eira;

Ótima noticia, resolvido a primeira parte podemos concentrar na segunda.

Abraços...
Título: Re: movimento extra
Enviado por: ecarmo em 21/02/11 - 21:04
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
E se utilizar a aplicação brains para imputar valores no eixo A.

Matrix, eu não estou familiarizado com o uso de brains, não sei qual as possibilidades de usar nesse caso.

Abraços...
Título: Re: movimento extra
Enviado por: ecarmo em 21/02/11 - 21:16
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
já efectuei o teste em G64 e funciona perfeitamente.
Para já o único problema é ter que activar e desactivar a formula manualmente.

Para ativar e desativar, utilize a seguinte fórmula:

Z+(cos((X+Y)*628)*C

Obs: é necessário ativar o eixo C em "Config" -> Ports & Pins -> Motor Outputs
Marque:
 C axis "Enabled" o resto da linha tudo "0" (zero) e desmarcado.

Para funcionar coloque "C0" no inicio do Gcode e "C1" na linha que deseja ativar; novamente "C0" na linha que deseja desativar.

Eu testei nesse Gcode e funcionou perfeitamente.

G90 G21 G64
G0 X0 Y0 Z0 C0
F500
G1 Z-30
G1 X10
G1 X20
G1 X30
G1 X40
G0 C1
G1 X50
G1 X60
G1 X70
G1 X80
G1 X90
G1 X100
G1 X110
G1 X120
G0 C0
G1 X130
G1 X140
G1 X150
G1 X160
G1 X170
G1 X180
G1 X190
G1 X200
M30


Abraços
Título: Re: movimento extra
Enviado por: fgilii em 22/02/11 - 05:58
Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
Para funcionar coloque "C0" no inicio do Gcode e "C1" na linha que deseja ativar; novamente "C0" na linha que deseja desativar.
Excelente idéia...
Título: Re: movimento extra
Enviado por: ecarmo em 22/02/11 - 08:35
Fábio;

Bem simples, um ovo de Colombo, poderá ser usado para outros casos; segundo relatou o nosso colega Matrix, em todos esses anos ninguém havia consultado a Artsoft sobre o uso de fórmulas.
Considero essa solução apenas um paliativo, funcionou na especificidade desse caso, mas esta longe de uma solução definitiva.
Acho que existe outras possibilidades inexploradas (pelo menos para a grande maioria) sobre algumas funcionalidades do Mach3; Brains já esta na minha mira (obrigado Matrix por levantar a lebre).

Abraços...
Título: Re: movimento extra
Enviado por: matrix em 22/02/11 - 10:39
Ecarmo, sim funciona perfeitamente, embora seja apenas uma solução de (desenrasque).

Não tem que agradecer, isto demonstra a utilidade deste e outros fóruns, por vezes estamos agarrados a um caminho
e esquecemos que existe outro, diferente, mas que também pode nos levar ao mesmo sitio, (ou não).