Lav fantastisk 3D geometri ved at programmere CNC-kode: 8 trin (med billeder)

Lav fantastisk 3D geometri ved at programmere CNC-kode: 8 trin (med billeder)

Indholdsfortegnelse:

Anonim

CNC-bearbejdning gør det nemt at skære figurer meget præcist og konsekvent. Men ofte forbliver det begrænset til at skære 2D-former af åbenbare grunde. Mens jeg lærte at bruge CNC selv for et stykke tid siden, gravede jeg dybere til at skabe inspirerende 3D geometri ved hjælp af programmering. Dette gav mig viden om at kunne skabe hurtigere og mere effektive brugerdefinerede værktøjsstier, der ville have været sværere eller umuligt at installere med standard CAM-software.

I denne instruktion vil jeg guide dig gennem processen med at skabe avanceret matematisk geometri ved hjælp af programmering i kombination med cnc-bearbejdning. Den viden, du får af det, vil gøre dig i stand til at oprette mere sofistikerede og mere effektive værktøjsbaner og forhindre at blive begrænset af grænserne for din CAM-software.

Noget af kendskabet til denne instruks er baseret på Jens Dyviks forskning. Mange eksempler, der vil blive givet, blev lavet ved hjælp af Colinbus hos Fablab Genk, men nogle blev også lavet på en Shopbot. De maskiner, jeg har brugt, blev oprettet i metriske systemet, så lad dig ikke forveksle med tallene, hvis du normalt arbejder i kejserlige enheder.

Hvis der er noget, der ikke er klart eller forkert, så lad mig det vide, så jeg kan redigere den instruerbare.

forsyninger:

Trin 1: Få kendskab til CNC

Hvis du aldrig har brugt en CNC før, kan nogle af de udtryk, der bruges i denne instrueret, lyde underligt. Derfor anbefaler jeg at blive fortrolig med en cnc, før du forsøger lignende ting som i denne instruerbare. Brug CAM-softwaren, der følger med den maskine, du har adgang til, da det giver en ide om arbejdsprocessen for at starte et fræsningsjob.

CAM-software er desværre ikke en plug and play-ting. Du skal vide om feedrates, rpm, fræsebit og så videre. Og selvom softwaren gør det nemt at oprette værktøjsvinklerne, skal du stadig arbejde inden for mulighederne for, hvad programmet er i stand til. Når vi har fuld kontrol over, hvad maskinen vil gøre, som vi vil lære i et senere trin, giver vi os mulighed for at ændre alle dele af værktøjsvejskonfigurationen, hvilket ikke altid er muligt i CAM-software.

Trin 2: Hvad er G-kode

G-kode er det sprog, der gør din computer i stand til at kommunikere med CNC-maskinen. Inde i din CAM-software konverterer du dine CAD-filer (3D eller 2D) med postprocessoren til en fil, som din maskine vil forstå. Dette er en kode fremstillet eller brugt af maskinproducenten til deres maskiner. Det er et sæt kommandoer, der fortæller maskinen, hvor de skal hen og hvad de skal gøre og på en forenklet måde siger det noget som dette:

- Sæt spindelhastigheden til 18000 rotationer pr. Minut

- Indstil bevægelseshastighed til 35 mm pr. Sekund

- Flyt for at koordinere x100, y100 over materialet

- Flyt 25 mm i z-retning ned og ryg op

- Sluk spindlen

- Gå til oprindelse / 0-punkt på maskinen

Forskellene mellem disse g-koder er for eksempel hvordan de definerer kommandoen til at flytte, eller i hvilke enheder de arbejder, eller hvis negative tal i z-retningen er over eller under 0-punktet osv. I det næste trin vi Jeg vil se på dissekere denne kode for at kunne skrive din egen kode til den maskine, du bruger.

Trin 3: Forstå koden fra maskinen, som du har adgang til

For at forstå, hvilke dele af koden der gør, kan du oprette en simpel eksempelfil ved hjælp af din cam-software. Postprocessoren konverterer oplysningerne til den rigtige kode til maskinen. Vi kan så analysere denne fil og omvendt konstruere, hvordan det virker. Du kan bare åbne den i notesblok og læse linjerne med kode. Hvis du kigger på eksemplet på shopbot-koden, vil du se, at meget af koden er bare koordinater, som fortæller maskinen, hvor du skal flytte spindlen til.

Og så afhængigt af hvilken maskine du bruger, kan resten af ​​koden være ret lige fremad (f.eks. I eksemplet på shopbot-koden M3 betyder at Move til en specifik koordinering i 3 dimensioner). Nogle gange kan du også finde information online for en klar forklaring. Nogle producenter kan give detaljerne selv, som f.eks. Shopbot:

http: //www.opensbp.com/files/QuickReference_bothpa …

Vi skal vide, hvad disse forskellige kommandoer gør som i et senere trin, vil vi oprette denne slags kode selv ved hjælp af programmering.

Trin 4: Programmering - Sprøjtestop

