1

Hjemmebygget CNC-fræser – del 3 (software)

Der er behov for tre stykker software for at komme fra ide til fræst emne…

  1. Machine controller – det software der styrer stepmotorerne og sikrer at fræsebord og spindel bevæger sig derhen hvor det skal…
  2. 3D-CAD – computer aided design – kort fortalt et 3d tegneprogram
  3. 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

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 hobby-systemer…

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 Port 1 pin 2 Active high
Y step Port 1 pin 3 Active high
Z step Port 1 pin 4 Active high
X direction Port 1 pin 6 Active low
Y direction Port 1 pin 7 Active high
Z direction Port 1 pin 8 Active high
X ++/–/home Port 1 pin 11 Active high
Y ++/–/home Port 1 pin 12 Active high
Z ++/–/home Port 1 pin 13 Active high
E-stop Port 1 pin 10 Active low
Spindle / output 1 Port 1 pin 16 Active high

Motor profile

motor-pinsNå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

motor-speedFor 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…

4Det 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 (muligvis udgået – linket duer ikke mere) – 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)cad2 2)cad1 3)cad8

4)cad3 5)cad4 6)cad5

7)cad6 8)cad7

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.

ComputerSalg.dk 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.

Capture

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 CAD-tegning til noget CNC-maskinen kan forstå – som regel “G-code”. 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…

Capture

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…

Capture

CaptureI 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 🙂