Výroba DPS pomocou CNC, časť #2: Fabrické výstupy

15.03.2021 | 16:04 | Richard | Richard

Všetko máme nakreslené, ale porozumie tomu i CNC?

1 Gerber & Excellon & G-code

V predchádzajúcej časti sme si ukázali, ako vytvoriť dizajn jednoduchého plošného spoja. Vlastné interné formáty KiCAD-u, alebo iného návrhového nástroja však nie sú použiteľné na samotnú výrobu, či už v profesionálnej firme, alebo na malom CNC.
Gerber je otvorený formát pre DPS. Je to štandard, ktorý hovorí, ako sa budú definovať náležitosti DPS ako medené vrstvy, spájkovacia maska, legenda, vŕtanie.
Každá obrazová vrstva (medené vrstvy, spájková maska, legenda…) sa exportuje do osobitného súboru.
Excellon je pôvodne proprietárny formát, ktorý pôvodný tvorca zverejnil, bez úpravy licencie. Jeho dostupnosť spôsobila, že sa stal de facto štandardom a všetky známe CAD-y či konvertory ho dokážu exportovať.
Hovorí o pozícií a priemeroch vŕtaných dier a o použitých jednotkách vzdialeností. Avšak viac hádam ani nie je potreba, nakoľko viac informácií pre CNC stroj poskytuje G-code.
G-code sú prípravné kódy, ktoré hovoria CNC stroju, aký typ akcie má vykonať - napr. rýchly presun, presun po priamke či oblúku, rýchlosť vretena nástroja a jeho záberu, výška nástroja pri rýchlom presune a pod.

Postup je zrejmý: Z KiCAD-u vyexportujeme gerber a excellon súbory, tie prevedieme do g-code a tým budeme ovládať CNC.

 

2 Exporty z KiCAD-u

Dôležitou vecou je stanovenie nulového bodu, od ktorého výsledný gerber alebo g-code bude definovať pozície v karteziánskej súradnej sústave. Na to slúži nástroj označený v obrázku č. 1. Ja ho volím ako ľavý spodný roh ohraničujúcej čiary DPS vo vrstve Edge.Cuts

Obrázok 1: Stanovenie nulového bodu.

Následne si zvolíme Plot (paradoxne nie Export), v ktorom, ako vidno na obrázkoch, máme na výber formáty, do akých sa naša DPS „vykreslí“.

Obrázok 2: Export do Gerber formátu pre B.Cu a Edge.Cuts.

 

Je dôležité zaškrtnúť voľbu Use auxiliary axis as origin, inak nami vopred definovaný nulový bod nebude braný v úvahu, ale všetky súradnice sa budú vzťahovať k rohu výkresu.
A samozrejme zvolíme, ktoré vrstvy sa do exportu použijú, v našom prípade B.Cu a Edge.Cuts. Ako výstupný formát zvolíme Gerber. Tlačidlom Plot vygenerujeme potrebné súbory.

Následne pomocou tlačidla Generate Drill Files… sa otvorí modálne okno, kde si zvolíme výstupný formát Excellon, zaškrtneme Auxiliary axis a tlačidlom Generate Drill File vytvoríme súbory vŕtania.

Ak nie je definované inak, všetky vyexportované súbory budú v adresári celého projektu.

Obrázok 3: Export do Excellon formátu - vŕtanie.

 

3 Vytvárame G-code

Na vytvorenie G-code súborov existuje viacero nástrojov. My si opíšeme dva - jeden GUI a jeden CLI. Budeme potrebovať tri vyexportované súbory - s vrstvou B.Cu, Edge.Cuts a konečne PTH, čo je vŕtanie vodivých dier (NPTH sú nevodivé, ale tie v našom projekte nemáme, hoci okrajové diery by nimi mohli byť).

3.1 FlatCAM

FlatCAM je grafický nástroj na generovanie výstupov (nielen) z gerber súborov ale aj z SVG. Jeho ovládanie je pomerne intuitívne a hlavne všetky zmeny parametrov je krásne vidieť na grafickom zobrazení úlohy. Čo sa týka jeho inštalácie, tá nie je podľa môjho gusta. Vyžaduje inštaláciu veľkého množstva knižníc:

#!/bin/sh                                                                                                                                             
apt-get install libpng-dev
apt-get install libfreetype6 libfreetype6-dev
apt-get install python-dev
apt-get install python-simplejson
apt-get install python-qt4
apt-get install python-numpy python-scipy python-matplotlib
apt-get install libgeos-dev
apt-get install python-shapely
easy_install -U distribute
apt-get install python-pip
pip install --upgrade matplotlib
pip install --upgrade Shapely
apt-get install libspatialindex-dev
pip install rtree
pip install svg.path

Napriek nepopierateľnej robustnosti a výbornému systému správy balíčkov v GNU/Linux-e, mám prirodzený odpor k takýmto situáciám - kvôli jednému programu mať na disku kvantum ďalších súborov… a pritom ešte neviem, či ho budem vôbec používať. V tomto sú AppImage a jeho analógie výbornou pomôckou.
Radšej som preto zvolil inštaláciu FlatCAM vo virtuálnom počítači, odkiaľ sú aj snímky obrazoviek.

Tie sú, myslím, hodne vypovedajúce, a hádam postačuje spomenúť len toto:

Obrázok 4: FlatCAM: Nahratý gerber súbor s vodivými cestami.

 

Obrázok 5: FlatCAM: Definujeme pravidlá pre frézovanie vodivých ciest.

 

Obrázok 6: FlatCAM: Generujeme G-code pre frézovanie vodivých ciest.

 

Obrázok 7: FlatCAM: Možnosť doplnenia G-code.

 

Obrázok 8: FlatCAM: Definujeme pravidlá pre orez DPS.

 

Obrázok 9: FlatCAM: Generujeme G-code pre orez DPS.

 

Obrázok 10: FlatCAM: Možnosť doplnenia G-code.

 

Obrázok 11: FlatCAM: Vŕtame diery rôznych priemerov.

 

Obrázok 12: FlatCAM: Doplnenie G-code pre vŕtanie.

 

Obrázok 13: FlatCAM: Celý projekt.

 

V grafickom náhľade vidíme tiež poradie, v akom sa budú diery vŕtať, či ako sa bude presúvať nástroj medzi operáciami.

 

3.2 pcb2gcode

Pcb2gcode je program určený pre príkazový riadok. Žiaľ, vo väčšine repozitárov je silne zastaraná verzia, preto najlepšie riešenie bolo zostavenie najnovšej.

Na githube je postup ako na to i aké knižnice sú ku kompilácii potrebné.

V princípe to išlo takto:

sudo apt-get install build-essential automake autoconf autoconf-archive 
sudo apt-get install libtool libboost-program-options-dev libgtkmm-2.4-dev gerbv git librsvg2-dev 
git clone https://github.com/pcb2gcode/pcb2gcode.git 
cd pcb2gcode
autoreconf -fvi
./configure
make

Opäť som to spravil na virtuálnom stroji. Ak by mal o binárku niekto záujem, uploadol so ju (verzia 2.3.0) na mediafire. Je ku nej potrebný i gerbv (apt-get install gerbv).

Pcb2gcode je teda program, ktorý prijíma na vstupe súbory produkované nástrojmi na navrhovanie DPS - súbory Gerber (RS-274X) a Excellon (RS-274C) (analyzované programom gerbv) a vytvára súbory vo formáte G-code (RS-274D / NGC).

Má tieto hlavné funkcie:

S pcb2gcode je možné narábať dvomi spôsobmi:

  1. ako s klasickým príkazom v jednom riadku, s prepínačmi, alebo
  2. pomocou vytvorenia textového súboru s (predvoleným) názvom millproject, v ktorom sú všetky parametre na osobitných riadkoch, dajú sa komentovať a ľahko modifikovať.

Ukážeme si, ako taký millproject vyzerá, do komentárov som pridal stručný opis:

# všetko za znakom "#" je považované za komentár
# DPS 5-24 V
# súbor pre pcb2gcode

metric=true              # použitie metrickej sústavy na vstupe
metricoutput=true        # a na výstupe (inak čísla budú v palcoch, hoci prerátané z mm)

