Begynnerveiledning for OpenSCAD: Programmering av 3D-trykte modeller

3D modelleringsprogramvare kan være vanskelig å bruke hvis du ikke er kunstnerisk. OpenSCAD gir deg mulighet til å designe modeller spesielt for 3D-utskrift, uten å bruke noe annet enn kode.

3D modelleringsprogramvare kan være vanskelig å bruke hvis du ikke er kunstnerisk.  OpenSCAD gir deg mulighet til å designe modeller spesielt for 3D-utskrift, uten å bruke noe annet enn kode.
Annonse

Har du alltid ønsket å designe dine egne 3D-modeller? Hva med 3D-utskrift en del du har designet? Det finnes mange 3D modelleringsprogrammer rundt, men det kan være vanskelig å bruke hvis du ikke er kunstnerisk (som meg). OpenSCAD gir deg mulighet til å designe modeller spesielt for 3D-utskrift, uten å bruke noe annet enn kode . Ikke bekymre deg hvis du ikke vet hvordan du skal kode heller, i dag skal jeg veilede deg gjennom det grunnleggende.

Hva er OpenSCAD?

OpenSCAD er en gratis Solid Computer Aided Design- modell. Den er tilgjengelig for Windows, Mac og Linux. Det som gjør det annerledes enn mange andre programmer, er at du designer deler ved hjelp av kode i stedet for en mus. Dette gjør det veldig enkelt å lage matematiske beregninger, lagre dimensjoner i variabler, endre størrelse på deler og mer.

Det er noen faktorer du trenger å redegjøre for når 3D-utskriftsmodeller, men mange av disse gjelder for 3D-utskrift-CAD-modeller generelt, ikke bare OpenSCAD-design. Hvis du vil vite mer om 3D-utskrift, må du sjekke vår Ultimate Beginner's guide. Ultimate Beginner's Guide til 3D Printing Ultimate Beginner's Guide til 3D Printing 3D-utskrift skulle være den nye "Industrial Revolution". Det har ikke tatt over verden ennå, men jeg er her for å snakke deg gjennom alt du trenger å vite for å komme i gang. Les mer . Hvis du leter etter en mer interaktiv modell, les ut veiledning for å lage objekter i Sketchup Design og bygg 3D virtuelle bygninger og objekter Med Google SketchUp Design og bygge 3D virtuelle bygninger og objekter med Google SketchUp Google SketchUp er ryggradsmodellprogrammet for Google BuildingMaker, som tillater grafiske designere å sende inn byggedesign til Google for å bli lagt til den offisielle Google Earth-bilder. Les mer .

Komme i gang

Først, gå videre til nedlastingssiden og finn en versjon av OpenSCAD som passer for operativsystemet. Jeg bruker Mac OS, men disse OpenSCAD-prinsippene gjelder for alle systemer.

Når installert, gå videre og åpne den. Du vil bli presentert med denne oppstartsmenyen:

OpenSCAD Startmeny

Dette viser deg filene du åpnet sist, og gir deg muligheten til å laste inn noen få eksempler. Ta gjerne en titt på noen av eksemplene, men jeg fant disse gjort ting mer forvirrende når de først begynte. For denne opplæringen, opprett en ny fil ved å klikke på den nye knappen.

Når du er åpen, vil du bli presentert med dette blanke utsnittet:

OpenSCAD Interface

Dette er delt inn i tre hovedområder. Til venstre er din redaktør og meny. Dette er hvor du vil skrive din kode.Denne vil ikke ha noen kode inn enda, siden du lager en ny fil. Øverst er det noen menyknapper for å utføre grunnleggende oppgaver, for eksempel last, lagre, angre osv.

OpenSCAD Editor

Nederst til høyre er konsollen . Dette vil vise deg noen feil i å bygge modellen.

OpenSCAD Console

Den siste delen er hovedgrensesnittet øverst til høyre. Her kan du samhandle med modellen din, men du vil ikke kunne redigere den her (du vil skrive kode for å gjøre dette).

