21/09/2018, 09:03:01 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Homenaje a NUMERARIUS
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Traslación y Rotación de orígenes de coordenadas  (Leído 1414 veces)
0 Usuarios y 1 Visitante están viendo este tema.
eleon
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Andorra Andorra

Mensajes: 7


Ver Perfil
« : 11/07/2018, 05:23:12 am »

Buenos días,

Estoy realizando cambios en un postprocesador de control numérico de centros de fresado y se me ha presantado una duda.
Para un desplazamiento y rotación de un origen de coordenadas tengo dos posibles soluciones abajo expuestas:

Opción 1
CYCL DEF 7.1 IX-10.353
CYCL DEF 7.2 IY+3.875
CYCL DEF 7.3 IZ+9.36
PLANE SPATIAL SPA+84.355 SPB-28.881 SPC-1.216 TURN F12000 TABLE ROT

Opción 2
TRANS DATUM AXIS X-10.353 Y3.875 Z9.36
PLANE SPATIAL  SPA-85.059 SPB0.0 SPC176.051 TURN FMAX SEQ- TABLE ROT

Donde en ambos casos IX/IY/IZ es el desplazamiento respecto el origen original y
SPA/SPB/SPC son los giros de X/Y/Z respectivamente

¿Como puedo transformar el código de la opción 2 a la opción 1?

Gracias compañeros
En línea
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 42.277


Ver Perfil
« Respuesta #1 : 11/07/2018, 06:19:19 am »

Hola

 No me queda claro el problema; no conozco el software o lenguaje que utiliza esa notación (TRANS, PLANE SPATIAL, etcétera) para definir y manipular giros y traslaciones y a la hora de responderte sería bueno saber su sentido preciso.

Saludos.
En línea
eleon
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Andorra Andorra

Mensajes: 7


Ver Perfil
« Respuesta #2 : 11/07/2018, 07:02:40 am »

Hola,

Disculpas por si no logro explicarme con claridad, el problema és el siguiente:

Estoy tratando de convertir unos programas NC realizados con un postprocesador para un control numérico determinado (heidenhain 640) a programas para el control HEIDENHAIN 530. A grandes rasgos los cambios son pocos, pero el principal problema que encuentro es en la transformación del eje de coordenadas de los planos de trabajo (Workplanes).

El traslado del Origen1 al Origen2 (ver foto adjunta) con el v640 se realizada con el siguiente código:
TRANS DATUM AXIS X-10.353 Y3.875 Z9.36
PLANE SPATIAL  SPA-85.059 SPB0.0 SPC176.051 TURN FMAX SEQ- TABLE ROT

donde:
TRANS DATUM AXIS                  =  Traslado del eje (distancia) del Origen2 respecto al Origen1
PLANE SPATIAL                        =  Rotación del Origen2 respecto al Origen1
TURN FMAX SEQ- TABLE ROT      =  Obliga a una solución donde la rotación de la mesa de la máquina sea en sentido (SPA negativo).


En cambio la máquina donde quiero pasar el programa tiene una cinemática distinta, y para la misma solución en la traslación/Rotación necesita que sea de la siguiente forma:
CYCL DEF 7.1 IX-10.353
CYCL DEF 7.2 IY+3.875
CYCL DEF 7.3 IZ+9.36
PLANE SPATIAL SPA+84.355 SPB-28.881 SPC-1.216 TURN F12000 TABLE ROT

donde
CYCL DEF (7.1/7.2/7.3)              = es la translación del origen2 respecto al origen1
PLANE SPATIAL (SPA/SPB/SPC)   = la rotación de los ejes del origen2 respecto origen1 sobre el eje X,Y,Z respectivamente

La pregunta es:
Que operación matemática puedo realizar para convertir las rotaciones:
SPA-85.059 SPB0.0 SPC176.051
a
SPA+84.355 SPB-28.881 SPC-1.216

Un saludo

* origenes.PNG (18.6 KB - descargado 82 veces.)
En línea
Abdulai
Moderador Global
Pleno*
*

Karma: +0/-0
Conectado Conectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2.048


Ver Perfil
« Respuesta #3 : 11/07/2018, 10:39:23 am »

....
La pregunta es:
Que operación matemática puedo realizar para convertir las rotaciones:
SPA-85.059 SPB0.0 SPC176.051
a
SPA+84.355 SPB-28.881 SPC-1.216

Da la sensación que la diferencia entre las máquinas es una inversión del sentido positivo del eje X y una rotación de 180° del eje Z, además de un offset en cada uno.

¿Podés dar mas ejemplos?
En línea
eleon
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Andorra Andorra

Mensajes: 7


Ver Perfil
« Respuesta #4 : 12/07/2018, 04:42:49 am »

Hola,

Adjunto los dos posprocesados, mi intención es generarme un App donde pueda transformar una versión a otra y viceversa.
No sé si te servirá de ayuda.

gracias!


* Desktop.zip (2856.03 KB - descargado 80 veces.)
En línea
Abdulai
Moderador Global
Pleno*
*

