Skip to content
 

Premeny 3D tlačiarne II. – Súradnicová vŕtačka

Druhou premenou 3D tlačiarne je premena na súradnicovú vŕtačku.

Mechanická časť

Srdcom vŕtačky je motor (ako ináč, z Ćíny) s klieštinovým vretenom. Zvolený motor je malý, ľahký, trasľavý a nevýkonný, no hlavne vreteno prejde otvorom vo vozíku a ťažisko vŕtacej hlavy nie je ďaleko od koľajníc osi X.

K motoru sme vytlačili jednoduchý držiak, ktorý umožňuje beznástrojovú výmenu. Aby sme mohli nástroje pohodlne vymieňať, vreteno sme po stranách mierne zbrúsili a vytlačili sme malý kľúč, ktorý dokáže vreteno uzamknúť. Detaily sú vidno na nasledujúcich obrázkoch.



K ovládaniu poslúži ovládanie ventilátora, ktoré je spínané tranzistorom s maximálnym trvalým prúdom 60A(中文).

Aby sme mohli vŕtanie prerušiť a pokračovať v ňom po výmene nástroja, potrebujeme pripojiť ovládacie tlačítko. Repetier firmvér implementuje príkaz M226 (čakanie na stav digitálneho IO), ktorý na tento účel využijeme. Digitálny výstup pripojíme cez odpor 10k k napájaciemu napätiu a tlačítkom ho skratujeme voči zemi. Ideálnym je niektorý zo servo výstupov (D4, D5, D6 alebo D11), kde máme všetky tri signály k dispozícii na jednom trojvývodovom konektore.

Firmvér

Repetier firmvér podporuje tzv. CNC mód, avšak nepodarilo sa nám rozchodiť tak, aby ovládanie motora bolo riadené cez výstup pre ventilátor. Takže v prvej fáze budeme vreteno zapínať a vypínať príkazmi na ovládanie ventilátora.

K tejto problematike sa neskôr vrátime (skúsime využiť nepoužité napájanie druhého extrudera), avšak to bude znamenať kábel navyše.

Príprava podkladov a vytvorenie g-code

Na úvod trochu skuhrania. Pri našich experimentoch sa ukázalo, aké veľké sú rozdiely medzi g-code podľa normy RS274/NGC a implementáciami vo firmvéroch pre 3D tlačiarne. Nejde iba o význam jednotlivých príkazov, ale aj spôsob ich zápisu. Napríklad podľa štandardu sa rýchlosť otáčania vretena (S) alebo rýchlosť pohybu (F) nastavujú samostatným príkazom. U 3D tlačiarní sa používajú ako parameter prikazu G alebo M a ako samostatne stojace príkazy sú ignorované. Na druhej strane – podľa štandardu – tieto nastavenia nie sú povolené ako parametre. Je to pochopiteľné – zatiaľ čo podľa štandardu majú príkazy S a F jednoznačne stanovenú funkciu, u 3D tlačiarní môžu znamenať čokoľvek. Druhým problémom je, že podľa štandardu je možné príkaz vynechať a zadať iba nové parametre (príkaz sa automaticky zopakuje); u 3D tlačiarní je príkaz vždy povinný.

Tieto odlišnosti vedú k tomu, že vŕtací kód vytvorený softvérom na návrh DPS nie sme schopní použiť s firmvérom 3D tlačiarní.

Takže nám ostáva niekoľko možností. Prvou je napísať príslušný g-code ručne. Nie je to až taký problém. Druhou možnosťou je skúsiť generovať g-code z kresliaceho programu. Keďže sme nič také nenašli, vytvoríme si vlastné rozšírenie pre Inkscape. No a poslednou možnosťou je vytvoriť konvertor z Excellon formátu (väčšina CAD softvérov poskytuje vŕtacie dáta v tomto formáte, je to vlastne neformálny predchodca g-code).

Manuálna tvorba g-code

Jednoduchý komentovaný príklad, ktorý vyvŕta dve diery s priemerom 0.5mm a dve diery s priemerom 0.8mm. Príklad nevyžaduje nejaký ďalší komentár. Kód predpokladá, že máme pripojené tlačítko k digitálnemu vstupu D11.

Malou nepríjemnosťou je chovanie Repetier firmvéru pri zabrazení správy. Správa sa síce zobrazí, avšak vzápätí sa premaže dôležitým oznámením „Idle“.

; Inicializácia

G92 X0 Y0 Z0            ; nastavenie virtuálnej nuly
G21                     ; Jednotky: milimetre
G90                     ; absolútne súradnice