OpenSCAD Interface

Det er flere knapper på bunnen av dette hovedgrensesnittet. Disse lar deg i hovedsak se utformingen din på forskjellige måter.

Gå videre og lagre en ny fil ved å trykke på lagre-knappen i redigeringsmenyen eller ved å gå til Arkiv > Lagre .

Det grunnleggende

Slik fungerer OpenSCAD mesteparten av tiden, gjennom tillegg og subtraksjon av enkle former. Du kan bygge svært komplekse modeller på denne måten, så la oss hoppe rett inn i.

Her er den første formen, en enkel boks:

OpenSCAD Simple Box

Og her er koden for å produsere det:

cube(); // create a cube 

For å få koden din til å utføre og bygge modellen, må du forhåndsvise den. OpenSCAD vil gjøre dette som standard hver gang du lagrer, eller du kan trykke F5 for å tvinge en oppdatering. Forsøk å flytte rundt i 3D-rom ved å holde nede venstre eller høyre museknapp.

Nå produserer dette en fin kube, men det er ikke veldig nyttig uten noen dimensjoner. OpenSCAD virker ikke i et bestemt målesystem, men i stedet er enheter i forhold til hverandre. Du kan opprette en boks 20 x 10, og det er opp til et hvilket som helst annet program (for eksempel 3D-utklippssnitteren) for å tolke disse, være det metriske eller keiserlige. Det gir faktisk stor fleksibilitet.

La oss legge til noen dimensjoner i kuben din. Du overfører dette i parametere til kubemetoden :

 cube(size = [10, 20, 30]); // rectangle 

Verdiene 10, 20 og 30 representerer kubens størrelse i X-, Y- og Z- aksen. Legg merke til hvordan dette har produsert et mye større rektangel:

OpenSCAD-rektangel

Som standard trekker OpenSCAD komponenter fra nederst til venstre. Du kan justere dette ved å sette senterparameteren til ekte . Her er koden for å gjøre det til rektangelet:

 cube(size = [10, 20, 30], center = true); // rectangle centered 

Og her ser det ut som:

OpenSCAD Rectangle Centered

Senteringsobjekter fungerer bra for enkle former, men det gjør ting komplisert for ikke-symmetriske gjenstander. Du må bestemme hvilken metode som passer best for deg.

Flytter seg til en mer komplisert form, her er en sylinder :

OpenSCAD Cylinder

Her er koden for å lage den:

 cylinder(d = 10, h = 10, center = true); // cylinder 

I motsetning til kuber blir sylindere automatisk trukket i midten av X- og Y-aksen. D- parameteren står for diameter (du kan passere i radius i stedet hvis du foretrekker). H- parameteren er høyden. Noe er galt her skjønt. Denne sylinderen ser ganske "blokkert" ut. Du må øke antall ansikter trukket på omkretsen. Dette er enkelt å gjøre - legg til følgende parameter i sylinderkoden.

 $fn = 100 

Så blir sylinderdefinisjonen:

 cylinder(d = 10, h = 10, center = true, $fn = 100); 

Her ser det ut som:
OpenSCAD High Resolution Cylinder

Dette øker antall ansikter som trengs for å lage sirkler - 100 er et godt utgangspunkt. Husk at dette vil øke ytelsen ganger, spesielt på komplekse modeller, så det er vanligvis best å forlate dette til du er ferdig med å designe.

Det er enkelt å bruke transformasjoner på former. Du må ringe spesielle metoder før du lager dine figurer. Slik roterer du sylinderen ved hjelp av rotasjonsmetoden :

 rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder 

Verdiene som sendes til a- parameteren representerer rotasjonsvinkelen for X-, Y- og Z-aksen. Her er resultatet:

OpenSCAD Rotation

En annen veldig nyttig funksjon er å oversette . Dette lar deg flytte objekter rundt i 3D-plass. Igjen må du passere mengden bevegelse for hver akse. Her er resultatet:

OpenSCAD Translate

Her er koden:

 translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder 

