Mecanizado robótico

El mecanizado robótico es el proceso donde una materia prima se corta en una forma y un tamaño finales deseado por un proceso controlado de retiro de material, usando un brazo robot. Maquinar abarca diversos usos de remoción de materiales, tales como fresado, taladrado, chaflanado, y el quitar rebabas, típicamente realizado por máquinas-herramienta automatizadas (CNC). Se pueden utilizar robots industriales como un máquina herramienta (CNC de 3-ejes o de 5 ejes) usando RoboDK.

Para lograr los mismos o mejores resultados que las máquinas CNC, los robots industriales requieren una tecnología de programación de software fuera de línea como RoboDK para convertir programas de máquina a programas de robots.

Las dimensiones de las partes se definan mediante software de diseño asistido por ordenador (CAD) y, luego, se traducen en programas de fabricación (como Código G) por software de manufactura asistida por ordenador (CAM). Los programas de fabricación se pueden convertir en programas de robots usando las herramientas de programación fuera de línea de RoboDK.

Los ejes adicionales, como una mesa giratoria y un riel lineal, pueden sincronizarse con el robot para extender el espacio de trabajo.

Ejemplos de mecanizado robótico

Esta sección muestra algunos ejemplos que implican mecanizado robótico. Algunos de estos ejemplos utilizan un plugin para mostrar cómo generar la trayectoria de herramienta CAM. Sin embargo, puede cargar cualquier trayectoria de herramienta genérica de 5 ejes en RoboDK, como archivos APT, NC o G-code.

Obtenga más información sobre proyectos de ejemplo en la sección de ejemplos.

Visite la sección de Addins CAD/CAM de nuestra documentación para ver más ejemplos de proyectos de mecanizado robótico, como Mastercam, MecSoft/RhinoCAM, Inventor, FeatureCAM o Fusion 360.

Introducción al mecanizado robótico

Este ejemplo le ayudará a comprender los conceptos básicos del mecanizado robótico en RoboDK y cómo convertir un trabajo de mecanizado robótico de 3 ejes en una simulación de mecanizado robótico y un programa de robot.

Obtenga más información sobre este ejemplo de mecanizado robótico.

Introducción al mecanizado robótico (5x)

Este ejemplo le ayudará a comprender cómo puede configurar los ajustes de mecanizado robótico en RoboDK y cómo convertir un trabajo de mecanizado robótico de 5 ejes en una simulación de mecanizado robótico y un programa de robot.

Este ejemplo también le ayudará a crear movimientos seguros de acercamiento/retracción entre distintas operaciones del trabajo de mecanizado.

Obtenga más información sobre este ejemplo.

Mecanizado robótico con ejes externos

Este ejemplo muestra cómo utilizar un robot KUKA con 3 ejes externos adicionales para mecanizado robótico. La célula incluye un brazo robótico de 6 ejes, un carril de un eje y una mesa giratoria de 2 ejes.

Más información disponible en la sección de ejemplos de RhinoCAM. La integración entre RhinoCAM y RoboDK carga automáticamente los archivos APT de RhinoCAM a RoboDK.

Corte por láser

Este ejemplo muestra cómo utilizar un robot Yaskawa/Motoman para una aplicación de corte por láser. La trayectoria de corte del robot se define utilizando el Addin de RoboDK para Autodesk Fusion.

Obtenga más información sobre este ejemplo de corte por láser.

Mecanizado robótico de moldes

Este ejemplo muestra cómo utilizar un robot Yaskawa/Motoman para mecanizado robótico y el Addin de RoboDK para Mastercam. RoboDK admite la carga automática de archivos NCI o NC generados por Mastercam.

Visite el ejemplo de mecanizado robótico de 3 ejes con Mastercam para obtener más información.

Obtenga más información sobre este ejemplo de mecanizado de moldes.

Desbarbado robótico

Este ejemplo muestra cómo utilizar un robot ABB para desbarbado. Este ejemplo incluye una operación de recogida y colocación (pick and place).

Obtenga más información sobre este ejemplo de desbarbado de plástico.

Pulido

Este ejemplo muestra cómo utilizar un robot KUKA para pulido.

Obtenga más información sobre este ejemplo de desbarbado de plástico.

Configuración Para Mecanizado

Esta sección muestra cómo preparar un proyecto de RoboDK simple, sin conexión, para mecanizado robótico. La célula de mecanizado robótico debe tener al menos un robot, una herramienta (EOAT) y un sistema de referencia (también conocido como sistema de coordenadas, referencia de pieza o datum). Más información sobre cómo construir una nueva estación en RoboDK en la sección primeros pasos.