; Požiadavka na prvý nástroj

M107                    ; zastavenie motora
G00 Z20 F700            ; zdvih do pozície na výmenu nástroja
                        ; zobrazenie správy
M117 Change drill: 0.5mm
M226 P11 S0             ; čakanie na stlačenie tlačítka
M106 S255               ; spustenie motora
G00 Z2 F700             ; presun do transportnej výšky
G4 S1                   ; čakanie na stabilizáciu otáčok

; Vŕtanie prvým nástrojom

G00 X10 Y10 F5000       ; presun na polohu
G01 Z-3 F50             ; vŕtanie
G01 Z2 F700             ; návrat
G00 X20 Y10 F5000       ; presun na polohu
G01 Z-3 F50             ; vŕtanie
G01 Z2 F700             ; návrat

; Požiadavka na výmenu nástroja

M107                    ; zastavenie motora
G00 Z20 F500            ; zdvih do pozície na výmenu nástroja
                        ; zobrazenie správy
M117 Change drill: 0.8mm
M226 P11 S0             ; čakanie na stlačenie tlačítka
M106 S255               ; spustenie motora
G00 Z2 F700             ; presun do transportnej výšky
G4 S1                   ; čakanie na stabilizáciu otáčok

; Vŕtanie druhým nástrojom

G00 X20 Y20 F5000       ; presun na polohu
G01 Z-3 F50             ; vŕtanie
G01 Z2 F700             ; návrat
G00 X10 Y20 F5000       ; presun na polohu
G01 Z-3 F50             ; vŕtanie
G01 Z2 F700             ; návrat

; Ukončenie práce

M107                    ; zastavenie motora
G28 X                   ; zaparkovanie hlavy
M84                     ; vypnutie motorov

Filter pre Inkscape

Rozšírenie pre Inkscape sme museli kompletne napísať od začiatku, keďže sme nenašli nič použiteľné. Stiahnuť ho môžete na konci článku alebo na Githube. Inštalácia je jednoduchá: súbory treba skopírovať do systémového alebo užívateľského adresára s rozšíreniami (adresáre sú definované v konfigurácii Inkscape: Edit->Preferences->System).

Rozšírenie vytvorí vŕtací plán zo všetkých kruhov v nakreslenom návrhu, ktorých priemer nepresiahne zvolenú hodnotu. Do úvahy sa berú iba kruhy; elipsy alebo oblúky sa do úvahy neberú.

Máme na výber z dvoch formátov výstupného súboru: Excellon alebo g-code kompatibilný s 3D tlačiarňami. Excellon formát je nepísaným štandardom pri vytváraní vŕtacích plánov z CAD softvérov a môžeme ho použiť ako vstup pre ďalšie spracovanie.

BASTL Drill Tool nájdeme v menu Extensions (Rozšírenia), podmenu BASTL Tools. Po jeho zvolení sa objaví dialóg s voľbami, rozdelenými do dvoch záložiek:

Na prvej záložke (s názvom General) nájdeme základné parametre pre tvorbu vŕtacích dát:

  • Output Format: typ výstupného súboru – Excellon alebo g-code
  • Unit: jednotky, v ktorých bude vytvorený výstupný súbor (milimetre alebo palce).
  • Maximum Drill Diameter: Maximálna veľkosť otvoru. Otvory s väčším priemerom nebudú zahrnuté vo výstupnom súbore
  • Filename: meno výstupného súboru

Na druhej záložke (s názvom G-Code) nájdeme parametre týkajúce sa vytvárania g-code:

  • Spindle ON Command: príkaz na zapnutie vretena (vrátane otáčok)
  • Spindle OFF Command: príkaz na vypnutie vretena
  • Tool Change Command: príkaz na výmenu nástroja
  • Additional initialization: dodatočná inicalizácia (ak nechceme meniť Program Header)
  • Message Command: príkaz na zobrazenie správy na LCD displeji
  • Drill Height: výška, do ktorej sa bude vŕtať (obvykle záporná).
  • Safe Height: bezpečná výška, v ktorej sa môže vŕtacia hlava premiestňovať.
  • Tool Change Height: výška, v ktorej sa budú vymieňať nástroje.
  • Drill Speed: rýchlosť vŕtania (vnikania do matriálu)
  • Retract Speed: rýchlosť vyťahovania vrtáku
  • Transport Speed: rýchlosť presunu od diery ku diere
  • Program Header: inicializačné príkazy programu
  • Program Footer: záverečné príkazy programu

Pokiaľ potrebujeme definovať viacriadkové príkazy použijeme znak „|“ ako oddeľovač riadkov.