Så nu har vi en bedre ide om, hvordan koden til maskinen fungerer, vi kan bruge disse oplysninger til at oprette vores egen postprocessor. Jeg har brugt Rhino med sin alsidige plugin Grasshopper til dette. Rhino er en CAD-software, der kombinerer et 2D tegning og 3D modelleringsmiljø i en. Grasshopper er et plugin til at lave knudebaseret programmering inde i Rhino, og det udvider i vid udstrækning dets evner. Jeg tror, ​​at der er andre programmeringssprog eller software, der muligvis kan gøre lignende ting, men jeg finder denne kombination af programmering og et 3D-miljø det nemmeste at gøre denne slags ting, fordi du får en visuel repræsentation af hvad der sker i din kode.

Hvad vi vil gøre i denne instruksible, giver os mulighed for at tegne linjer i 3D og lave en værktøjspath-fil, der fortæller maskinen at følge disse linjer. I det foregående trin så vi, at værktøjsstien består af koordinater. Hvilket betyder, at vi skal konvertere vores linjer til point, uddrage koordinaterne fra disse punkter og dreje det til det rigtige format. Vi skal også huske på, at mellem linjerne vil vi flytte over materialet, fordi vi ikke ønsker at skære i materialet, når det går fra en linje til en anden. Så det betyder, at vi skal kopiere det første og sidste punkt fra hver linje og indsætte en z-højde over vores materiale.

Eller hvis jeg ville forenkle processen ville det blive sådan:

- Input linjer

- Valgfrit: Sorter linjer for at sikre, at linjerne er formalet i den rigtige rækkefølge, hvis det er nødvendigt. (kan også bruges til at fremskynde ting meget)

- Konverter linjer til en liste over punkter

- Kopier første punkt og sidste punkt fra en kurve, ekstrakoordinater, erstat z-koordinaten med en der er over materialet, lav nyt punkt fra disse koordinater og indsæt det punkt på listen på det rigtige sted (før startpunktet og bag den sidste punkt af hver linje inde i materialet).

- Uddrag koordinater fra hvert punkt

- Konverter disse koordinater til den rigtige syntaks (den g-kode, der fungerer specifikt på din maskine)

- Kombiner dette med start- og slutkode på filen

- Skift til gcode fil.

Trin 5: Generer værktøjsveje og test

Jeg lavede en grundlæggende græshopper definition, som jeg tilføjede som et eksempel. Det gør de trin jeg beskrev i det foregående trin og konverterer 3D linjer til shopbot eller colinbus kode. Jeg synes, det kan være ret nyttigt at bedre forstå, hvordan det er gjort.

Gemmer kodefilen fra den græshopperfil, du gør ved at højreklikke på det gule panel med koden (til højre i filen) og vælge en strømdestination, hvilket betyder, hvor du vil gemme filen. Når du navngiver filen, skal du sørge for at vælge den udvidelse, som din kode bruger. For Shopbot er det.sbp, for colinbus er det.c3d osv.. Du kan finde ud af, hvad dette er ved at se på værktøjspath-filen, der eksporteres fra cam-softwaren, som vi har set i trin 3.

Før du forsøger at lave din selvskrevne kode for første gang, skal du sørge for at læse koden og se, om alt ser ud som det skal. Kør derefter filen i luften og se, hvad maskinen gør. Hvis alt ser ud som det skal, skal du køre filen ind i materialet og føle tilfredsheden med at fræse din selvprogrammerede kode.

Herfra kan udforskningen i Grasshopper starte. Mulighederne for at kombinere Grasshopper med CNC-bearbejdning er uendelige. I de næste trin beskriver jeg, hvordan jeg lavede nogle eksempler ved hjælp af disse værktøjer.

Trin 6: Eksempel 1: Konverter billede til 3D-fræsning ved hjælp af en V-bit

Inde i græshoppe er der et billede sampler, som kan læse den sorte og hvide værdi af et billede og kortlægge det til et tal mellem 0 og 1. Med 0 er sort og 1 er hvid. Så hvad vi kan gøre er at remap den værdi til et andet domæne, der vil styre, hvor dybt vores v-bit går. På den måde kan vi skabe en anden linjetykkelse inde i materialet, som om vi skubber hårdere og blødere med en blyant på et papir.

Da billedprøveren har brug for punkter som input, kan vi hurtigt flytte dem til den z-dybde, vi ønsker. Hvis vi så sorterer vores point i grupper, kan vi ikke oprette 3D-polyliner fra disse punkter og bruge en postprocessor som i et af de foregående trin for at gøre dette til gcode. Når du maler det, anbefales det at male den øverste overflade for at få en god farvekontrast.

Jeg tilføjede den oprindelige fil, jeg brugte, for at kunne lære af det. Vær opmærksom på, at postprocessoren, der bruges i denne eksempelfil, er til en Colinbus og ikke en Shopbot.