Robot Machining - Imagen 1

Los siguientes pasos muestran cómo preparar una configuración de mecanizado robótico con un robot KUKA KR210 y un husillo de fresado Teknomotor (este ejemplo está disponible en la biblioteca como Sample-New-Project.rdk).

1.Seleccione un robot:

a.Seleccione ArchivoRobot Machining - Imagen 2Abrir Biblioteca en línea.

b.Use los filtros para encontrar su robot por marca, carga útil, ...
Por ejemplo, seleccione el KUKA KR210 R2700 (carga útil de 210 kg, alcance de 2,7 m).

c.Seleccione Descargar y el robot debería aparecer automáticamente en la pantalla principal.

2.Seleccione una herramienta:

a.Desde la misma biblioteca en línea, seleccione Restablecer para quitar los filtros y filtre por TipoHerramienta.

b.Seleccione Descargar para cargar una herramienta de husillo como el husillo Teknomotor ATC71-C-LN.

c.El husillo se conectará automáticamente al robot.

d.Cierre la ventana de la Biblioteca en línea.

3.Agregar un sistema de referencia:

a.Seleccione el sistema de referencia base del robot (llamado KUKA KR210 R2700 Base).

b.Seleccione ProgramaRobot Machining - Imagen 3Añadir Sistema de Referencia. Se añadirá un nuevo sistema de referencia a la base del robot.

c.Haga doble clic en la referencia e introduzca las coordenadas:
XYZABC = [1500,1000,500,0,0,0] (mm-deg)

d.Cambie el nombre del nuevo sistema de referencia a Referencia de Fresado introduciendo un nuevo nombre o seleccionando F2.

4.Agregue el objeto que utilizará para el mecanizado robótico (opcional):

a.Seleccione ArchivoRobot Machining - Imagen 4Abrir

b.Seleccione un objeto llamado Object Chess Rook.sld desde la biblioteca de RoboDK:
C:/RoboDK/Library

c.Arrastre y suelte el objeto sobre la Referencia de Fresado si no se colocó allí automáticamente (dentro del árbol de la estación)

5.Haga doble clic en el robot para ver el panel del robot (opcional). El panel del robot muestra la herramienta activa y el sistema de referencia activo. Al seleccionar y actualizar la herramienta y el sistema de referencia, deberíamos ver las mismas coordenadas visibles en el controlador del robot. De forma predeterminada, el husillo Teknomotor tiene el TCP en la raíz del portaherramientas. La herramienta (TCP) tendrá una determinada longitud. En este ejemplo, actualizaremos el TCP para representar la longitud de la fresa:

a.Actualice la coordenada X de la herramienta (TCP) a 375 mm. Verá que el TCP se mueve a lo largo del eje.

b.(opcional) también podría crear una segunda herramienta y definir un TCP relativo con respecto a la primera añadiendo una traslación a lo largo del eje Z.

c.Cierre la ventana del panel del robot.

Robot Machining - Imagen 5

Proyecto de Mecanizado Robótico

Siga estos pasos para configurar un nuevo proyecto de mecanizado de robots dado un archivo NC generado usando CAM software (como código G o APT):

1.Seleccione Utilidades➔Robot Machining - Imagen 6 Proyecto de Mecanizado robotizado (Ctrl + M). 
Aparecerá una nueva ventana, como se muestra en la imagen.

2.Seleccione Seleccionar Archivo NC en la sección de Ruta de entrada

3.Proporcione un archivo NC, como una desde la biblioteca predeterminada de RoboDK:        
C:/RoboDK/Library/Milling Bowl 3x.nc

Cambie el nombre del proyecto de mecanizado robótico a Machining Settings haciendo clic derecho en el nuevo elemento del árbol y seleccionando Cambiar nombre (F2).

Robot Machining - Imagen 7

Seleccione el robot, el sistema de referencia y la herramienta en la sección superior izquierda del menú, como se muestra en la siguiente imagen:

Robot Machining - Imagen 8

La trayectoria de herramienta de mecanizado se muestra en verde y las normales de la ruta se muestran como vectores blancos. Desmarque la trayectoria de herramienta visible para ocultar la trayectoria de la herramienta.