Konvertor Excellon formátu

Excellon formát je v podstate predchodcom štandardizovaného g-code. Je mierne orientovaný na konkrétny typ zariadení (od firmy Excellon) a dokáže popísať ako vŕtanie dier (v tzv. drill mode) tak aj frézovanie (route mode). V súčasnosti sa používa iba jeho podmnožina popisujúca vŕtací plán. V Excellon formáte produkuje vŕtacie dáta väčšina návrhových systémov pre DPS.

Napísali sme jednoduchý a trochu neučesaný konvertor podmnožiny Excellon formátu do g-code kompatibilného s 3D tlačiarňami. Pokiaľ potrebujeme štandardný g-code môžeme využiť niektorý z existujúcich konvertorov.

Náš konvertor je napísaný v Pythone a v podstate kopíruje funkčnosť rozšírenia pre Inkscape. Konvertor sme nazvali exc2gcode (exc2gcode.py) a pozná nasledujúce parametre:

Usage: exc2gcode.py [options] <filename>

Options:
  -h, --help            show this help message and exit
  -f OUTPUT_FILE, --file=OUTPUT_FILE
                        Name of output file; if not specified stdout is used
  -u UNIT, --unit=UNIT  Output unit (mm or in); if not specified the unit used
                        in imput file is preserved
  -x MAXSIZE, --maxsize=MAXSIZE
                        Maximum drill diameter (mm or in)
  --header=GHEADER      Program header
  --footer=GFOOTER      Program footer
  --spindle-on=SPINDLE_ON
                        Spindle ON Command
  --spindle-off=SPINDLE_OFF
                        Spindle OFF Command
  --init-cmd=INIT_CMD   Additional initializatiom
  --tool-cmd=TOOL_CMD   Tool Change Command
  --msg-cmd=MSG_CMD     Display Message Command
  --drill-height=DRILL_HEIGHT
                        Drill Height (mm or in)
  --safe-height=SAFE_HEIGHT
                        Safe Height  (mm or in)
  --tool-change-height=TOOL_HEIGHT
                        Tool Change Height  (mm or in)
  --drill-speed=DRILL_SPEED
                        Drill speed (mm/min)
  --retract-speed=RETRACT_SPEED
                        Retract speed (mm/min)
  --move-speed=MOVE_SPEED
                        Move speed (mm/min)

Pokiaľ potrebujeme definovať viacriadkové príkazy použijeme znak „|“ ako oddeľovač riadkov.

Aby sme nemuseli opakovane zadávať všetky parametre môžeme vytvoriť súbor s preddefinovanými hodnotami. Máme dve možnosti:

  • súbor s názvom exc2gcode v aktuálnom pracovnom adresári
  • súbor s názvom .exc2gcode v domovskom adresári užívateľa (~/.exc2gcode alebo %USERPROFILE%\.exc2gcode, v závislosti na použitom OS)

Najprv sa načíta súbor v domovskom adresári (pokiaľ existuje) a po ňom sa načíta súbor v aktuálnom pracovnom adresári. Hodnoty uvedené na príkazovom riadku majú prioritu pred hodnotami z konfiguračných súborov. Formát súboru je jednoduchý: obsahuje páry názov:hodnota (oddelené dvojbodkou), kde názov zodpovedá dlhému názvu voľby z príkazového riadku. Napriklad:

header:G92 X0 Y0 Z0|G90
tool-change-height:40
drill-speed:30
tool-cmd:M226 P11 S0

Nastavenie a vŕtanie

G-code, ktorý používame – či ručne písaný alebo generovaný – predpokladá, že tlačiareň je ručne nastavená do bodu (0,0) a výška nástroja je nastavená tak, že sa dotýka povrchu vŕtaného materiálu. Tento bod sa nastaví ako „virtuálna nula“ príkazom G92 X0 Y0 Z0 (parametre sú u Repetier firmvéru nutné, ďalšia odchýlka od štandardu) a všetky súradnice sa odvíjajú od tejto virtuálnej nuly.

Najjednoduchší a hlavne bezpečný spôsob nastavenia výšky je osadiť vrták do klieštiny (nie na doraz), spustiť hlavu tesne nad povrch (zhruba 0.5mm) a klieštinu uvoľniť, aby vrták dopadol na povrch. Týmto spôsobom sa minimalizuje riziko zlomenia vrtáku pri presnom nastavovaní.