Karma: +0/-0
Conectado Conectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2.048


Ver Perfil
« Respuesta #5 : 12/07/2018, 05:14:33 pm »

Adjunto los dos posprocesados, mi intención es generarme un App donde pueda transformar una versión a otra y viceversa.
No sé si te servirá de ayuda.

Sirve de mucho.


Por lo que veo no se trata que los ángulos de rotación sean diferentes en cada máquina sino que el postprocesador usa diferente criterio.

En ambos casos el nuevo eje Z queda normal a la superficie (como debe ser :sonrisa: ) pero los ejes X e Y con un giro arbitrario entre ambas máquinas.

En el programa que subiste, el V640 no utiliza la rotación en B (SPB0.0 siempre) mientras que el V530 sí.
Como no conozco esas máquinas no se si eso se debe a que el V640 no puede rotar respecto de B o porque sí.

¿Qué pasa con esto?  Que el V530 al tener un grado de libertad mas sitúa el nuevo plano XY como se le cante, mientras que el V640 no puede, lleva el nuevo eje Z a la normal a la superficie y el XY queda... donde quede. Después se generan las trayectorias de acuerdo a esto.


De no haber impedimentos en el movimiento en B, no habría que convertir nada.  Pero si lo hay se complica, pues en el pasaje del V530 al V640 también habría que convertir todas las coordenadas X,Y de las trayectorias siguientes.

En línea
eleon
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Andorra Andorra

Mensajes: 7


Ver Perfil
« Respuesta #6 : 13/07/2018, 08:37:20 am »

Hola,

Perfectamente interpretado, en el v640 esta diseñado para una máquina que el basculante puede girar +- 90º sobre "X". Por temas de visibilidad del operario de máquina, mediante postprocesador se fuerza el giro de tal forma que el eje "X" (SPA) sea siempre en negativo. En cambio el v530 esta diseñado para una máquina DMG mori, que la rotación sobre el eje "X" oscila entre -20º y +130º.
Tal y como dices posteriormente me toca ría realizar una transformación de cada coordenada.

Lo que busco es como formular la operació matemática para poder escribir el código de una solución al giro partiendo de la otra y viceversa. Para poder crear una pequeña aplicación para convertir un programa generado en el c640 al v530 y al revés.

Gracias
En línea
Abdulai
Moderador Global
Pleno*
*

Karma: +0/-0
Conectado Conectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2.048


Ver Perfil
« Respuesta #7 : 14/07/2018, 03:29:51 am »


Como la deducción de estas fórmulas es bastante largo de escribir y explicar  --->  la dejo pendiente  :sonrisa:

Si  [texx]a=SPA,b=SPB[/texx] y [texx]c=SPC[/texx]  son los de  rotación en el 530, en el 640 serán:

[texx]SPA_{640} = \text{atan}\left(-\displaystyle\sqrt{\sin(a)^2 \cos(b)^2+\sin(b)^2}\;,\;\cos(a) \cos(b)\right)[/texx]

[texx]SPB_{640} = 0[/texx]

[texx]SPC_{640} = \text{atan}\left(-(\cos(a)\sin(b)\cos(c)+sin(a)\sin(c)) \;,\; \cos(a)\sin(b)\sin(c)-\sin(a)\cos(c)\right)[/texx]

Ojo!  La función [texx]\text{atan}(y,x)[/texx]  te devuelve el ángulo en los 4 cuadrantes (en Matlab y C es atan2(y,x) )   



El ángulo de rotación de las trayectorias:    [texx]\theta = \text{atan}\left(-\sin(b)\;,\;-\sin(a)\cos(b)\right)[/texx]

Y su matriz de rotación:  [texx]R_{xy} = \begin{bmatrix}\cos\theta & -sin\theta & 0\\sin\theta & \cos\theta & 0\\0 & 0 & 1\end{bmatrix}[/texx]

Es decir, en las trayectorias siguientes hay que transformar: 
[texx]X_{640} = \cos(\theta) X_{530}-\sin(\theta) Y_{530}[/texx]
[texx]Y_{640} = \sin(\theta) X_{530}+\cos(\theta) Y_{530}[/texx]

--------------------------------------------------------------------------------

Del 640 al 530  no sería necesario convertir nada, pues te sobra 1 grado de libertad. 
Salvo que convengan giros arbitrarios en el eje B para una mejor orientación de la mesa.  Aunque no me queda claro que criterio aplicar.

--------------------------------------------------------------------------------

Por las dudas probé en MAtlab con los ángulos de tu 1er mensaje

Código:
%Angulos V530 en grados
SPA = +84.355 ;
SPB = -28.881 ;
SPC = -1.216  ;
%------------------------------------------
kd=pi/180 ;  %Constante grados->radianes
a=kd*SPA ; b=kd*SPB ; c=kd*SPC ;
w = atan2(-sin(b),-sin(a)*cos(b)) ;
s = atan2(-sqrt(sin(a)^2*cos(b)^2+sin(b)^2),cos(a)*cos(b)) ;
t = atan2(-(cos(a)*sin(b)*cos(c)+sin(a)*sin(c)),cos(a)*sin(b)*sin(c)-sin(a)*cos(c)) ;
%------------------------------------------
%Angulos V640 y giro XY en grados
[s/kd ,0, t/kd ] , w/kd