Puede seleccionar Actualizar para ver si es posible crear un programa de mecanizado robótico con la configuración predeterminada. Si el programa se generó correctamente, verá una marca de verificación verde. Después puede seleccionar Simular o hacer doble clic en el programa generado para ver el inicio de la simulación.

Robot Machining - Imagen 9

Si ve una cruz roja con un mensaje de advertencia, significa que su programa de mecanizado robótico no es viable. Es posible que deba cambiar algunos ajustes, como la orientación de la herramienta, los parámetros de optimización, el punto de inicio o la ubicación de la pieza.

Las siguientes secciones proporcionan más información sobre cómo personalizar la configuración de mecanizado robótico.

Entrada de ruta

La entrada de trayectoria nos permite seleccionar diferentes maneras de proporcionar una trayectoria de herramienta. La trayectoria de herramienta se puede definir mediante:

Seleccione el archivo NC: Como un archivo NC (obtenido de Cam software), como se describe en esta sección.

Seleccionar curva: Como una o más curvas, como se describe en la sección de Proyecto de Seguimiento de Curvas.
Es posible importar curvas como una lista de coordenadas en RoboDK.

Seleccionar puntos: Uno o más puntos, como se describe en la sección Proyecto de seguimiento de puntos.    
Es posible importar puntos como una lista de coordenadas en RoboDK.

Impresión de Objeto 3D: Como un objeto para la impresión 3D. Se utiliza un rebanador para convertir la geometría en una trayectoria de herramienta

Robot Machining - Imagen 10Robot Machining - Imagen 11

Eventos del programa

Seleccione Eventos de programa para mostrar eventos especiales que deben tenerse en cuenta al generar programas de robot. Esto incluye activar un cambio de herramienta, establecer la velocidad del husillo en RPM o activar programas específicos al inicio o al final del programa.

Puede especificar un valor de redondeo en Eventos de programa. Esto creará automáticamente una instrucción de redondeo al principio de su programa y ayudará a que los programas de mecanizado robótico sean más suaves, evitando que el robot vibre. Por ejemplo, en un robot ABB esto establecerá el valor ZoneData en mm, en un robot Fanuc esto establecerá el valor CNT como un porcentaje y en los controladores de Universal Robots establecerá el valor de blending en mm.

Si utiliza archivos G-code o NCI, los códigos M personalizados se activarán de forma predeterminada como llamadas a la función M_RunCode (el código M se pasa como parámetro). Puede eliminar las llamadas M personalizadas borrando la llamada a M_RunCode.

Robot Machining - Imagen 12

Mueva el cursor del ratón sobre el campo correspondiente para obtener más información sobre cómo personalizar cada sección.

Por ejemplo, al cambiar la herramienta puede usar el valor %1 para representar el ID de herramienta proporcionado por su software CAM. Si prefiere activar funciones estáticas en lugar de pasar argumentos, puede reemplazar SetTool(%1) por SetTool%1. Al usar la herramienta 2, esto generaría SetTool2 en lugar de SetTool(2).

Acercamiento/retracción

Los movimientos de aproximación/retracción se pueden proporcionar en la parte superior derecha del menú.

Robot Machining - Imagen 13

Seleccione Añadir para añadir un movimiento adicional. La ruta verde se actualizará en consecuencia. Es posible seleccionar entre un movimiento normal (a lo largo de la normal blanca), tangente (a lo largo del camino Verde) o a lo largo de ejes específicos con respecto a la pieza.

Robot Machining - Imagen 14

Haga doble clic en el valor para modificar la longitud o seleccione Remover para quitar un movimiento específico.

Compensación de ruta de herramienta

La compensación de ruta de herramienta permite cambiar la orientación preferida de la herramienta a lo largo de la trayectoria. Esta opción se utiliza principalmente para girar la herramienta alrededor del eje Z del TCP.

Debido a que se usa un robot de 6 ejes para ejecutar un programa de fabricación con CNC de 3 ó 5 ejes, tenemos un grado adicional de libertad para definir. Este grado de libertad es usualmente la rotación alrededor del eje Z del TCP.

Robot Machining - Imagen 15

De forma predeterminada, la compensación de la ruta de herramienta muestra una transformación Rotz(0). Este valor puede ser modificado para establecer la orientación preferida de la herramienta, modificando la orientación alrededor del eje Z del TCP o en combinación con otros ejes. La orientación preferida es la orientación que el robot tratará de mantener mientras sigue la trayectoria de herramienta.

