prueba_imagen_principalpng

Para aquellos que no estén acostumbrados al termino GCode, es el lenguaje de programación que se utiliza con las máquinas de control numérico, comúnmente conocidas como CNC. Una CNC es una maquina o herramienta controlada por computadora.

Hoy, en Diwo, vamos a aprender como obtener GCode para fresar PCBs (Printed Circuit Board) en Cyclone. Existen diferentes métodos para generar PCBs, en el caso de Cyclone se utiliza el método de aislamiento de rutas, o Isolation routing.

Para convertir los archivos Gerber, el formato de archivo que contiene toda la información necesaria para generar una pcb, necesitamos una plataforma. En este caso vamos a utilizar FlatCam [1]. En primer lugar necesitamos un archivo con el que poder trabajar. Si queréis seguir el proceso con el mismo archivo que se ha utilizado para generar ésta página, es posible descargar los archivos al final de la entrada.

Instalación

Podéis acceder al repositorio en Bitbucket.org, donde encontraréis siempre las últimas versiones.

Windows

Usa el instalador para Windows:

Descargar: FlatCAM-Win32-8.3-Install.exe

Linux

Descargar el paquete para Linux:

Descargar: FlatCAM

También es posible instalar FlatCAM desde terminal, para ello tenemos que introducir:

FlatCAM necesita ciertas dependencias para su correcto funcionamiento. Es posible ejecutar un script incluido con el paquete que comprobará e instalará las dependencias necesarias. Para ejecutar dicho script, en una ventana de terminal, nos desplazamos, con el comando cd, hasta la carpeta que contenga FlatCAM y en primer lugar damos permisos de ejecución al script:

Y ejecutamos el script:

Generación de G-codes para PCB

Una vez que tenemos abierto FlatCam, en primer lugar hemos de configurar las opciones generales del programa.

Configuración de los parametros de fresado.

En la pestaña de options:

options

Introducimos los siguientes valores, que servirán como punto de partida, puesto que tendremos que modificar los parámetros para que se adecuen lo mejor posible a nuestro proyecto, herramienta y configuración de Cyclone.

Gerber Options:

Units (Unidades): Escoger milímetros.

Plot options:

Plot: Dibuja el elemento seleccionado.

Solid: Dibuja el contorno o la figura completa.

Multicolored: Dibuja el elemento seleccionado en varios colores si hay diferente información.

Isolation Routing: Cyclone utiliza el método de aislamiento de rutas para fabricar PCBs.

Tool dia: Diámetro de la herramienta.