ans =
       -85.0589691824008      0    176.050728853882
     
ans =
       151.001049676576


Saludos.
En línea
eleon
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Andorra Andorra

Mensajes: 7


Ver Perfil
« Respuesta #8 : 16/07/2018, 07:07:32 am »

Buenos días,

Tiene muy buena pinta, una pregunta, Como llegas de:

ans =
       -85.0589691824008      0    176.050728853882

a:
     
ans =
       151.001049676576
En línea
eleon
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Andorra Andorra

Mensajes: 7


Ver Perfil
« Respuesta #9 : 16/07/2018, 08:54:55 am »

Hola,

haciendo la misma operación los angulos me salen distintos.
Algo mal estoy haciendo?

Adjunto cálculo

* CONVERSOR.xlsx (10.63 KB - descargado 76 veces.)
En línea
Abdulai
Moderador Global
Pleno*
*

Karma: +0/-0
Conectado Conectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2.048


Ver Perfil
« Respuesta #10 : 16/07/2018, 11:59:01 am »

Hola,

haciendo la misma operación los angulos me salen distintos.
Algo mal estoy haciendo?

Adjunto cálculo

Es el orden de los argumentos.  En Matlab, C y otros es atan(y,x)  mientras que en Excel se les dió por que sea atan(x,y).

Cambié el orden en tu planilla y devuelve OK.
En línea
eleon
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Andorra Andorra

Mensajes: 7


Ver Perfil
« Respuesta #11 : 16/07/2018, 01:19:17 pm »

Hola,

Muy agradecido, me esta siendo de gran ayuda.
Perdona que siga preguntandote, pero simplemente dos cosillas mas:

1. En el Excel que te adjunto he intentado añadir el cambio de una coordenada y no el resultado no me cuadra. Si pudieras darle un vistazo....

2. El cambio a la inversa, del 640 al 530 si que debe hacerlo. No me vale la lo mismo, y te cuento porque.

Si te fijas, todos los resultados de los giros en el v640 como bien dices tiene un grado de libertad menos, pero por contra los giros en SPA son en negativo. Cosa que la máquina que tiene el control v530 no puede hacer siempre. Ya que el rango de giro en SPA es de SPA(-15 a +125).

Saludos y mil gracias por adelantado.
 :guiño:

* CONVERSOR2.xlsx (10.93 KB - descargado 73 veces.)
En línea
Abdulai
Moderador Global
Pleno*
*

Karma: +0/-0
Conectado Conectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2.048


Ver Perfil
« Respuesta #12 : 17/07/2018, 08:48:42 am »

1. En el Excel que te adjunto he intentado añadir el cambio de una coordenada y no el resultado no me cuadra. Si pudieras darle un vistazo....

Es porque escribí la rotación al revés :sonrisa:

Es:
[texx]X_{640} = \cos(\theta) X_{530}+\sin(\theta) Y_{530}\\
Y_{640} = -\sin(\theta) X_{530}+\cos(\theta) Y_{530}[/texx]


Cita
2. El cambio a la inversa, del 640 al 530 si que debe hacerlo. No me vale la lo mismo, y te cuento porque.

Si te fijas, todos los resultados de los giros en el v640 como bien dices tiene un grado de libertad menos, pero por contra los giros en SPA son en negativo. Cosa que la máquina que tiene el control v530 no puede hacer siempre. Ya que el rango de giro en SPA es de SPA(-15 a +125).

Lo veo mas tarde, ahora estoy trabajando.

Saludos.

------------------------------------------------------------------------------------------
        Continúo
------------------------------------------------------------------------------------------


En el programa "DMG HEIDENHAIN V530.h"  se usa un rango mayor para SPA.

Me fijé solamente en la primer parte del programa:

Código:
121   PLANE SPATIAL SPA+84.355  SPB-28.881  SPC-1.216
3340  PLANE SPATIAL SPA+80.612  SPB+0.685   SPC-3.572
6679  PLANE SPATIAL SPA-71.817  SPB-57.747  SPC+153.647
10221 PLANE SPATIAL SPA+84.355  SPB-28.881  SPC-1.216
10477 PLANE SPATIAL SPA+90.0    SPB+0.000   SPC+0.000
33240 PLANE SPATIAL SPA-90.0    SPB+0.000   SPC+0.000
12039 PLANE SPATIAL SPA-108.183 SPB+57.747  SPC-26.353
13692 PLANE SPATIAL SPA+99.388  SPB-0.685   SPC+176.428
15345 PLANE SPATIAL SPA+95.645  SPB+28.881  SPC+178.784
44507 PLANE SPATIAL SPA+142.578 SPB+88.163  SPC+45.971

En apenas esa parte ya va SPA de -108° a +142° 

 :¿eh?:  Mi no comprende.
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!