De forma predeterminada, RoboDK utiliza el algoritmo de Cambio Mínimo de orientación de herramienta. Esto significa que la orientación de la herramienta se mantiene lo más constante posible a lo largo de la trayectoria. En general, esta opción es apta para operaciones de fresado ya que minimiza los movimientos de articulaciones de robots. Alternativamente, otros algoritmos/métodos están disponibles, como la orientación de la herramienta siguiendo la trayectoria (útil para aplicaciones de corte), o el robot tomando el objetosi es necesario seguir la trayectoria de herramienta conectada a la máquina robot (por ejemplo, para aplicaciones de dispensación o pulido).

Robot Machining - Imagen 16

Parámetros de optimización

Dada una orientación preferida, el robot puede tener una cierta libertad para dar la vuelta al eje Z de la herramienta. Esto permite al robot realizar el programa evitando singularidades de robots y restricciones de ejes. De forma predeterminada, RoboDK permite que la herramienta gire hasta +/-180 grados alrededor del eje TCP por pasos de 20 grados.

Se recomienda restringir esta rotación en función de la aplicación. Por ejemplo, es posible introducir +/-90 grados para restringir el Permitido Rotación por la mitad.

Si no se alcanzan algunos puntos de la ruta, se recomienda mover el sistema de referencia o ser más permisivo con la rotación de la herramienta Z. El sistema de referencia se puede mover manteniendo pulsada la tecla Alt.

Robot Machining - Imagen 17

Configuración preferida

RoboDK selecciona automáticamente la configuración de inicio que está más cerca de las articulaciones de inicio preferidas (Articulaciones preferidas para el punto de partida). A partir de ese punto, el robot seguirá movimientos lineales, por lo que la configuración del robot no cambiará.

Un menú desplegable mostrará todas las posibles soluciones para iniciar el programa. Si es necesario, seleccione una configuración preferida y seleccione Actualizar para recalcular el programa.

Robot Machining - Imagen 18

Actualizar Programa

Seleccione actualizar para obtener el programa de acuerdo con los ajustes proporcionados. Se muestra una marca de verificación verde si el programa se puede crear con éxito. A continuación, veremos un nuevo programa en la estación.

Robot Machining - Imagen 19

Haga doble clic en el programa Robot Machining - Imagen 20generado o seleccione Simular para iniciar la simulación del mecanizado robótico.

Haga clic derecho en el programa y seleccione Generar programa de robot (F6) para obtener el programa. Más información sobre la generación de programas en la sección Programa.

Robot Machining - Imagen 21

Robot de corte

Es posible mantener la orientación de la herramienta constante a lo largo de la trayectoria. Este comportamiento es útil para aplicaciones de corte o soldadura, por ejemplo.

Seleccione Seguimiento de trayectoria de orientación de la herramientas en el desplegable Seleccionar algoritmo para recalcular la trayectoria de la herramienta preferida. Los otros ajustes son los mismos que tener un Proyecto de mecanizado con una orientación constante de la herramienta.

Robot Machining - Imagen 22

Agarre Robótico de Objeto

Es posible programar un robot cuando sostiene el objeto/trayectoria con la herramienta con el robot mientras se realiza la operación de manufactura. Esto es útil para los usos de dispensado de pegamento o de pulido por ejemplo.

Seleccione Agarre Robótico de Objeto en el desplegable Seleccionar algoritmo para colocar correctamente la trayectoria de herramienta en la referencia TCP. Los otros ajustes son los mismos que en el Proyecto de mecanizado con una orientación constante de la herramienta.

Robot Machining - Imagen 23

Más información disponible en la sección Addin de RoboDK para Autodesk Fusion.

Proyecto de Seguimiento de Curva

Es posible hacer que un robot siga curvas en el espacio 3D con RoboDK. Las curvas en RoboDK se pueden seleccionar desde aristas de objeto o Importados como una lista de puntos en archivos CSV. Esta opción es útil para aplicaciones de soldadura por robot, por ejemplo.

Para trabajar con un CFP, siga este procedimiento:

1.Seleccione Utilidades➔Proyecto de Seguimiento de Curva para abrir los ajustes de seguimiento de curvas. Estos ajustes son los mismos que para Proyecto de Mecanizado Robótico, la única diferencia es que la Entrada de Trayectoria está preajustada para Seleccionar curva.

2.Seleccione Seleccione Curva para seleccionar la(s) curva(s) en la pantalla.

Robot Machining - Imagen 24

