Asociación Española de Ingeniería Mecánica XVIII CONGRESO NACIONAL DE INGENIERÍA MECÁNICA Obtención de una trayectoria espiral para mecanizar con herramienta esférica superficies STL partiendo de su contorno J.L. Huertas, J.J. Marín, L. Berges, M. Vidal Departamento de Ingeniería de Diseño y Fabricación. Centro Politécnico Superior de Ingenieros. Universidad de Zaragoza jhuertas@unizar.es F. Valdivia Centro Integrado de Formación Profesional “Corona de Aragón” Resumen Para mecanizar una superficie arbitraria se han ideado diversos modelos en los que la herramienta debe retirarse de la pieza con los consiguientes problemas de alejamiento y acercamiento como son las marcas de mecanizado no deseadas o el tener que programar trayectorias adicionales de tipo tangencial con la consiguiente pérdida de tiempo. La realización de trayectorias de mecanizado espirales evita los problemas anteriores, permitiendo un mecanizado continuo de la pieza y eliminado trayectorias de alejamiento y acercamiento. INTRODUCCIÓN Diversos autores [1] han tratado el tema del mecanizado de superficies, algunos lo han aplicado al fresado de diversas zonas del zapato [2] incluida la planta [3], también, recientemente, se viene publicando sobre los errores obtenidos en el mecanizado de superficies mediante fresa de punta esférica [4]. También hay numerosa bibliografía sobre superficies y su mecanizado, especialmente merece citar la parametrización de las mismas mediante NURBS [5]. Pero en el caso que nos ocupa se van a mecanizar superficies en formato STL [6] METODOLOGÍA Partiendo de las superficies STL, que no encierren un volumen y que toda su cara exterior posea los vectores directores con componente z positiva, figura 1, se realiza su lectura de un fichero en formato binario [6], Tras esta lectura se utiliza un método de almacenamiento en memoria basado en vectores [7] en orden a optimizar el tiempo de proceso y la cantidad de información en memoria. Fig. 1. Ejemplo de superficie STL. J.L. Huertas et al. / XVIII Congreso Nacional de Ingeniería Mecánica (2010) 2 Posteriormente, se han de realizar una serie de operaciones con el fin de optimizar la fase de mecanizado: 1. Obtención del contorno. 2. Obtención de la trayectoria de mecanizado. Transformación a espiral. 3. Aplicación de algoritmos para suavizar el perfil. 4. Proyección de los puntos de la trayectoria sobre la superficie. 5. Cálculo de la trayectoria x, y, z final. OBTENCIÓN DEL CONTORNO DE LA SUPERFICIE Este proceso es de suma importancia, pues en él está basado el desarrollo posterior, como es el cálculo de las sendas de mecanizado y el corte final para extraer, si es preciso, la superficie de la preforma inicial. En principio, aunque existen otras variantes, se parte del hecho de que un lado del borde solamente pertenece a un triángulo, mientras que los lados interiores pertenecen a dos o más triángulos, figura 2. Para su obtención se ha implementado un algoritmo que facilita la polilínea final. Triángulo i Lado i1, i2, i3 Triángulo j i Lado j1, j2, j3 lado ik lado jl no si Lado del contorno Siguiente j lado 2 no contorno Almacena lado ik como borde Siguiente i Fig. 2. Condición de un lado para ser contorno. Por último, se elige como inicio de la polilínea obtenida el punto más significativo de los extremos de los segmentos que forman la polilínea, según un determinado criterio, como pueden ser: - El punto con la coordenada x más a la izquierda. - El punto más próximo a una dirección y sentido determinado (dado por un vector unitario cos , cos , cos . - Cualquier criterio que permita obtener un punto único. En el caso que nos ocupa se a elegido el punto con la componente x ó abcisa de menor valor (el más a la izquierda al observar una fresadora). La última parte de esta fase es la ordenación, a partir del punto elegido como inicial, de todos los puntos según un sentido de recorrido que interese. OBTENCIÓN DE LA TRAYECTORIA ESPIRAL El algoritmo para realizar las pasadas de contorneado para el fresado parte del perfil exterior o contorno de la superficie, que se considera el primer perfil. El objetivo es calcular los siguientes perfiles para ir eliminando el material de fuera hacia adentre (aunque, posteriormente es posible una reordenación para alterar el orden de mecanizado). Obtención de una trayectoria espiral para mecanizar con herramienta esférica superficies STL 3 Las pasadas de mecanizado, inicialmente, son perfiles “paralelos” que se obtienen como muestra la figura 3 desplazando cada punto hacia el interior del perfil una cantidad en la dirección del eje OX y otra en la dirección del eje OY. Algo así como si se realizara una escala, pero variable en cada dirección. El dato de entrada es la distancia p que hay entre puntos homólogos, pero medida en una cierta dirección que depende de la posición del punto. Perfil inicial 1 ymáxi II I Perfiles sucesivos: 2, 3, … xmáxi c.g. xmíni IV III p ymíni Fig. 3. Obtención de perfiles previos al espiral. La posición del punto se clasifica por cuadrantes originados por un sistema de coordenadas. Este sistema de coordenadas puede ser elegido en función de diversos parámetros. Se ha tomado como origen el centro de gravedad de la serie de puntos iniciales: xcg xi ycg yi (1) n n Este sistema de coordenadas clasifica el plano en cuadro cuadrantes (I, II, III y IV). Para clasificar cada punto simplemente se realiza su diferencia respecto del c.g. A cada punto se le aplica un desplazamiento (en realidad se multiplican sus coordenadas por una escala). Se tienen en cuenta las distancias de dicho punto a cada eje coordenado. Por ejemplo: - Si el punto está en el primer cuadrante, las escalas en la dirección OX y OY, en función de unos determinados pasos, px y py, en cada dirección, que más adelante se comentan, son: px e x 1 x máx x c. g . py e y 1 y máx y c.g . (2) Con lo anterior es posible calcular las coordenadas del punto transformado en el sistema de coordenadas universal elegido. J.L. Huertas et al. / XVIII Congreso Nacional de Ingeniería Mecánica (2010) 4 x p xi x cg e x x cg y p y i y cg e y y cg (3) En esta ocasión los pasos en x e y px y py toman el mismo valor, dado por la expresión que se obtiene de la figura 4 en función del radio de la herramienta esférica y de la cresta de rugosidad f si supuestamente el fresado fuera en el plano horizontal: r r-f f p/2 p Fig. 4. Obtención de perfiles previos al espiral. 2 p r 2 r f 2 p 2 r 2 r f 2 2 (4) El proceso es repetido para cada nuevo perfil, pero tomando como valores máximos los correspondientes al perfil anterior. Por último observar que los puntos que cambien de cuadrante respecto del inicial de la capa del primer contorno debido a la transformación anterior no podrán hacerlo, para lo que se utiliza un filtro, que no es más que verificar si el punto cambia de cuadrante y cambiar o eliminar dicha coordenada. Para transformar los anteriores puntos a una espiral el procedimiento consiste en ir operando con los puntos homólogos de un perfil de los obtenidos anteriormente y el siguiente perfil, teniendo en cuenta que inicialmente todos los perfiles tienen el mismo número de puntos: xi xi , perfil 1 xi , perfil xi , perfil 1 ni (5) El resultado obtenido se muestra en la figura 5. Como altura de cresta de rugosidad se ha tomado un valor basto para obtener pocos perfiles y así poder ejemplificar el proceso. El contorno forma parte de la trayectoria para calcular el primer o último corte, según se inicie de dentro hacia fuera o viceversa. Contorno (rojo) Trayectoria espiral (negro) Fig. 5. Trayectoria espiral 2D. ALGORITMOS PARA SUAVIZAR EL PERFIL Estos algoritmos tienen una doble intención. Por un lado, caso de que el perfil sea demasiado abrupto se realiza Obtención de una trayectoria espiral para mecanizar con herramienta esférica superficies STL 5 un suavizado del mismo, figura 6. El criterio puede ser muy variado, desde realizar la media de puntos próximos a aplicar criterios como el del coseno [8]. Fig. 6. Suavizado de un perfil. Una vez realizado el suavizado, según la precisión de la malla STL puede ser preciso añadir puntos intermedios. Ello se realiza en función de un paso o precisión de interpolación en la dirección de la propia espiral desde un punto al siguiente en el sentido de recorrido. Así, entre dos puntos iniciales se puede añadir uno o más puntos intermedios, figura 7. Puntos añadidos Fig. 7. Puntos adicionales para mejorar la precisión. A esta nueva trayectoria con más puntos también se le pueden aplicar de nuevo los algoritmos para su suavizado. PROYECCIÓN DE LOS PUNTOS DE LA TRAYECTORIA SOBRE LA SUPERFICIE Con la trayectoria espiral anteriormente obtenida se pasa a la trayectoria 3D proyectando los puntos anteriores sobre la superficie STL, pero teniendo en consideración la dimensión de la herramienta. La dimensión de la herramienta es sumamente importante. Con herramientas de gran diámetro se pueden realizar menos pasadas, como indica la expresión (4), pero tiene por el contrario el inconveniente de que el menor radio de curvatura que se puede obtener es el de dicha herramienta, pudiendo quedar huecos sin mecanizar, figura 8. Fig. 8. Radio de la herramienta y curvatura de la superficie para una sección En este juego entre la elección del radio de la herramienta y el radio de curvatura de la superficie, se deben determinar la coordenada z del punto de contacto de la herramienta con la superficie de la pieza. Este punto no es J.L. Huertas et al. / XVIII Congreso Nacional de Ingeniería Mecánica (2010) 6 necesariamente la proyección de las coordenadas (x, y) sobre la superficie pues, debido a la curvatura de la misma la herramienta puede contactar en otra coordenada, La proyección sobre la superficie STL se realiza una vez conocido el triángulo que contiene las coordenadas (x, y). Para no verificar todos los triángulos, se realiza una clasificación por zonas, figura 9, de forma que el algoritmo resultante resulta más rápido ya que, una vez que el punto (x, y) se asigna a una zona, solamente hay que trabajar con los triángulos de la zona averiguar qué triángulo contiene la proyección del punto (x, y). Lado celda=radio herramienta Fig. 9. Clasificación por zonas mediante una rejilla El número de cuadrículas es, según las direcciones x e y: máximox mínimo x nx redondeosuperior radiohta máximo y mínimo y n y redondeosuperior radiohta (6) Saber la zona en la que se encuentra el punto (x, y) a proyectar se aplica: x mínimo x zona x parte entera radrio hta y mínimo y zona y parte entera radrio hta (6) Una vez se tiene un triángulo lo primero es comprobar si el punto está contenido en él. Un triángulo está compuesto por tres puntos (vértices) que agrupados de dos en dos se obtienen tres rectas (lados). Hay que mirar lado a lado y ver que el punto que queremos comprobar y el tercer punto del triángulo está en el mismo lado de la recta, es decir, tienen el mismo signo al sustituir su valor en la ecuación normal de la recta. En la siguiente figura 10 se observa como tanto el punto P como Q cumplen esta condición para el primer lado, pero al comprobar el siguiente lado P queda fuera del triángulo. Fig. 9. Pertenencia de un punto a un triángulo ax p by p c Lado signo a2 b2 (7) Para obtener la proyección del punto sobre el triángulo en cuestión, puesto que se conoce el vector director del plano, lo mejor es utilizar la ecuación normal: x cos y cos z cos q (8) Obtención de una trayectoria espiral para mecanizar con herramienta esférica superficies STL 7 El valor del parámetro q se obtiene sustituyendo un vértice, por ejemplo el primero (según la matriz utilizada): q x0 cos y0 cos z0 cos (9) Ahora se puede obtener la coordenada z del punto de proyección: zP x0 cos y0 cos z0 cos xC cos yC cos cos (10) Puede observarse que cuando el plano es vertical, cos=0, no hay proyección. CÁLCULO DE LA TRAYECTORIA x, y, z FINAL El punto que se debe programar es la punta de la herramienta. La distancia del centro de la esfera de la punta de la herramienta al plano al que pertenece un triángulo uno de cuyos vértices sea (x0, y0, z0) es: d xc cos yc cos zc cos x0 cos y0 cos z0 cos (11) S r T r P Fig. 10. Coordenadas del centro S y de la punta P de la herramienta. Punto de tangencia T. Si la situación fuera la de la figura 10, entonces la coordenada z del centro de la herramienta es fácil de obtener sustituyendo el radio de la herramienta en (11), pues la esfera de la punta se deja tangente al triángulo, haciendo que la distancia sea el radio de la herramienta: zS r xc cos yc cos xi 0 cos yi 0 cos zi 0 cos cos (12) Con lo que las coordenadas de la punta de la herramienta son: xP xC y P yC (13) z P zC r Sin embargo el caso de la figura 10, en el que el punto de tangencia queda dentro de un triángulo, no es el más habitual, por lo que hay que emplear otros criterios [4] para obtener la coordenada z de la punta de la herramienta En la figura 11 se representa una serie de casos que pueden presentarse. En lo que sigue solamente se va ha desarrollar uno de ellos en los que la posición de la punta de la herramienta debe ser corregida desplazándola verticalmente. J.L. Huertas et al. / XVIII Congreso Nacional de Ingeniería Mecánica (2010) 8 Fig. 11. Diversas posibilidades de posición relativa de la esfera con los triángulos de sus zonas de influencia Dirección vertical de desplazamiento para corregir la posición Caso de estudio (muestra).- Si el punto que une el centro de la esfera con el plano (menor distancia, perpendicular) queda dentro del triángulo: existe corte. Una vez supervisado el caso A, se debe analizar esta nueva posibilidad. El caso extremo es cuando este punto quede dentro del triángulo y el plano sea tangente a la esfera, siendo esta condición límite la corrección a conseguir. E S Q P Fig. 11. Un caso de estudio para corregir el la posición del centro de la herramienta. La herramienta se debe desplazar verticalmente la distancia SE. Ahora la condición es que la distancia del plano del triángulo al centro de la herramienta pase a ser el radio de ésta y, además, el centro se mantenga sobre la misma vertical. Como antes, ello obliga a que las coordenadas x e y del punto E sean las mismas que las del punto S (xE=xS, yE=yS), luego solamente queda averiguar la coordenada zE. Para esto último lo más aconsejable es aplicar la ecuación (11) al triángulo i en estudio con la condición de que dicha distancia sea el radio de la herramienta: r xS cos y S cos z E cos xi 0 cos yi 0 cos zi 0 cos zE r xS cos yS cos xi 0 cos yi 0 cos zi 0 cos cos Obtención de una trayectoria espiral para mecanizar con herramienta esférica superficies STL 9 En la anterior ecuación, (xi0, yi0, zi0) es el primer vértice del triángulo, como se ve en la ecuación (11). Debe observarse que esta ecuación carece de solución cuando cos=0, o sea, el triángulo en estudio está en un plano vertical. Ello es lógico, y da píe a analizar más detenidamente la solución. En este caso, además no existiría la proyección P. Es decir, cuando hubiera un plano vertical el problema debe estudiarse de otra forma, lo cual no es el caso que nos ocupa; pues todos los planos que contienen los triángulos no están en planos verticales para la superficie que se trata. No obstante, esto último podría dar lugar al caso A o al C. Siguiendo con el caso en estudio, en efecto, en realidad puede darse la situación de que zE tenga tal valor que el punto Q salga del triángulo. Por lo tanto, si el desplazamiento calculado con la expresión anterior da lugar a que el punto Q quede fuera del triángulo se debería calcular el desplazamiento máximo de E que hace que Q salga del triángulo, si este desplazamiento máximo es mayor que el anteriormente calculado dicho cálculo está bien, en caso contrario el desplazamiento será el máximo para que Q no salga del triángulo. A medida que E asciende también lo hace Q siguiendo una línea PQ sobre el plano del triángulo (pero, podría ser que E esté tan alto que Q ya esté fuera, con lo que el E’ que se va a calcular quedaría debajo de E). Esta línea, como cualquiera otra que se trace desde un punto interior a un triángulo, corta a dos lados (podría darse el caso extremo de que pase por un vértice). El punto de corte se puede calcular resolviendo el sistema de esta recta que pasa por P y tiene por vector director PQ con los tres lados del triángulo. El punto de corte debe estar entre medias de los dos vértices que limitan el lado. De los dos puntos de corte se elige el que tiene la z más alta. Este punto es el extremo que no puede superar Q (simplemente es suficiente comprobar la z). El punto Q es la proyección de E sobre el plano del triángulo, que se calcula en el apartado siguiente (esté Q dentro o no del triángulo). La ecuación de la recta que pasa por P y Q es: y y P t yQ y P z z P t z Q z P x x P t xQ x P Para resolver el sistema con los lados del triángulo es interesante utilizar un cuarto punto que coincida con el primero ( xi 3 xi 0 : yi 3 yi 0 : zi 3 zi 0 ), así se puede resolver todo con un bucle siendo la recta que une dos vértices: y yij t yij 1 yij z zij t zij 1 zij x xij t xij 1 xij zmax=zP For j=0 to 2 t zij z P zQ z P zij 1 zij ‘Parámetro t. y y P t y Q y P ‘ Solución de intersección. z z P t z Q z P x x P t xQ x P ‘ Verificación de que la solución está entre los vértices j y j+1 if xij x x xij 1 yij y y yij 1 zij z z zij 1 0 then If z>zmax then zmax=z: xmax=x: ymax=y end if Next j J.L. Huertas et al. / XVIII Congreso Nacional de Ingeniería Mecánica (2010) 10 En el caso de que zmax<zQ resulta que el punto Q calculado ya estaba fuera del triángulo y hay que limitar este valor, pues no hace falta subir tanto. En tal caso, se realiza el cálculo que sigue para obtener un punto E’ por debajo de E. Para obtener el parámetro t se emplea la ecuación en z, pues es el único valor que no puede coincidir entre P y Q. El punto máximo obtenido da lugar a una distancia de separación del punto E’ de la herramienta que se obtiene resolviendo la intersección de un plano perpendicular al plano que contiene el triángulo en estudio y pasa por el punto Q’(xmax, ymax, zmax) y a la vez es perpendicular a la recta PQ. Es decir, el plano tiene por vector director a PQ o PQ’ y pasa por el punto Q’: Los cosenos directores de este plano son: cos PQ xq x p PQ , cos yq y p PQ . cos zq z p PQ , con xq x p 2 y q y p 2 z q z p 2 , como pasa por el punto Q’, la ecuación es x cos y cos z cos x max cos y max cos z max cos 0 . La coordenada del punto E’ por debajo del anterior punto E que es la intersección de la recta PS con el anterior plano: zE ' xmax cos ymax cos zmax cos xC cos yC cos cos Siendo éste el nuevo emplazamiento del centro de la herramienta. RESULTADOS Con los algoritmos presentados y los condicionantes de las posiciones relativas de los triángulos de la superficie STL con la esfera de la herramienta es posible el mecanizado de dichas superficies, figura 12, siempre que cumplan ciertas condiciones, con ventaja sobre los programas de CAM comerciales, obteniendo perfiles regulares y con un grado de acabado muy próximo al deseado. Fig. 11. Aspecto del mecanizado con el simulador WinUnisoft para dos alturas de cresta. Como desarrollo próximo se completará una pieza patrón de forma que sea fácil de medir, como por ejemplo radios de concavidades y convexidades, distancia entre centros de las mismas; a la vez que se realice con varios CAM para ver diferentes resultados de acabado superficial y tolerancia dimensional. Obtención de una trayectoria espiral para mecanizar con herramienta esférica superficies STL 11 REFERENCIAS [1] Optimal selection of machining direction for three-axis milling of sculptured parts. Yann Quinsat . Laurent Sabourin. Int J Adv Manuf Technol. 2007. [2] B-spline tool offset of a free-form curve in the shoe last high-speed machining CNC system. Jun Hu . Hong Shen . Shuishen Zeng . Yuhan Wang. Int J Adv Manuf Technol April 2005. [3] R. T. Lee, W. S. Cheng. A Multizone Scaling Method for CAD in Shoe Sole Design. Int J Adv Manuf Technol (2002) 19:313–317. [4] Prasenjit Kayal. Offset error analysis of ball-end mill for cutter-path generation from point-based surfaces. Int J Adv Manuf Technol (2008) 36:1133–1144. [5] Zezhong C. Chen, Qiang Fu. A practical approach to generating steepest ascent tool-paths for three-axis finish milling of compound NURBS surfaces. Computer-Aided Design 39 (2007) 964–974. [6] M. Silbáis-Nagy. Gy. Mátyási. Análisis of STL files. Mathematical and Computer Modelling 38 (2003) 945960. [7] D. Ma1, F. Lin and C. K. Chua. Rapid Prototyping Applications in Medicine. Part 2: STL File Generation and Case Studies. Int J Adv Manuf Technol (2001) 18:118–127. [8] Huertas Talón, J.L., López Gómez, Carmelo. Sencillo algoritmo para seleccionar los puntos significativos tras un escaneo de un perfil o de una superficie. Metal Univers 2006.