Hjemmebygget CNC-fræser del 3 (software) Der er behov for tre stykker software for at komme fra ide til fræst emne 1. 2. 3. Machine controller det software der styrer stepmotorerne og sikrer at fræsebord og spindel bevæger sig derhen hvor det skal 3D-CAD computer aided design kort fortalt et 3d tegneprogram CAM computer aided manufacturing et program der kan oversætte en 3d-tegning til g-code som er cnc-sprog De to sidste vil jeg kun gå kort ind i da det er meget afhængigt af smag og behag hvilket software man bruger. Machine controlleren er mere relevant at gå i dybden med Machine controller Jeg har valgt at bruge MACH3 (link) og helt ærligt kan jeg ikke huske om der findes alternativer I virkeligheden var MACH3 det første designvalg jeg gjorde og derfra fulgte valg af stepper controller og så videre MACH3 koster lige nu $175. Min Lasergrveringsmaskine har valgt en anden model hvor en arduino udstyret med GRBL software styrer stepper driverne. Det betyder at man sender g-code ned til det lille print der så oversætter til step til akserne.
MACH3 er baseret på at styre LPT-porte (printerporte). Dødeligt umoderne allerede da jeg lavede systemet. Men det har været tradition i mange år at gøre det sådan i hobbysystemer Smoothstepper er USB-baseret og virker ved at en plugin i MACH3 simulerer en parallelport og sender output ud på smoothstepper. Det er også derfor at alle porte og outputs nummereres efter port 1 og 2. Begrænsninger i hvilke pins der er inputs og outputs er ligeledes afgjort af hvad en parallelport kunne den gang de var standardudstyr Der findes nu alternativer blandt andet MACH4 som ikke er parallelport baseret. Smoothstepper kommer med en MACH4 driver på et tidspunkt Den var ikke klar sidst jeg checkede men skulle være på vej.
Ports and pins Når MACH3 er installeret og driverne oppe at køre så skal den grundlæggende konfiguration laves. Det handler i al sin enkelthed om at afgøre hvilke pins der anvendes til step/direction, endestop og deres polaritet. Hvis en motor kører den forkerte vej ja så markerer man den bare som active low eller bytte to ledninger ud til motoren. Jeg har følgende tildeling af pins (og bruger kun port 1): X step Y step Z step X direction Y direction Z direction X ++/ /home Y ++/ /home Z ++/ /home E-stop Port 1 pin 2 Active high Port 1 pin 3 Active high Port 1 pin 4 Active high Port 1 pin 6 Active low Port 1 pin 7 Active high Port 1 pin 8 Active high Port 1 pin 11 Active high Port 1 pin 12 Active high Port 1 pin 13 Active high Port 1 pin 10 Active low Spindle / output 1 Port 1 pin 16 Active high Motor profile
Når der først er hul igennem til motorerne og de flytter sig når man bruger piletasterne i MACH3 ja så skal man finde ud af hvor mange step der er per mm fremdrift på aksen og hvor hurtigt de kan køre Antal step per mm skal man regne ud ved følgende udregning: StepPerMm = MotorStepPerRev * DriverMicroSteps / GevindStigning MotorStepPerRev = 200 (1.8 gr/step) GevindStigningXY = 3 mm/omdr GevindStigningZ = 1.5 mm/omdr DriverMicroSteps = 32 steps per step (sw5-8: off/on/off/on) StepPerMmXY = 200 * 32 / 3 = 2133.33333 StepPerMmZ = 200 * 32 / 1.5 = 4266.66667 For at finde ud af maksimalhastighed og acceleration så sætter man et måleur op på den pågældende akse og kører så frem og tilbage i stadig højere hastighed indtil man begynder at mister steps Start med lav acceleration. Når max hastighed er fundet så justeres accelerationen gradvist op til man igen mister steps. Når man mister steps er det i øvrigt meget tydeligt at høre Mit udstyr kan køre med 800 mm/min og 50 mm/s^2 i acceleration.
Når først det virker Det er ret nemt at få MACH3 til at virke men selvfølgelig er der 1000 mulige settings som man kan bruge mange timer på at undersøge bagefter Eks. er der en sjov lille feature som jeg skal bruge når jeg laver lasergravering fra Inkscape og den plugin der hedder Laser Engraving. Den genererer nemlig kurve bevægelser med absolutte IJ-koordinater hvor mit cad-program følger den G-kode der vælger mode Men når først det virker så virker det kanongodt. På hovedskærmen kan man bruge piletasterne til at bevæge X-Y akserne. Page up-down styrer Z-aksen. Trykker man shift sammen med piletasterne så kører den il-gang. Jeg bruger piletasterne til at flytte fræsehovedet til det sted jeg har lavet min CAM-programmering til at placere 0- punktet. Når man er på plads så trykker man på zero ud for hhv. x, y og z-akserne. Når man skal placere et nulpunkt på kanten at et emne eller ned mod bordetm så kan man skubbe et stykke avispapir ind mellem fræser og emne. Når man ikke længere kan rykke det frem og tilbage ja så er du nogle få 1/100 dele fra emnet. Det er også på hovedfanen man loader en g-code fil. Bevægelserne vises i preview vinduet og det er godt til et hurtigt sanity check. Hvis man går ind i CAM fanen har man mulighed for at skrive g- koder direkte. Eks. bruger jeg meget at sende x-y-z til bestemte positioner med g0 og g1 kommandoer. eks. g0 x0 y0 z0 g0 x100 g1 y50 f150
g0 er il-gang. g0 er bearbejdningsmovement. x-y-z komponenterne er i mm i absolutte koordinater i forhold til det programmerede 0-punkt. f??? er skærehastigheden i mm/minut. Man kan også selv skrive g-koderne i en tekstfil og så loade den i MACH3. Det er ind i mellem nemmere hvis man bare skal fræse en simpel profil eks. et spor eller lignende. 3D-cad Der er mange forskellige cad-programmer der var ikke nær så mange da jeg startede. De gratis versioner var ikke anvendelige den gang. Så med et blik på økonomien valgte jeg Alibre CAD. Det var ikke gratis men lå langt fra de professionelle pakker Solid works, Autocad etc. I dag er der en del gratis udgaver som jeg tror er helt fine FreeCAD (link), SketchUp Make (link) og ikke mindst OpenSCAD (link). Den sidste vækker virkelig nørd-genet :-). Man skriver nemlig sin 3d-model som hvis man skriver software Et sprog der nok ikke er helt nemt at lære Nå men jeg holder mig foreløbigt til den jeg har betalt for. Alibre er i mellemtiden blevet købt af Geomagic så de hedder nu Geomagic design (link).
1) 2) 3) 4) 5) 6) 7) 8) Alibre / Geomagic var utroligt nemt at lære Det er baseret på at man vælger en flade (et plan eller en flade på et andet objekt), tegner en 2d-figur (med dimensioner og constraints der binder elementerne sammen) og bruger så den til enten at tilføje eller fjerne materiale fra modellen. Der forskellige smarte måder at tilføje/fjerne materiale på så det er
utroligt fleksibelt trods den nemme betjening. De fleste moderne cad-systemer er parametriske. Det betyder at man kan definere dimensioner (afstande, størelser, vinkler etc) vha. beregninger. Man kan definere variable og basere beregningerne på dem og andre beregninger. Meget fleksibelt og nemt at tilpasse. Hvis én dimension ændres følger de andre automatisk med. Jeg købte en 3Dconnexion SpaceNavigator mus det er en speciel mus til at navigere i 3d. Det er vildt rart og meget intuitivt at kunne zoome ind, ud, panorere, skifte viewpoint etc. Når man tegner flere elementer eller gerne vil sætte egne dele sammen med andre (downloadede) dele så kan man også det i Geomagic i assembly -delen. Du kan se eksempler i artiklen om mekanikken til CNC-fræseren.
CAM Computer Aided Manufacturing er processen der omsætter en CADtegning til noget CNC-maskinen kan forstå som regel Gcode. G-kode er en måde at beskrive maskinens bevægelser. Der er kommandoer til lineære bevægelser (G00 ilgang og G01 lineær bearbejdning) og til cirkulære bevægelse med eller mod uret (G02, G03). Og ca. 98 mere Der er ret mange kommandoer som vist sjældent bruges. Der er faktisk mange maskiner der kun understøtter ganske få G-koder. Det er også årsagen til at der i CAM-programmer altid defineres en POST-processor altså en efterbearbejdnings engine der tilpasser G-koden til den enkelte maskine. En CAM-engines opgave er som sagt at oversætte en CAD-tegning til maskinbevægelser. Der er dog lidt mere i historien. Først og fremmest skal man vælge et koordinat-system at arbejde i. Ofte skal et emne bearbejdes fra flere sider og det opnår man ved at definere flere CAM-jobs med forskellige koordinatsystemer. Desuden skal man kunne definere hvordan råemnet ser ud så programmet kan beregne hvordan bearbejdningen skal foregå. Jeg ved ikke om der findes automatiske systemer men dem jeg har arbejdet med fungerer alle ved at man selv vælger hvilken fræser man vil bruge og derefter hvilken type fræseoperation man vil gennemføre eks. grovbearbejdning (roughing) og sletbearbejdning (finishing). Der er i de fleste programmer et antal forskellige patterns radial bearbejdning, horisontal / parallel, radial / spiral
Der er et hav af CAM-engines. Desværre var der (dengang) ingen af de gratis der reelt virkede Så jeg endte med et produkt der hedder Alibre CAM. Det er integreret i Geomagic Design men er reelt en tilpasset VisualCAM. Det er rigtigt rart at brugerfladen er den man kender men det er vel bare tilvænning
I Alibre CAM kan man få vist en simulering af hvordan jobbet virker i praksis. Og det er vigtigt for det er ofte ret svært at gennemskue hvordan algoritmerne vil opføre sig på det konkrete emne Man skal angive hvilke flader der skal bearbejdes eller hvilke der skal være ydre grænse som algoritmen det kan godt give en del frustrationer Konklusion Maskincontrolleren skal man vælge en der passer til det hardware man har købt eller bygget. Men CAD/CAM er en smagssag. Jeg vil når tiden er til det sætte mig nærmere ind i de gratis alternativer men lige nu er du på egne ben