3.Seleccione las curvas con el clic izquierdo del ratón. Al seleccionar la misma curva dos veces cambiará la dirección del movimiento. Además, hacer clic derecho en una curva seleccionada previamente permite cambiar el sentido o anular la selección de una curva seleccionada previamente.

Robot Machining - Imagen 25

Haga clic derecho en la pantalla y seleccione Hecho o pulse la tecla Esc para volver al menú de ajustes. El camino verde mostrará el movimiento del robot con respecto al objeto.

Robot Machining - Imagen 26

4.Puede seleccionar Actualizar para ver si es posible crear un programa de robot con la configuración predeterminada. Si el programa se generó correctamente, verá una marca de verificación verde. Después puede seleccionar Simular o hacer doble clic en el programa generado para ver el inicio de la simulación.

Algunas opciones adicionales están disponibles en la parte superior derecha de los ajustes, como la velocidad de la herramienta y si se deben aplicar los movimientos de aproximación/retracción para cada curva. La configuración predeterminada se muestra en la siguiente imagen:

Robot Machining - Imagen 27

El programa se puede personalizar y optimizar aún más utilizando las mismas funciones que se muestran en la sección de mecanizado robótico.

Extraer características de objetos 3D

Las curvas se pueden extraer de las características de objetos 3D importados a RoboDK seleccionando Herramientas Crear Curvas.

Robot Machining - Imagen 28

Aparecerá un panel en el lado izquierdo de la ventana de RoboDK; podrá extraer curvas mientras este panel esté activo y la opción "Extraer curvas automáticamente" esté habilitada.

Robot Machining - Imagen 29

Puede pasar el cursor sobre el objeto 3D del que desea extraer la curva. Aparecerá una línea fina de color azul claro que representa la curva. Las flechas blancas en distintos puntos representan la normal de la curva; esta es la dirección desde la que se aproximará la herramienta.

Robot Machining - Imagen 30

Puede cambiar la orientación de las normales de la curva (dirección de aproximación) desplazando ligeramente el ratón en vertical u horizontal. El tamaño de paso predeterminado es de 15 grados y se controla mediante la opción "Paso de inclinación (grados)" en el Panel de creación de curvas.

Cuando haya identificado la curva correcta, haga clic en ella sin mover el ratón. Repita esto hasta que haya seleccionado todas las curvas que desea usar en un Proyecto de Seguimiento de Curva.

Robot Machining - Imagen 31

RoboDK incluye distintas herramientas para ayudarle a modificar curvas incluso después de extraerlas. Si simplemente desea modificar la normal, puede hacerlo yendo a Herramientas Modificar Curvas. Esta función le permitirá cambiar las normales en cualquier curva creada previamente.

Importar curvas

Las curvas se pueden importar en RoboDK desde un archivo CSV o un archivo de texto seleccionando Utilidades➔Importar curvas. Aparecerá un nuevo elemento en la estación que muestra la curva como un objeto.

Robot Machining - Imagen 32

El archivo puede ser un archivo de texto con las coordenadas 3D de cada punto de la curva. Opcionalmente, la orientación del eje Z de la herramienta se puede proporcionar como un vector I,J,K.

Opcionalmente, las curvas existentes de un objeto se pueden exportar como un archivo CSV (haciendo clic con el botón derecho en una curva, luego, seleccionando exportar curva), modificado y reimportado de nuevo en RoboDK.

Robot Machining - Imagen 33

Importar un archivo CSV

Las curvas se pueden importar en RoboDK desde un archivo CSV o un archivo de texto seleccionando Utilidades Importar Curva. Aparecerá un nuevo elemento en la estación que muestra la curva como un objeto.

Robot Machining - Imagen 34

Robot Machining - Imagen 35

El archivo puede ser un archivo de texto con las coordenadas 3D de cada punto de la curva. Opcionalmente, se puede proporcionar la orientación del eje Z de la herramienta como un vector i,j,k. Todas las coordenadas deben ser relativas al sistema de coordenadas de la pieza.

Opcionalmente, las curvas existentes de un objeto se pueden exportar como un archivo CSV (haga clic derecho en una curva y seleccione Exportar curva), modificarlas y volver a importarlas en RoboDK.

Robot Machining - Imagen 36

Más información y ejemplos sobre cómo personalizar la importación de archivos CSV o TXT como curvas o puntos está disponible en la sección de ejemplos de la API de RoboDK.

Proyecto de Seguimiento de Punto