Width (# Passes): Número de veces que la herramienta pasará para realizar un trabajo de aislamiento.

Pass overlap: Distancia de solapamiento entre los trayectos que realiza la herramienta. Valores menores aumentan el tiempo de fresado y la calidad del mismo, mientras que valores mayores disminuyen tiempo y calidad.

Board cutout: Ajustes relativos al corte de la superficie exterior de la placa.

Tool dia: Diámetro de la herramienta.

Margin: Margen a dejar entre la zona de PCB efectiva y la zona de corte.

Gap Size: Tamaño de los puentes que se mantienen entre la PCB y la placa de cobre para evitar la caída de la PCB.

Gaps: Número de zonas sin cortar (T/B: Top/Bottom o Superior/Inferior. L/R: Left/Right o Derecha/Izquierda).

 Opciones-Gerber y Excellon
Non-Copper regions: Ajustes relativos a las zonas en las que eliminar el cobre.

Boundary Margin: Máxima cantidad de material donde se eliminará cobre.

Rounded Corners: Marcar si se desea realizar las esquinas con forma redondeada.

Bounding Box: Marco delimitador de la placa.

Boundary Margin: Margen entra la zona efectiva de trabajo de la pcb y la zona exterior.

Rounded Corners: Marcar si se desea realizar las esquinas con forma redondeada.

Excellon Options:

Plot options:

Plot: Dibuja el elemento seleccionado.

Solid: Dibuja el contorno o la figura completa.

Create CNC Job:

Cut Z: Distancia que la herramienta penetrará en la placa de cobre.

Travel Z: Distancia que la herramienta se elevará encima de la placa de cobre.

Feed Rate: Velocidad que la maquina tomará al realizar las acciones de corte

 

 

Geometry Options:

Plot Options:

Plot: dibujar o no la geometría indicada.

Create CNC Job:

Cut Z: Distancia que la broca penetrará en el material para realizar el trabajo de corte, fresado o taladrado (debe ser negativa).

Travel Z: Distancia que la broca se elevará por encima del material para realizar movimientos que no impliquen desbaste.

Feed rate: Velocidad que la maquina tomará al realizar las acciones de corte.

Tool dia: Diámetro de la herramienta.

Painted Area:

Tool dia: Diámetro de la herramienta.

Overlap: Distancia de solapamiento entre los trayectos que realiza la herramienta.

Margin: Distancia entre la herramienta y el limite del polígono. Puede utilizarse para evitar que una herramienta con un gran diámetro no toque los bordes de la zona de cobre que si ha de permanecer o, cuando se utilice una herramienta de diámetro pequeño, mejorar la precisión.

CNC Job Options:

Plot options:

Plot: dibujar o no la geometría indicada.

Tool dia: Diámetro de la herramienta.

Export G-code: Append to G-code: Permite incluir en el G-code la información que queramos.

Opciones-Geometry y CNC Job Options

 

 Importar Archivos

En general trabajaremos con placas de una cara, por lo que tendremos un archivo de capa de taladros y otro con la información sobre las pistas. En primer lugar vamos a importar el archivo de taladros. Para ello, dirígete a File>Open Excellon y seleccionamos el archivo *.drl. En la ventana de representación gráfica deberás observar los taladros de la pcb.

Paso 1.- Importar archivos

Después, importaremos la capa que contiene la información sobre las pistas. Dirígete a File> Open Gerber y selecciona el archivo con extensión *.gbl. Sobre los taladros aparecerá la capa con la disposición de las pistas.

Paso 1.1- Importar archivos

Si el proyecto contara con más capas, las cargaríamos como Gerber y se añadiría a la representación de las anteriores.

Rutado de capas

Rutado de la capa de taladros

Para rutar la capa de taladros, seleccionamos en la ventana de la izquierda el archivo de extensión *.drl y abrimos la pestaña Selected o hacemos doble click sobre el nombre.

Al cargar los archivos Gerber en FlatCam suelen aparecer con un offset, es decir, están desplazados con respecto al origen de coordenadas. En el caso de la imagen, se puede apreciar que el offset o desplazamiento es de (265,-125).Para que el fresado se realice dentro de la plancha de cobre es necesario modificar dichas coordenadas para centrar los layaouts en el origen y de este modo asegurarnos que las capas del layaout se encuentren dentro del área de fresado de la plancha.Para ello se aplica un vector de traslación a la capa. Paso 2.3.- Generar ruta de los taladros
En FlatCam, el origen está fijado en la esquina inferior izquierda. Deberás fijarte en las coordenadas de esa posición para aplicar el vector de traslación correspondiente, en este caso el vector es (-230,140). Como se puede ver en la siguiente imagen, la capa de taladros se ha desplazado hasta una posición cercana al origen. Paso 2.4.- Generar ruta de los taladros
Paso 2.5.- Generar ruta de los taladros

Una vez que hemos modificado la posición de la capa de taladros, hemos de configurar los parámetros con los que se generará el archivo de rutas.

En la pestaña Selected, nos encontraremos con diferentes opciones para configurar.

Cut Z: Profundidad de perforación.

Travel Z: Atura de la herramienta en el desplazamiento entre taladros.

Feed Rate: Velocidad en el eje Z durante la perforación (mm/min)

Paso 2.- Generar ruta de los taladros

En este caso vamos a realizar todos los taladros con la misma broca y el mismo rutado. Seleccionamos todos los taladros y modificamos los parámetros de Create CNC Job como se muestra en la imagen. Nota: La profundidad del taladro debe ser superior al grosor de la plancha de cobre.

 

 Generar las geometrías de la capa de pistas

Selecciona la capa de pistas .gbl (si trabajas con la capa inferior) o .gtl (si trabajas con la capa superior) y abre la pestaña Selected.

Isolation Routing:

Tool dia: Diámetro de la herramienta.

Widht (# passes): Número de veces que la fresa recorre el contorno de las pistas para realizar el fresado.

Pass overlap: Superposición de los recorridos de contorneado.

Board Cutout (corte borde de la placa):

En esta entrada vamos a ver los diferentes parámetros de fresado para diferentes materiales.

Tool dia: Diámetro de la herramienta.

Margin: Margen enrte las pistas y el borde de la PCB.

Gap size: Ancho de los puentes del contorno de la PCB.

Non-copper regions (zonas libres de cobre):

Boundary Margin: Margen con los limites

Rounded corners: Marcar si se desea redondear las esquinas.

Paso 3.- Generar ruta de las pistas

Al igual que con la capa de taladros, es necesario trasladar la capa de pistas. Para ello se aplica el mismo vector, (-230,140), que se ha usado en la capa de taladros. De esta manera, ambas capas se superponen exactamente en la misma posición.

Paso 3.1.- Generar ruta de las pistas

Generar geometría del contorno de pistas

Este apartado genera la geometría de la ruta que seguirá la fresa para definir las pistas.

La fresa recomendada para generar el aislamiento de rutas (Isolation Routing) es la fresa en V de 60º. Si utilizas esta fresa, configura los parámetros de geometría como se muestra en la imagen.

Paso 3.2.- Generar ruta de las pistas

Al hacer click en el botón Generate geometry se observa en la visualización gráfica dos recorridos alrededor del contorno que realizará la fresa.En este paso hay que asegurarse de que el contorno no pasa por encima de ninguna pista.El contorno más cercano corresponde al archivo con nombre *.gto_iso1 o *.gbl_iso1. El contorno más lejano corresponde al archivo con nombre *.gto_iso2 o *.gbl_iso2. Paso 3.3.- Generar ruta de las pistas

Geometría del contorno de la PCB:

En este ejemplo la placa no fue diseñada con borde, por ello es necesario delimitar un marco para la PCB. Configura los parámetros de la geometría como se muestra en la imagen.

Paso 3.4.- Generar ruta de las pistas Paso 3.5.- Generar ruta de las pistas

Geometría de las zonas libres de cobre

Este apartado genera la geometría que seguirá la fresa para limpiar de cobre las áreas libres. Configura los parámetros de la geometría como se muestra en la imagen.

Paso 3.6.- Generar ruta de las pistas Paso 3.7.- Generar ruta de las pistas

Una vez se han generado todas las geometrías, en la pestaña Project se habrán creado los archivos correspondientes a cada una de ellas.

Paso 3.8.- Generar ruta de las pistas

Generar rutado a partir de las geometrías

Una vez se ha creado la geometría de la ruta hay que generar los g-code para utilizar con Cyclone. Para crearlos selecciona cada una de las geometrías y dentro de la pestaña Selected comprueba que todos los parámetros son correctos y haz click en Generate. Automáticamente se generarán el código CNC y en la visualización gráfica se marcará en color azul.

Paso 4.-Generar G-code de las rutas Paso 4.2.-Generar G-code de las rutas

Para realizar el aislamiento de las pistas de una PCB, es recomendable configurar el valor Cut Z ligeramente superior a la capa de cobre de las planchas que utilicemos. Por ejemplo, la placa tiene un espesor de 1.5mm con 35 µm (0.035 mm) de espesor de capa de cobre, por lo que Cut Z = -0.036, aunque distancias tan pequeñas suelen dar problemas por lo que es recomendable utilizar una distancia de Cut Z de al menos 0.15 mm. En caso de que el trabajo corresponda con taladrado, igualaremos Cut Z a un valor mayor que el espesor de la placa, en el caso del ejemplo anterior, Cut Z será menor o igual a -1.5 (-1.6,-1.7).

Para la distancia Travel Z hay que encontrar un equilibrio entre menor altura (Disminuye el tiempo que tarda en realizarse el trabajo) y mayor altura (aumenta la seguridad). Si la distancia Travel Z es muy pequeña, la broca chocará contra los marcos u otros elementos y podría romperse o romper dichos elementos. En cambio, si la distancia Travel Z es demasiado grande, la broca se elevaría una distancia innecesariamente grande, aumentando el tiempo de trabajo sin ningún motivo. La distancia recomendada es mayor o igual a 1 mm.

Exportar a G-Code

Para crear el G-code de cada uno de las rutados se debe seleccionar cada uno de ellos y abrir la pestaña Selected. Haz click en el botón Export G-code

Paso 4.4.-Generar G-code de las rutas

Es recomendable añadir al final del nombre de archivo la extensión .gcode, ya que puede causar problemas de compatibilidad con ciertos programas o servicios.

Repite este proceso con todos los archivos de rutado y ya tendrás los G-Code listos para fresar.

Paso 4.5.-Generar G-code de las rutasPara cargar los archivos que acabamos de generar, utilizaremos CNC Gcode Controller. Podéis encontrar un tutorial de como utilizarlo aquí. Además, podréis ver en el vídeo todo el proceso que se ha explicado para un proyecto concreto.

Referencias

25 comentarios

  1. Muy buen tutorial :), gracias por compartirlo. Eso si, me ha quedado una duda, el programa FlatCam solo realiza el gcode del ruteado por el contorno del PCB verdad? porque por mas que he intentado no puedo generar gcode de la misma pista, es decir, quiero por asi decirlo dibujar las pistas, esto porque me construi un plotter xy con arduino, donde la herramienta es un plumon resistente al cloruro ferrico, con lo cual, no necesito dibujar el contorno sino que la pista misma.
    Si no se puede realizar con FlatCam, conoces algun programa que podria generar el gcode para plottear los PCB, de antemano gracias :).

    1. Luis Díaz

      ¡Hola Cristian!

      Gracias por el comentario.

      Si, FlatCam realiza solo el ruteado del contorno de la PCB. Para generar el gcode del interior de toda la pista podrías utilizar jscut ( jscut.org). Jscut es una herramienta web que permite generar gcode a partir de un archivo svg, por lo que tendrías que exportar la información de las pistas a un archivo SVG y después exportarlo.

      En unos días publicaré una entrada con un tutorial de jscut, pero estará mas enfocado a dibujos, grabados, etc.

      ¡Un Saludo!

      1. Genial 😀 gracias Luis, lo probare con el plotter haber que tal :)
        Gracias de nuevo!!
        Saludos!

        1. Luis Díaz

          ¡Perfecto! Si obtienes buenos resultados haznos saber.

          De nada, encantado de poder ayudar.

          ¡Un saludo!

  2. Amigo luis interesante tutorial, pero lamentablemente he tenido problemas para utilizar este FlatCAM, yo descargue la versión para windows y lo instale en XP, y genero los archivos de fabricación con Proteus 8.1 pero cuando cargo los archivos al FlatCAM no me abre el que contiene la capa de las pistas he configurado todo como lo tienes en el tutorial pero no me funciona.

    no se si es algún problema con la generación de los archivos en proteus
    o es por lo que lo instale el flatcam en xp?

    saludos

    1. Luis Díaz

      ¡Hola Leonel!

      Sobre Proteus no tengo información sobre si funciona o no, se que en el caso de Eagle hay que realizar la importación y hay que modificar ciertos parámetros.

      ¿Podrías subir el archivo que te da problemas y enviárnoslo? Así podremos ayudarte mejor.

      Un saludo.

    1. Luis Díaz

      Hola,

      He solicitado acceso a los archivos para poder descargarlos. Hasta que no tenga permisos para descargar no podré ayudarte.

      ¡Un saludo!

  3. Hola, resulta que yo trabajo en Altium y se supone que exporto los archivos a Gerber y a mi parecer lo hace bien o eso creo pero a la hora de cargarlos en el FlatCam para pasar los a G-Code no lo hace, no me da error ni nada pero no aparece nada en la ventada del prorama, no veo ni pistas ni taladros nada, se queda como si no cargara nada.
    ¿Me pueden ayudar al respecto?

    1. Luis Díaz

      Hola David,

      ¿ Estás abriendo los archivos con el menú Gerber? ¿Puedes enviar los archivos?

      Un saludo.

  4. Estoy trabajando con Proteus . exportando los archivos en GERBER se abre con FLATCAM .. :-) o que software sugieren

    1. Luis Díaz

      Buenos días Adrian,

      En principio debería funcionar, nosotros no tenemos Proteus, por lo que no podemos comprobarlo. Tu archivo debería tener un formato como el descrito en esta página http://flatcam.org/fileformats

      Un saludo.

  5. hola,
    podrías publicar la configuración de flatcam así es mas fácil de configurar para cyclon-pcb.

    saludos

  6. ¿que archivo es el ejecutable para GNU/linux? probe con:

    ~~~
    chmod +x FlatCAM.py
    ./FlatCAM.py
    ~~~

    pero me dio error

    1. Luis Díaz

      Hola, al principio de la entrada se explica el proceso de instalación del programa para Linux. Tienes que dar permisos al archivo setup:

      chmod +x setup_ubuntu.sh

      Y ejecutamos el script:

      sudo ./setup_ubuntu.sh

      Después, ya abres el programa con:

      python FlatCAM.py

      Un saludo.

  7. hola, un saludo, y un agradecimiento por compartir esta valiosa información, como muchos entusiastas mi esposa y yo nos dimos i a la tarea de construir nuestra propia fresadora cnc un agradecimiento a mi esposa que me acompaño, y colaboro a la par para realizar el proyecto( y ahora se la pasa fresando recuerditos) , fue mucho aprendizaje, disipar muchas dudas, hacer primero que se moviera. etc. etc. etc. y ahora que la termine me doy cuenta que sigue el aprendizaje continua.
    podrian ayudarme con esto?:
    utilizo el programa pcb wizard desde hace muchos años, me parece muy sencillo, y practico, tengo muchos pcbs elaborados con este programa, antes de pensar en el fresado, utilizaba la serigrafia para obtener mis placas, ahora con la fresadora quisiera producir mis pcb de manera mecanizada, logro cargar mis archivos gerber de pista, corte y hasta componentes que genera el pcb wizard, pero al tratar de cargar el archivo drl. no lo carga el flat cam me aparece un mensaje que dice FAILED TO PARSE DEFAULTS FILE, lo he tratado de cargar con las diferentes opciones que me da el pcb wizard: NO ZERO SUPRESSION, LEADING ZERO SUPRESSION, Y TRAILLING ZERO SUPRESSION.pero con las tres opciones obtengo el mismo resultado.
    perdón por la molestia, ¿ que estoy haciendo mal? ¿ o de plano el pcbc wizard no es compatible con flat cam?
    agradeceré sus comentarios, de antemano gracias
    saludos

    1. Luis Díaz

      Hola,

      Gracias por tu comentario. Realmente no se si es compatible, pero supongo que si exportas los archivos como drill y lo cargas como excellon en principio debería dejarte hacerlo. Es posible que por el tipo de codificación del archivo no sea compatible.

      Puedes preguntar en el foro de FlatCam, alli quiza puedan responderte mejor.

      Un saludo.

  8. me gustaría saber si se puede presar en superficies cilíndricas para relieves en negativo y luego usar ese grabado para porder erosionas en distintos diámetros.

  9. Hola:

    No se que hago mal. El circuito lo diseño en Kicad y luego lo exporto a gerber, luego genero el gcode con flatCam pero las pistas las graba de forma simétrica. como si las viéramos desde el lado componentes. Cuando obtengo los ficheros gerber desde Kicad con el menú Plot con la opción gerber la posibilidad de mirrored plot está desactivada.

    Gracias por adelantado.

    Saludos

    Juan Antonio

  10. Hola, buen tutorial, solo que no he logrado seguir los pasos ya que el momento de abrir los archivos Gerbers que he descargado de acá mismo, no se muestra nada en la pantalla de FlatCAM.
    Si me puedes ayudar con alguna pista de la falla que tenga mi programa, también he probado con archivos de Proteus, Altium y tampoco me muestra nada en pantalla.

    Nota: he descargado FlatCAM-Win32-8.4-Install.exe del repositorio bitbucket.org y lo he instalado normalmente en windows 10, hasta ahí ninguna falla.

    Gracias de antemano.

  11. Hola: Interesante tutorial, a partir de él bajé e instalé FlatCAM, posteriormente lo actualicé desde la páfina oficial y creo que estoy comenzando a avanzar, poder usar una CNC que hice como hobby, lo primero que quiero hacer con ella es unos PCB para implementar un conversor de PWM a control de fase para la herramienta de la máquina.
    Al principio el FlatCAM no era capaz de abrir los archivos Gerber generados con Proteus 8.0 profesional, que por cierto todos tienen la extensión TXT, no la extensión que figura en el artículo.
    Además para poder abrir los archivos Gerber y Excellon con FlatCAM, fue necesario modificar algunos componentes porque con FlatCAM no podía abrir los archivos con pads rectangulares con las esquinas recortadas (Dil Pad), cosa que logré cuando cambié los pads por formato circulares. Cuándo el FlatCAM no es capaz de abrir el archivo aparece en la parte inferior de la pantalla un cuadro de diálogo, mostrando un punto rojo y una indicación que dice: “Failed to parse file”, seguido con el path del archivo que se pretende abrir.

Los comentarios están cerrados.