back=DPS-5-24V-B.Cu.gbr  # súbor s našou vodivou vrstvou
zwork=-0.05              # hĺbka frézovania
zsafe=2                  # výška nástroja od nuly pri presune
zchange=20               # výška nástroja pri zapauzovaní CNC a výmene nástroja
mill-feed=70             # posuv nástroja (v mm/min.) pri frézovaní
mill-speed=500           # otáčky vretena nástroja / min. pri frézovaní
offset=0.10              # odstup hrotu nástroja od vonkajšej strany vodivej cesty
nog64=true               # pre kompatibilitu s gbrl kontrolérmi
voronoi=true             # využitie voronoi režimu
#no-export=true          # program netvorí g-code súbory (prípona .nc), ale len SVG a PNG


outline=DPS-5-24V-Edge.Cuts.gbr  # súbor s okrajmi DPS
zcut=-1.5                        # hĺbka rezu 
cutter-diameter=0.4              # priemer nástroja
cut-feed=66                      # posuv nástroja (v mm/min.)
cut-speed=400                    # otáčky vretena nástroja / min. 
cut-infeed=0.5                   # max. hĺbka zahĺbenia nástroja v jednom prechode


drill=DPS-5-24V-PTH.drl          # súbor pre vŕtanie
zdrill=-1.60                     # hĺbka vŕtania
drill-feed=60                    # posuv v Z osi počas vŕtania (mm/min.)
drill-speed=500                  # otáčky vretena nástroja / min. 
#milldrill-diameter=0.8          # priemer vrtáka, ak sa používa iba jeden typ, inak berie priemery z excellon
#onedrill=true                   # a vtedy musí byť aktívny aj tento parameter
nog81=true                       # pre kompatibilitu s gbrl kontrolérmi

Ostatné parametre môžu ostať, aspoň v našom prípade, predvolené (DPI, nula,…).

Vygenerované výstupné súbory majú názvy: back.ngc, drill.ngc., outline.ngc.

V ďalšej kapitole si ukážeme, ako ovládať samotný CNC stroj a skúsime si tie DPS na ňom vytvoriť.

    • RE: Výroba DPS pomocou CNC, časť #2: Fabrické výstupy 15.03.2021 | 19:56
      Avatar redhawk75   Používateľ

      parada.

      vdaka. asi zacnem nad cnc uvazovat

    • RE: Výroba DPS pomocou CNC, časť #2: Fabrické výstupy 15.03.2021 | 20:10
      Avatar Pavel Q4OS KDE  Administrátor

      Veľmi pekný blog :-)

    • RE: Výroba DPS pomocou CNC, časť #2: Fabrické výstupy 16.03.2021 | 20:53
      Avatar bedňa LegacyIce-antiX  Administrátor

      Appimage tiež občasne používam, ale teraz k veci.

      Python je výborný jazyk a prečo zakaždým vymýšľať koleso od znovu ako to má v obľube RedHat.

      Proste šiahneš po knižniciach čo sú už hotové a použiješ ich. S každým riadkom samozrejme klesá bezpečnosť, ale to potom zahoďme všetky programy čo ponúkajú viac ako cat.

      Appimage, Flatpak, Snapd je samozrejme to isté, ale s bonusom, že sú pribalené staré deravé knižnice, čo je určite super. To je ten druhý Windejsi, čo sa potichu vkráda aj do Linuxu. Jasne bude o tom blog a akp sa s tým odborníci z RedHat vysporiadali. Budu blejt velebdnosti, nebude to pěkné počtení.

      Inak dík za blog, zajtra idem na tretí diel :)

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Výroba DPS pomocou CNC, časť #2: Fabrické výstupy 16.03.2021 | 21:22
        Avatar Pavel Q4OS KDE  Administrátor

        Ok, ale keď nemáš inú možnosť ako soft inštalovať len zo Snapu alebo Flathubu, ktorú možnosť zvolíš? Používam jeden soft ktorý má na domovskej stránke možnosť len Flatpak inštalácii. A myslím si že aj Flatpak je spoľahlivejší ako AppImage ktorý nie každý aj spustíš, aj keď ti nezadrbe systém,,,