Es posible hacer que un robot siga los puntos en el espacio 3D con RoboDK. Los puntos en RoboDK pueden ser extraídos de objetos, curvas o Importados como una lista de puntos en archivos CSV. Esta opción es útil para la soldadura por puntos o aplicaciones de perforación, por ejemplo. El siguiente vídeo muestra un ejemplo para configurar una aplicación de soldadura por puntos: Ver vídeo.

Seleccione Utilidades➔Proyecto de Seguimiento de Punto para abrir la configuración de seguimiento de punto. Estos ajustes son los mismos que para Proyecto de Maquinado Robótico, la única diferencia es que la Entrada de ruta está preajustada para Seleccionar Puntos.

Robot Machining - Imagen 37

Seleccione Seleccionar Puntos para seleccionar el (los) punto (s) en la pantalla.

Robot Machining - Imagen 38

Seleccione los puntos con un clic izquierdo del ratón. Seleccionando el mismo punto dos veces intercambiará la dirección de aproximación. También, haciendo clic con el botón derecho permite seleccionar los puntos que siguen seleccionando Seleccionar siguiente.

Robot Machining - Imagen 39

Haga clic derecho en la pantalla y seleccione Hecho o pulse la tecla Esc para volver al menú de ajustes. El trazado verde mostrará el movimiento del robot con respecto al objeto.

Algunas opciones adicionales están disponibles en la parte superior derecha de la configuración, como la velocidad de la herramienta y la distancia de aproximación. La configuración predeterminada se muestra en la siguiente imagen:

Robot Machining - Imagen 40

Robot Machining - Imagen 41

Importar puntos

Una lista de puntos puede ser importado de un archivo de texto o un archivo CSV seleccionando Utilidades➔Importar Puntos. Un nuevo elemento aparecerá en la estación que muestra los puntos como un objeto.

Robot Machining - Imagen 42

Robot Machining - Imagen 43

El archivo puede ser un archivo de texto con las coordenadas 3D de cada punto de la curva. Opcionalmente, la orientación del eje Z de la herramienta se puede proporcionar como un vector I,J,K.

Opcionalmente, las curvas existentes de un objeto se pueden convertir en puntos haciendo clic derecho en una curva, luego, seleccionando Extraer puntos de curva.

Robot Machining - Imagen 44

Impresión 3D Robótizada

La impresión 3D o fabricación aditiva es el proceso de hacer objetos sólidos tridimensionales desde un archivo digital. Los brazos robots industriales pueden ser utilizados como una impresora 3D de 3 ejes o como una impresora 3D de 5 ejes con RoboDK. El siguiente vídeo muestra una visión general de cómo configurar la impresión 3D con RoboDK fuera de línea: Ver vídeo.

La impresión 3D con los robots es posible en una de las siguientes formas:

Convierta directamente programas de código G (archivo NC) a programas de robot con RoboDK, como se muestra con el Proyecto de mecanizado de robots. La tasa de flujo de material (directiva E de extrusora) está correctamente tenida en cuenta para cada movimiento y se puede integrar en el programa generado como un Evento del programa. El código G es un tipo de archivo del NC soportado por RoboDK y es también un formato soportado por muchas impresoras 3D. La mayoría de los softwares rebanadores pueden generar el código G dado un archivo de STL.

Seleccione Utilidades➔Proyecto de Impresión 3D para abrir la configuración de impresión 3D. Estos ajustes son los mismos que para el Proyecto de Mecanizado Robótico, la única diferencia es que el Entrada de ruta está preajustada para imprimir objeto 3D. Seleccione Seleccionar Objeto para seleccionar el objeto en la pantalla principal y obtenga automáticamente la trayectoria de herramienta. Seleccione opciones de impresión 3D para abrir Slic3r.

Robot Machining - Imagen 45

Robot Machining - Imagen 46

Robot Machining - Imagen 47

De forma predeterminada, RoboDK traduce la directiva E como una llamada de programa a un programa llamado Extrusora y pasando el valor E como parámetro. Seleccione Eventos del programa para cambiar este comportamiento.

Robot Machining - Imagen 48

El valor de la Extrusora (E) presenta la cantidad de material que necesita ser sacado antes de cada movimiento. Este valor se puede utilizar para impulsar la alimentación de la extrusora desde el robot teniendo en cuenta la velocidad del robot y la distancia entre los puntos.

Alternativamente, es posible calcular la alimentación de la extrusora utilizando un post-procesador y generar el código apropiado en consecuencia. La siguiente sección proporciona un ejemplo.