Du kan også konvertere postprocessoren til at tage point som input og bare bore hver gang til en anden dybde med v-bit. På den måde kan du oprette halvtonebilleder på CNC som jeg gjorde første gang, jeg prøvede min egen kode (se tidligere trinbilleder).

Trin 7: Eksempel 2: Kurvede linjer

Dette eksempel er delvis manuel tegning og delvist græshoppe. Så hvad jeg gjorde var at skabe 4 linjer, hvoraf de øverste og nederste er grundlæggende bue fra en cirkel, og de to linjer i midten er tilfældige krøllede bølger, jeg tegnede. Jeg brugte derefter græshoppe til at skabe overgangslinjer mellem dem; såkaldte "Tween-kurver". Jeg ønskede at skabe en linieoverflade, hvor disse tweenkurver er toppen af ​​overfladen. Så hvad jeg så gjorde var at lave linjer imellem de overgangskurver, som v-bit vil følge.

Nu slutter vi med kurverne i 2D, men vi ønsker at lave dem 3D, så kanterne slutter på samme niveau. Så hvad jeg gjorde var at dividere v-bit kurverne op i point og for hvert punkt beregner jeg afstanden til den nærmeste kurve. Da jeg bruger en 90 graders bit, ved jeg, at afstanden til den nærmeste overgangskurve også er vores v-bitdybde (se v-bit billede). Hvis du ikke forstår hvorfor du kan søge på trigonometri. Så vi flytter divisionspunkterne i z-retningen nedad ved hjælp af afstanden til den nærmeste kurve, vi får en 3D-kurve, som vi kan bruge med postprocessoren igen.

Jeg sorterede også kurverne og vendte om hver anden kurve. Dette forøger fræsningstiden, da det sikrer, at maskinen ikke bevæger sig til den anden side over materialet med hver kurve.

Jeg tilføjede næsehorns- og græshopperfilen, så du kan dissekere, hvordan den er lavet. Det er en gammel definition, så jeg er temmelig sikker på, at der er ting, der kan gøres hurtigere eller på en anden måde.

Trin 8: Eksempel 3: Sinus Bowl

Denne, jeg lavede, mens jeg lavede nogle øvelser om at lære Python inde i Grasshopper. Der er en del trin involveret inden den endelige fræsning, og jeg er sikker på, at der er hurtigere måder at gøre dette, så hvordan jeg gjorde på det tidspunkt, men her går det.

Inde i python-komponenten oprettede jeg koden for at generere point for at skabe en 100x100 mm firkantet sinusbølgeoverflade. (Jeg tror, ​​jeg har lært dette fra nogle øvelser, men kan ikke huske hvorfra. Hvis nogen ved, så fortæl mig så jeg kan tilføje det)

For at skabe en jævn overgang, der går fra en flad overflade til denne sindbølgeflade, genindlæser jeg tallene ved hjælp af en grafmapper. Disse vil generere den skala faktor vi vil bruge. Det er ikke den reneste måde at generere denne overflade på, men det virker til denne applikation. Så jeg skaler hvert punkt i z-retningen fra det højeste punkt på vores sindoverflade, og de stykker, der bliver flade, skaleres med en værdi på 0,001, der skaber en flad udseende (selvom den ikke er helt flad).

Jeg beregnede derefter afstanden mellem midtpunktet af pladsen og hvert af punkterne fra den syndeflade, vi skabte. Jeg sorterer listen over point efter den pågældende afstand og flytter et valgfrit nummer på listen over skalerede punkter ned for at oprette kuppelformen. (Fordi vi har beregnet afstanden fra centrum skaber den denne cirkulære form).

Jeg bestiller disse punkter i lister over punkter til polyliner. Jeg skabte disse polyliner tilføje forskellige højder, så jeg kunne gøre en roughing i trin. Så jeg brugte dem med postprocessoren, som vi tidligere har brugt til at gøre roughingen på eg. Men til færdigbanen ønskede jeg at bruge en spiral værktøjsbane og skulle gøre en løsning for at opnå det:

Så fra de endelige polyliner skaber jeg en 3D overflade. Så bage jeg 3D-overfladen ind i Rhino og trak en 2d spiral over overfladen. Jeg gjorde derefter en forskydning (med kuglens næse bit) på overfladen og projicerede spiralen på den overflade for at matche kanten af ​​ballnose med overfladen, som jeg faktisk vil skabe. Så når jeg indstiller z-højden på maskinen, bevæger jeg nulpunktet ned med en afstand, der svarer til bitens radius. Så 0-punktet i z-retningen er nu i midten af ​​bittet. Jeg bruger derefter postprocessoren på den projicerede spiralkurve, og det er det!

Nu er det meget svært at følge med ved at læse min tekst, så jeg foreslår at kigge på mine filer for at få en bedre forståelse. Du skal bruge python-komponenten, som du kan finde på food4rhino-webstedet: Her

Og så er det op til dig! Jeg håber du har lært noget fra dette instruerbare og hvis du bruger det til at gøre noget, jeg vil elske at se resultaterne!

Runner Up i

CNC Contest 2016