Pri nasadzovaní a výmene vrtákov používame dištančnú podložku. Jej výška by mala byť zvolené tak, aby vznikol dostatočný priestor na výmenu nástroja. Výšku dištančnej podložky zadávame ako „Tool Change Height“ parameter. Presnosť nie je kritická – počas celého programu by vrták pri horizontálnych pohyboch nemal klesnúť pod bezpečnú výšku (Safe Height), na kompenzáciu nepresnosti stačí ponechať dostatočnú rezervu pri vŕtaní (Drill Height).

Postup výmenu je nasledovný:

  1. Po spustení vŕtacieho programu alebo pri požiadavke na výmenu nástroja sa hlava zdvihne do polohy definovanej parametrom „Tool Change Height“ a program zastaví
  2. Nasadíme nový nástroj a zasunieme pod neho dištančnú podložku
  3. Nástroj zafixujeme v takej polohe, aby sa dotýkal povrchu dištančnej podložky
  4. Dištančnú podložku vyberieme a program necháme pokračovať (stlačením tlačítka)

Rýchlosť pohybu – najmä rýchlosť vŕtania – je stanovená experimentálne. Pokiaľ je rýchlosť privysoká vrták pod tlakom ubieha do bokov a vstup nie je čistý, nehovoriac o riziku zlomenia vrtáku. Tento jav je vidieť voľným okom. V takom prípade je potrebné rýchlosť znížiť. S použitým motorom to je menej ako 50mm/min pri priemeroch vrtáku do 1mm. Pozor na minimálnu povolenú rýchlosť, pri nízkych rýchlostiach bude potrebné upraviť hodnotu maximálneho povoleného zrýchlenia.

Minimálna rýchlosť sa počíta podľa vzorca:

vmin = 60.0 * A * sqrt( 2.0 / ( S * A ))

kde A je maximálne zrýchlenie na príslušnej osi a S je počet krokov motora na 1 milimeter. Tieto údaje vieme získať príkazom M360.

V našom prípade máme pre os Z nastavené maximálne zrýchlenie 90mm/s2 a počet krokov 395 na 1 milimeter. Takže minimálna rýchlosť na osi Z je 40,5 mm/min.

Pre os X a Y sa vypočítáva hodnota spoločne podľa osi X, a to podľa väčšieho z dvoch zrýchlení – jedno sa stanovuje pre presuny (G0), druhé pre pracovné pohyby (G1, G2, G3). V našom prípade máme pre obe osi X a Y nastavené maximálne zrýchlenie 950mm/s2 a počet krokov 80 na 1 milimeter. Takže minimálna rýchlosť na osiach X a Y je 292.4 mm/min – to je limit na ktorý sme narazili pri laserovej gravírke.

Našťastie môžeme maximálne zrýchlenie nastavovať dynamicky pre presuny pomocou príkazu M202 X... Y... Z... a pre pracovné pohyby M201 X... Y... Z... (samozrejme, stačí špecifikovať iba osi, ktoré potrebujeme zmeniť). Najjednoduchší spôsob je vždy nastaviť obe zrýchlenia (M202 a M201) rovnako.

Pri vŕtaní DPS je vhodné povrch DPS prekryť vstupným materiálom, ktorý zamedzí vzniku ostrín na okraji vrtu. Používame hladkú maliarsku kryciu pásku, výsledok je viac ako dobrý.

Na obrázku vpravo je vidieť výsledok – dole sú otvory vŕtané vrtákom priemeru 0,4mm, hore vrtákom priemeru 0,3mm. Najväčšou slabinou použitého motora je nepresné a voľné uloženie osi (alebo jej krivosť), čo spôsobuje že špička vrtáka opisuje kružnicu. U malých priemerov vrtáku (0.3mm a 0.4mm) je tento problém veľmi viditeľný (a vedie k ich častému lámaniu), u väčších priemerov sa tento jav potláča. Krivosť čínskych „repasovaných“ vrtákov problém iba zhoršuje. K pokusom sa neskôr vrátime s kvalitnejšími motormi.

Druhým problémom môže byť nedokonalá kolmosť k povrchu, čo môže spôsobovať ubiehanie vrtáku do strany (možná príčina javu ktorý vidieť na otvoroch 0,3mm). Aj s tým skúsime niečo urobiť.

Nasledujúce video ukazuje priebeh vŕtania. Použitý je ručne písaný g-code z tohoto článku, čakanie na tlačítko je nahradené dvojsekundovou pauzou.

Na stiahnutie

OpenSCAD model držiaka vŕtačky
Rozšírenie pre Inkscape BASTL Drill Tool (alebo priamo na Githube)
exc2gcode konvertor (alebo priamo na Githube)

Print Friendly, PDF & Email
7 583 zobrazení