Post-Procesador para impresión 3D robótica

Esta sección muestra cómo modificar un postprocesador de robot para calcular la velocidad de la extrusora antes de ejecutar una instrucción de movimiento para impresión 3D. Alternativamente, estas operaciones se pueden realizar en el controlador del robot con la llamada de programa Extruder (comando predeterminado para controlar la extrusora).

Personalizando un postprocesador de robot, es posible facilitar la integración de una extrusora para impresión 3D antes de enviar el programa al robot. Para lograr esta tarea, necesitamos realizar algunos cálculos y generar código personalizado cuando se genera el programa en el postprocesador del robot.

El primer paso es interceptar las llamadas a Extruder y leer los nuevos valores de Extruder (valores E) dentro de la sección RunCode del postprocesador. La siguiente sección procesa todas las llamadas de programa generadas para un programa:

    def RunCode(self, code, is_function_call = False):

        if is_function_call:

            if code.startswith("Extruder("):

                # Intercept the extruder command.

                # if the program call is Extruder(123.56)

                # we extract the number as a string

                # and convert it to a number

                self.PRINT_E_NEW = float(code[9:-1])

                # Skip the program call generation

                return

            else:

                self.addline(code + "()")

        else:

            # Output program code

            self.addline(code)

El valor de Extruder (longitud/E) se guarda como la variable PRINT_E_NEW en el postprocesador del robot.

Necesitamos activar una llamada a la función new_move con cada nueva instrucción de movimiento lineal. Podemos añadir esta llamada al principio del comando MoveL:

    def MoveL(self, pose, joints, conf_RLF=None):

        """Add a linear movement"""

        # Handle 3D printing Extruder integration

        self.new_move(pose)    

       ...

También debemos añadir las siguientes variables en la cabecera del postprocesador para calcular los incrementos de la extrusora:

 

    # 3D Printing Extruder Setup Parameters:

    PRINT_E_AO = 5 # Analog Output ID to command the extruder flow

    PRINT_SPEED_2_SIGNAL = 0.10 # Ratio to convert the speed/flow to an analog output signal

    PRINT_FLOW_MAX_SIGNAL = 24 # Maximum signal to provide to the Extruder

    PRINT_ACCEL_MMSS = -1 # Acceleration, -1 assumes constant speed if we use rounding/blending

  

    # Internal 3D Printing Parameters

    PRINT_POSE_LAST = None # Last pose printed

    PRINT_E_LAST = 0 # Last Extruder length

    PRINT_E_NEW = None # New Extruder Length

    PRINT_LAST_SIGNAL = None # Last extruder signal

Finalmente, necesitamos definir un nuevo procedimiento que genere los comandos de alimentación de la extrusora adecuados según la distancia entre movimientos, la velocidad del robot y la aceleración del robot. Esto asume que la alimentación de la extrusora se controla mediante una salida analógica específica o una llamada de programa personalizada.

Necesitamos añadir el siguiente código antes de la definición del programa def MoveL.

 

    def calculate_time(self, distance, Vmax, Amax=-1):

        """Calculate the time to move a distance with Amax acceleration and Vmax speed"""

        if Amax < 0:

            # Assume constant speed (appropriate smoothing/rounding parameter must be set)

            Ttot = distance/Vmax

        else:

            # Assume we accelerate and decelerate

            tacc = Vmax/Amax;

            Xacc = 0.5*Amax*tacc*tacc;

            if distance <= 2*Xacc:

                # Vmax is not reached

                tacc = sqrt(distance/Amax)

                Ttot = tacc*2

            else:

                # Vmax is reached

                Xvmax = distance - 2*Xacc

                Tvmax = Xvmax/Vmax

                Ttot = 2*tacc + Tvmax

        return Ttot

           

    def new_move(self, new_pose):                       

        """Implement the action on the extruder for 3D printing, if applicable"""

        if self.PRINT_E_NEW isNone or new_pose is None:

            return

           

        # Skip the first move and remember the pose

        if self.PRINT_POSE_LAST isNone:

            self.PRINT_POSE_LAST = new_pose

            return         

 

        # Calculate the increase of material for the next movement

        add_material = self.PRINT_E_NEW - self.PRINT_E_LAST

        self.PRINT_E_LAST = self.PRINT_E_NEW

       

        # Calculate the robot speed and Extruder signal

        extruder_signal = 0

        if add_material > 0:

            distance_mm = norm(subs3(self.PRINT_POSE_LAST.Pos(), new_pose.Pos()))

            # Calculate movement time in seconds

            time_s = self.calculate_time(distance_mm, self.SPEED_MMS, self.PRINT_ACCEL_MMSS)

           

            # Avoid division by 0

            if time_s > 0:

                # This may look redundant but it allows you to account for accelerations and we can apply small speed adjustments

                speed_mms = distance_mm / time_s

               

                # Calculate the extruder speed in RPM*Ratio (PRINT_SPEED_2_SIGNAL)

                extruder_signal = speed_mms * self.PRINT_SPEED_2_SIGNAL

       

        # Make sure the signal is within the accepted values

        extruder_signal = max(0,min(self.PRINT_FLOW_MAX_SIGNAL, extruder_signal))

       

        # Update the extruder speed when required

        if self.PRINT_LAST_SIGNAL isNone or abs(extruder_signal - self.PRINT_LAST_SIGNAL) > 1e-6:

            self.PRINT_LAST_SIGNAL = extruder_signal

            # Use the built-in setDO function to set an analog output

            self.setDO(self.PRINT_E_AO, "%.3f" % extruder_signal)

            # Alternatively, provoke a program call and handle the integration with the robot controller

            #self.addline('ExtruderSpeed(%.3f)' % extruder_signal)

       

        # Remember the last pose

        self.PRINT_POSE_LAST = new_pose

