Výroba DPS pomocou CNC, časť #2: Fabrické výstupy
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:
- Filozofia programu je taká, že do projektu sa pridávajú súbory (napr. spomínaný gerber) a z nich sa vytvárajú odvodené formáty, odlíšené pomocou suffixov _iso či _cnc.
- Takže ak si pridáme napr. súbor *B.Cu.gbr, potom ho upravujeme (dvojitým klikom alebo po jeho zvolení prepnutím na záložku Selected), tak vznikne súbor *B.Cu.gbr_iso. A tak ďalej.
- Na obrázkoch vidno, že napr v _iso definujeme hĺbku frézovania, otáčky vretena či posuv.
- A v _cnc zase veľkosť nástroja či vlastné definované G- (a M-) kódy (napr. M6 na výmenu nástroja, M9 na vypnutie privádzania mazacej a chladiacej kvapaliny).
- Analogicky sa teda takýmto spôsobom spracuje i Edge.Cuts.
- *PTH.drl súbor s definíciami vŕtania vyžaduje odlišné parametre, najpodstatnejšie sú priemery vŕtania - pretože na jednej DPS máme diery rôznych priemerov, ktoré sú dané súčiastkami a sú obsiahnuté v Excellon súbore. FlatCAM ich identifikuje a predvolene sa ich všetky snaží použiť. Niekedy to nemusí byť potrebné, napr. ak máme na DPS len pár súčiastok s vŕtaním 0,7 mm, ale všetky ostatné sú 0,8 mm.
- Všetky _cnc súbory sú už vo formáte G-code.
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:
- Vytvárať g-kód pre frézovanie vrchnej, spodnej vodivej vrstvy, vŕtanie dier a frézovania okraja.
- Exportovať nielen g-kód, ale aj grafické reprezentácie vo formáte SVG a PNG.
- Pridávať špeciálne riadiace príkazy pre LinuxCNC, Mach3, Mach4…
- A čo je jeho výhoda, oproti napr. FlatCAM, je možnosť voronoi módu. Zjednodušene nám to vytvorí plochy s rovnakým potenciálom. Jeho výhoda je zrejmá - výrazne rýchlejšie frézovanie, väčšie prúdové zaťaženie. Nevýhodou je, že na prvý pohľad, pri komplikovanejších schémach, nemusí byť jasné, ktorá cesta kam vedie, ďalej esteticky to nie je úplne ono.
S pcb2gcode je možné narábať dvomi spôsobmi:
- ako s klasickým príkazom v jednom riadku, s prepínačmi, alebo
- 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ť.
Pre pridávanie komentárov sa musíte prihlásiť.
parada.
vdaka. asi zacnem nad cnc uvazovat
Veľmi pekný blog :-)
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 :)
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,,,