Forstå oversettelsesmetoden er en av de viktigste tingene du kan gjøre. Det kreves for å designe mest komplekse design.

Endelig er en annen nyttig form en sfære :

OpenSCAD Sphere

Her er koden:

 sphere(d = 100); 

På samme måte som sylinderen, kan du glatte ut dette ved hjelp av $ fn- koden ovenfor.

Avansert koding

Nå som du vet det grunnleggende, la oss se på noen mer avanserte ferdigheter. Når du designer en del, hjelper det å tenke på hvordan det kan bestå av mindre former og objekter. Du trenger ikke å gjøre dette, og du kan "gjøre ting opp" når du går, men det hjelper til å ha en grov plan - selv om det bare er i hodet ditt.

La oss lage en avansert form: en terning med en uthulet sfære interiør. Lag en kube og en sfære med senter satt til ekte. Trekk fra hverandre ved hjelp av differansemetoden :

 difference() { // subtraction cube(size = [50, 50, 50], center = true); // outer cube sphere(d = 65, center = true); // inner sphere } 

Her er resultatet:

OpenSCAD Advanced Cube

Eksperimenter med diameteren ( d- parameteren) av sfæren og se hva som skjer.

I OpenSCAD er det vanligvis mange måter å utføre den samme oppgaven. Hvis du vil ha et spor i en terning, kan du trekke en annen kube fra den, eller legge til to flere over den. Det er vanligvis ikke noe som gjør ting, men avhengig av kompleksiteten til delen, kan det være lettere å gjøre visse manipulasjoner først.

Slik lager du en kanal i en terning. I stedet for å bruke en annen terning, vil en sylinder skape en avrundet kanal. Legg merke til hvordan differansemetoden er brukt igjen, og hvordan oversette og rotere metoder brukes til å manipulere figurene. Bruke rotasjonsmetoden gjør ofte transformasjoner vanskelig, så spill rundt med parametrene til du oppnår ønsket resultat. Her er koden:

 difference() { // subtraction cube(size = [50, 150, 50]); // outer cube translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel } 

Her ser det ut som:

OpenSCAD Channel Cube

Du lurer kanskje på hva alle de grønne greiene er. Dette er her fordi 3D-modellen bare er en forhåndsvisning akkurat nå. For å fikse dette, trykk F6 for å fullføre modellen. Dette kan ta litt tid, avhengig av kompleksiteten. Forhåndsvisning ( F5 ) er vanligvis god nok mens du arbeider. Her ser du hva den endelige gjengivelsen ser ut (med $ fn satt til 100):

OpenSCAD High Resolution Channel Cube

Her er et annet avansert eksempel. Si at du ville ha en montering med en bolt. Å lage et hull er enkelt nok ved å bruke sylinder, men hva om du vil at bolthodet flush montert for nedsenket bolter? Du kan bare lage en stor sylinder for bolthodet å sitte i, men det ville ikke se veldig fint ut. Løsningen er en avfasning, som du kan lage med sylindermetoden . Trikset her er å spesifisere to diametre - d1 og d2 . Lag disse forskjellige størrelsene, og OpenSCAD vil gjøre resten.

Som jeg er britisk, bruker jeg metriske dimensjoner her, for en M5 forsenket bolt. Du kan enkelt justere dette for å passe til hvilke fester du vil bruke. Her er koden:

 $fn = 100; // bolt settings m5_clearance_diameter = 5.5; m5_head_clearance_diameter = 11; m5_head_depth = 5; difference() { // subtract cube(20, 20, 20); bolt_hole(10, 10, 20); bolt_bevel(10, 10, 15); } module bolt_hole(x, y, height) { /* M5 hole at 90 deg. */ translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height); } module bolt_bevel(x, y, z) { // M5 bevel translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth); } 

Legg merke til hvordan boltens dimensjoner lagres i variabler? Dette gjør koding og vedlikehold mye enklere. En metode du kanskje ikke har kommet over er modulen . Dette lar deg definere en blokk med kode som skal utføres når du vil. I virkeligheten er dette en funksjon . Du bør bruke moduler og variabler for enhver kompleks form, da de gjør ting enklere å lese, og raskere for å gjøre endringer. Her ser det ut som om det ser ut som:

OpenSCAD Chamfer

La oss se på et siste eksempel. Si at du ønsket å produsere en serie hull rundt en sirkel. Du kan manuelt måle, oversette og rotere alle disse, men selv med moduler ville dette være kjedelig. Her er sluttresultatet, 10 sylindere fordelt selv rundt en sirkel:

OpenSCAD Circle Distribution

Her er koden:

 $fn = 100; number_of_holes = 10; for(i = [1 : 360 / number_of_holes : 360]) { // number_of_holes defines number of times this code runs make_cylinder(i); } module make_cylinder(i) { // make cylinder and even distribute rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2); } 

Denne koden er enklere enn du forventer. A for loop brukes til å ringe make_cylinder modulen ti ganger. Da det er 360 grader i en sirkel, og 360/10 = 36, må hver sylinder roteres i trinn på 36 grader. Hver iterasjon av denne sløyfen vil øke i- variabelen med 36. Denne sløyfen kaller make-cylinder modulen, som bare trekker en sylinder og posisjonerer den i henhold til grader som overføres til den ved sløyfen. Du kan tegne mer eller mindre sylindere ved å endre variabelen number_of_holes - selv om du kanskje vil justere avstanden hvis du gjør det. Her er hva 100 sylindere ser ut, de overlapper litt:

OpenSCAD 100 sirkeldistribusjon

eksportere

Nå som du vet hvordan du skal kode i OpenScad, er det et siste skritt som kreves før du kan skrive ut modellene dine i 3D. Du må eksportere designet fra OpenSCAD til standard STL- format som brukes av de fleste 3D-skrivere. Heldigvis er det en eksport til STL-knappen: Redigeringsmeny > Høyre Høyre :

OpenSCAD Export STL

Det er det for i dag. Du bør nå ha en utmerket kunnskap om OpenSCAD - alle komplekse ting bygger på disse grunnene, og mange komplekse former er virkelig mange enkle former kombinert.

For en utfordring, hvorfor ikke se på noen av våre 3D-utskriftsprosjekter, og prøv å gjenskape delene i OpenSCAD:

  • 3D Printables for Tabletop Fantasy RPGs De beste 3D Printables for Tabletop Fantasy RPGs De beste 3D Printables for Tabletop Fantasy RPGs Hvis du foretrekker en fordybende opplevelse for rollespill, er det en ny måte å gjøre det på: bruk 3D-utskrift for å lage fysiske terrengstykker og miniatyrer. Les mer
  • Egendefinerte snarveisknapper Lag din egen egendefinerte snarveisknapp med en Arduino Lag din egen egendefinerte snarveisknapp med en Arduino Den ydmyke Arduino kan gjøre mange ting, men visste du at det kan etterligne et USB-tastatur? Du kan kombinere lange tastatursnarveier i en enkelt tilpasset snarvei, med denne enkle kretsen. Les mer
  • Elektronisk D20 Rull i stil med denne DIY Electronic D20 Die Roll i stil med denne DIY Electronic D20 Die Vil du ha noe unikt på ditt neste spillmøte? Sjekk ut denne DIY elektronisk D20, med tilpasset grafikk for kritiske treff og savner. Les mer
  • Spill du kan 3D-utskrift 6 Kule spill Du kan 3D-utskrift hjemme 6 Kule spill Du kan 3D-utskrift hjemme Alle vet om 3D-skrivere, men det du kanskje ikke vet er hvor morsomt 3D-utskrift er, og hvor mye moro det kan skape for hele familien din. Vi snakker 3D-trykte bordspill. Les mer

Lærte du noen nye triks i dag? Hva er din favoritt OpenSCAD-funksjon? Vil du bytte fra et annet CAD-verktøy snart? Gi oss beskjed i kommentarene nedenfor!

In this article