Impresión 3D robótica con Cura

La fabricación aditiva (o impresión 3D) con robots se puede lograr preparando trayectorias de herramienta en un laminador (slicer) como Ultimaker Cura y convirtiendo el código G generado en programas de robot con RoboDK.

Este ejemplo muestra cómo utilizar Cura con RoboDK para la impresión 3D a gran escala de un molde de casco de barco utilizando un robot ABB IRB 6640, una extrusora CEAD y un carril lineal ABB IRBT 6004.

Robot Machining - Imagen 49

La impresión 3D con Cura y RoboDK es posible de una de las siguientes formas:

1.Crear una impresora FFF personalizada en Cura que coincida con el espacio de trabajo del robot.

2.Importar el modelo 3D (archivo STL) en Cura y aplicar una inclinación de 45° antes de laminar.

3.Laminar el STL rotado y generar un programa de código G.

4.Convertir el código G de Cura en un programa de robot en RoboDK.

5.Simular el proceso de extrusión inclinado en RoboDK y exportar código ABB RAPID.

Crear una impresora personalizada en Cura

Abra Ultimaker Cura → Ajustes → Impresora → Añadir impresora, después seleccione Personalizada → Impresora FFF personalizada.

Robot Machining - Imagen 50

Configure el volumen de impresión para que coincida con el robot y el carril:

6.X: 6000 mm

7.Y: 2500 mm

8.Z: 2000 mm

Desactive los controles del calentador porque la extrusora CEAD gestiona el calentamiento externamente.

Robot Machining - Imagen 51

Aplicar una inclinación de 45° en Cura

El modelo STL debe rotarse 45° en Cura antes de laminar.

9.Seleccione el objeto.

10.Utilice la herramienta Rotar de Cura para inclinar la pieza 45°.

11.Lamine el STL rotado.

Robot Machining - Imagen 52

Robot Machining - Imagen 53

Generar e importar código G

Después de inclinar el modelo, lamínelo en Cura y guarde el programa como un archivo .gcode.

En RoboDK, seleccione Utilidades → Convertir programa NC y elija el archivo de Cura.

Robot Machining - Imagen 54

En el cuadro de diálogo de importación NC:

12.Seleccione el robot ABB IRB 6640.

13.Añada el carril ABB IRBT 6004 como eje externo.

14.Seleccione la extrusora CEAD como herramienta.

15.Defina el sistema de referencia (plataforma del casco del barco).

Sincronización de la extrusora

De forma predeterminada, RoboDK traduce la directiva E de Cura como una llamada de programa a un programa llamado Extruder, pasando el valor E como parámetro.

Esto se puede modificar en Herramientas → Opciones → Eventos de programa.

Robot Machining - Imagen 55

Simulación de impresión a 45°

Cuando se importa el código G de Cura, RoboDK simula el proceso de extrusión inclinado:

16.El ABB IRB 6640 sigue la trayectoria de herramienta de Cura.

17.La extrusora CEAD se sincroniza con el movimiento del robot.

18.La orientación de la herramienta refleja la inclinación de 45° aplicada en Cura.