Begyndervejledning til OpenSCAD-programmering af 3D-trykte modeller

  • Gabriel Brooks
  • 0
  • 3974
  • 1133
Reklame

Har du altid ønsket at designe dine egne 3D-modeller? Hvad med 3D-udskrivning af en del, du har designet? Der er mange 3D-modelleringsprogrammer omkring, men disse kan være vanskelige at bruge, hvis du ikke er kunstnerisk (som mig). OpenSCAD giver dig en måde at designe modeller specifikt til 3D-udskrivning ved kun at bruge kode. Bare rolig, hvis du ikke ved hvordan du koder enten, i dag vil jeg guide dig gennem det grundlæggende.

Hvad er OpenSCAD?

OpenSCAD er en gratis Solid computerstøttet design modeller. Det er tilgængeligt for Windows, Mac og Linux. Hvad der gør det anderledes end mange andre programmer er, at du designer dele ved hjælp af kode i stedet for en mus. Dette gør det meget nemt at foretage matematiske beregninger, gemme dimensioner i variabler, ændre størrelse på dele og mere.

Der er nogle faktorer, du skal tage højde for, når 3D-udskrivningsmodeller er, men mange af disse gælder 3D-udskrivning CAD-modeller generelt, ikke kun OpenSCAD-design. Hvis du vil vide mere om 3D-udskrivning, skal vi tjekke vores Ultimate Beginner-guide Ultimate Beginner's Guide til 3D-udskrivning Ultimate Beginner's Guide til 3D-udskrivning 3D-udskrivning skulle formodes at være den nye "Industrial Revolution." Det har ikke overtaget verden endnu, men jeg er her for at tale dig gennem alt hvad du har brug for at vide for at komme i gang. . Hvis du leder efter en mere interaktiv model, kan du læse vejledningen til at oprette objekter i Sketchup Design & Build Virtual Virtual Buildings & Objects With Google SketchUp Design & Build 3D Virtual Buildings & Objects With Google SketchUp Google SketchUp er rygradsmodelleringsprogrammet til Google BuildingMaker, der giver grafiske designere mulighed for at indsende bygningskonstruktioner til Google for at blive føjet til det officielle Google Earth-billede. .

Kom i gang

Gå først videre til downloadsiden og find en version af OpenSCAD, der passer til dit operativsystem. Jeg bruger Mac OS, men disse OpenSCAD-principper gælder for alle systemer.

Når det er installeret, skal du gå foran og åbne det. Du får vist denne startmenu:

Dette viser dig de filer, du åbnede sidst, og giver dig mulighed for at indlæse et par eksempler. Du er velkommen til at kigge rundt på nogle af eksemplerne, men jeg fandt, at disse gjorde tingene mere forvirrende, når jeg først startede. Til denne tutorial oprettes en ny fil ved at klikke på ny knap.

Når den er åben, vil du blive præsenteret for denne blotte interface:

Dette er opdelt i tre hovedområder. Til venstre er din redaktør og menu. Det er her du skriver din kode. Dette vil ikke have nogen kode endnu, da du opretter en ny fil. Øverst er der nogle menuknapper til at udføre grundlæggende opgaver, såsom indlæsning, gem, fortryd og så videre.

Nederst til højre er konsol. Dette viser dig eventuelle fejl i opbygningen af ​​modellen.

Det sidste afsnit er hovedgrænseflade øverst til højre. Her kan du interagere med din model, men du kan ikke redigere den her (du skriver kode for at gøre dette).

Der er flere knapper i bunden af ​​denne hovedgrænseflade. Disse giver dig primært mulighed for at se dit design på forskellige måder.

Gå videre og gem en ny fil ved at trykke på Gem knap i redigeringsmenu eller ved at gå til Fil > Gemme.

Det grundlæggende

Måden OpenSCAD fungerer størstedelen af ​​tiden er ved tilføjelse og subtraktion af enkle figurer. Du kan opbygge meget komplekse modeller på denne måde, så lad os hoppe lige ind.

Her er den første form, en simpel boks:

Og her er koden for at fremstille det:

cube (); // oprette en terning

For at få din kode til at udføre og opbygge modellen skal du forhåndsvise den. OpenSCAD vil gøre dette som standard, hver gang du gemmer, eller du kan trykke på F5 at tvinge en forfriskning. Eksperimenter med at bevæge dig rundt i 3D-rum ved at holde venstre eller højre museknapper nede.

Nu producerer dette en dejlig terning, men det er ikke meget nyttigt uden nogen dimensioner. OpenSCAD fungerer ikke i noget bestemt målesystem, i stedet er enhederne alle i forhold til hinanden. Du kan oprette en boks 20 x 10, og det er op til ethvert andet program (såsom din 3D-udskrivningssnitter) at fortolke disse, det være sig denne metriske eller kejserlige. Det giver faktisk stor fleksibilitet.

Lad os tilføje nogle dimensioner til din terning. Dette gøres ved at overføre parametre til terning metode:

terning (størrelse = [10, 20, 30]); // rektangel

Værdierne 10, 20, og 30 repræsenterer størrelsen på terningen i x, Y, og Z akse. Bemærk, hvordan dette har produceret et meget større rektangel:

Som standard trækker OpenSCAD komponenter fra nederst til venstre. Du kan justere dette ved at indstille centrum parameter til rigtigt. Her er koden for at gøre det til rektanglet:

terning (størrelse = [10, 20, 30], center = sand); // rektangel centreret

Og her ser det ud:

Centrering af objekter fungerer godt til enkle former, men det gør tingene komplicerede for ikke symmetriske objekter. Du bliver nødt til at beslutte, hvilken metode der fungerer bedst for dig.

At gå videre til en mere kompleks form, her er en cylinder:

Her er koden for at oprette den:

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

I modsætning til terninger, cylindre trækkes automatisk i midten af ​​X- og Y-aksen. Det d parameter står for diameter (du kan i stedet gå i radius, hvis du foretrækker det). Det h parameter er højden. Der er dog noget galt her. Denne cylinder ser godt ud “klodser”. Du skal øge antallet af ansigter, der tegnes på omkredsen. Dette er let at gøre - tilføj følgende parameter til din cylinderkode.

$ fn = 100

Så cylinderdefinitionen bliver:

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

Sådan ser det ud:

Dette øger antallet af ansigter, der er nødvendige for at lave cirkler - 100 er et godt udgangspunkt. Husk, at dette vil øge gengivelsestiderne meget, især på komplekse modeller, så det er normalt bedst at lade dette være ude, indtil du er færdig med at designe.

Det er let at anvende transformationer på former. Du skal kalde specielle metoder, før du opretter dine figurer. Sådan roteres cylinderen ved hjælp af rotere metode:

roter (a = [0, 90, 0]) cylinder (d = 10, h = 10, center = sand); // roteret cylinder

Værdierne overført til -en parameter repræsenterer rotationsvinklen på X-, Y- og Z-aksen. Her er resultatet:

En anden meget nyttig funktion er Oversætte. Dette giver dig mulighed for at flytte objekter rundt i 3D-rum. Endnu en gang skal du indtaste bevægelsesmængden for hver akse. Her er resultatet:

Her er koden:

oversæt (v = [0, 25, 0]) cylinder (d = 10, h = 10, center = sand); // oversat cylinder

Forståelse af Oversætte metoden er en af ​​de vigtigste ting, du kan gøre. Det kræves til design af mest komplekse design.

Endelig er en anden nyttig form a sfære:

Her er koden:

kugle (d = 100);

Ligesom cylinderen kan du glatte dette ud ved hjælp af $ fn kode ovenfor.

Avanceret kodning

Nu hvor du kender det grundlæggende, lad os se på nogle mere avancerede færdigheder. Når du designer en del, hjælper det med at overveje, hvordan det kan bestå af mindre former og genstande. Du behøver ikke at gøre dette, og det kan du også “gøre tingene op” mens du går, men det hjælper med at have en grov plan - selvom det kun er i dit hoved.

Lad os skabe en avanceret form: en terning med et udhulet kugleinteriør. Lave en terning og a sfære med centrum indstillet til sandt. Træk det ene fra det andet ved hjælp af forskel metode:

forskel () // subtraktionskub (størrelse = [50, 50, 50], center = sand); // ydre terningkugle (d = 65, centrum = sandt); // indre sfære

Her er resultatet:

Eksperimenter med diameteren (d parameter) af sfæren og se hvad der sker.

I OpenSCAD er der normalt mange måder at udføre den samme opgave. Hvis du ville have en rille i en terning, kunne du trække en anden terning fra den eller tilføje to mere over den. Det betyder normalt ikke, hvordan man gør tingene, men afhængigt af komplexiteten af ​​delen, kan det være lettere at udføre visse manipulationer først.

Sådan opretter du en kanal i en terning. I stedet for at bruge en anden terning skaber en afrundet kanal ved hjælp af en cylinder. Bemærk, hvordan forskel metoden bruges igen, og hvordan Oversætte og rotere metoder bruges til at manipulere figurerne. Bruger rotere metoden gør transformationer ofte vanskelige, så leg med parametrene, indtil du opnår dit ønskede resultat. Her er koden:

forskel () // subtraktionskub (størrelse = [50, 150, 50]); // ydre terning translate (v = [25, 150, 50]) rotere (a = [90, 0, 0]) cylinder (d = 40, h = 150); // cylinderkanal

Sådan ser det ud:

Du spekulerer måske på, hvad alle de grønne ting er. Dette er her, fordi 3D-modellen kun er en forhåndsvisning lige nu. Tryk på for at løse dette F6 for fuldt ud at gengive modellen. Dette kan tage nogen tid, afhængigt af kompleksiteten. Preview (F5) er normalt god nok, mens du arbejder. Her er hvordan den endelige gengivelse ser ud (med $ fn indstillet til 100):

Her er et andet avanceret eksempel. Sig, at du ville have en montering noget ved hjælp af en bolt. At oprette et hul er simpelt nok at bruge cylinder, men hvad nu hvis du ville have boltbolthovedet monteret til forsænkede bolte? Du kan simpelthen oprette en stor cylinder, så bolthovedet kan sidde i, men det ser ikke godt ud. Løsningen er en affasning, som du kan oprette med cylinder metode. Tricket her er at specificere to diametre - d1 og d2. Lav disse forskellige størrelser, og OpenSCAD gør resten.

Da jeg er britisk, vil jeg bruge metriske dimensioner her til en M5-forsænket bolt. Du kan nemt justere dette, så det passer til de fastgørelser, du vil bruge. Her er koden:

$ fn = 100; // boltindstillinger m5_clearance_diameter = 5,5; m5_head_clearance_diameter = 11; m5_head_depth = 5; forskel () // subtraher terning (20, 20, 20); bolt_hole (10, 10, 20); bolt_bevel (10, 10, 15);  modul bolt_hole (x, y, højde) / * M5 hul ved 90 grader. * / translate (v = [x, y, 0]) cylinder (d = m5_clearance_diameter, h = højde);  modul bolt_bevel (x, y, z) // M5 skrå oversæt (v = [x, y, z]) cylinder (d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth); 

Bemærk, hvordan boltdimensionerne gemmes i variabler? Dette gør kodning og vedligeholdelse meget lettere. En metode, du måske ikke er stødt på endnu, er modul. Dette giver dig mulighed for at definere en blok af kode, der skal udføres, når du vil. I virkeligheden er dette en fungere. Du skal bruge moduler og variabler for enhver kompleks form, da de gør tingene lettere at læse og hurtigere at foretage ændringer. Sådan ser udfaldet ud:

Lad os se på et sidste eksempel. Sig, at du ville fremstille en række huller omkring en cirkel. Du kan manuelt måle, oversætte og rotere alle disse, men selv med moduler ville dette være kedeligt. Her er slutresultatet, 10 cylindere fordelt endda rundt om en cirkel:

Her er koden:

$ fn = 100; antal_hul = 10; for (i = [1: 360 / number_of_holes: 360]) // number_of_holes definerer antallet af gange denne kode kører make_cylinder (i);  modul make_cylinder (i) // lav cylinder og fordel jævnligt roterende ([0, 0, i]) oversæt ([10, 0, 0]) cylinder (h = 2, r = 2); 

Denne kode er enklere, end du ville forvente. EN til loop bruges til at ringe til make_cylinder modul ti gange. Da der er 360 grader i en cirkel, og 360/10 = 36, skal hver cylinder drejes i trin på 36 grader. Hver iteration af denne løkke øger jeg variabel med 36. Denne loop kalder make_cylinder modul, der simpelthen trækker en cylinder og placerer den i henhold til de grader, der er sendt til den af ​​løkken. Du kan tegne flere eller færre cylindre ved at ændre number_of_holes variabel - selvom du måske ønsker at justere afstanden, hvis du gør det. Sådan ser 100 cylindre ud, de overlapper lidt:

Eksport

Nu hvor du ved, hvordan du koder i OpenScad, er der et sidste trin, der kræves, før du kan 3D-udskrive dine modeller. Du skal eksportere dit design fra OpenSCAD til standarden STL format brugt af de fleste 3D-printere. Heldigvis er der en eksport til STL-knap: Editor Menu > Øverst til højre:

Det er det i dag. Du skal nu have en fremragende arbejdsviden om OpenSCAD - alle de komplekse ting bygger på disse fundamenter, og mange komplekse former er virkelig masser af enkle former kombineret.

For en udfordring, hvorfor ikke se på nogle af vores 3D-udskrivningsprojekter og prøve at genskabe delene i OpenSCAD:

  • 3D-printbarheder til bordplads-fantasirPGs De bedste 3D-printbarheder til bordpladsfantasi-RPG'er De bedste 3D-printbarheder til bordpladsfantasi-RPG'er Hvis du foretrækker en forbløffende oplevelse til rollespil, er der en ny måde at gøre det på: brug 3D-udskrivning til at skabe fysiske terrænstykker og miniaturer.
  • Brugerdefinerede genvejsknapper Lav dine egne tilpassede genvejsknapper med en Arduino Lav dine egne tilpassede genvejsknapper med en Arduino Den ydmyge Arduino kan gøre en masse ting, men vidste du, at det kan efterligne et USB-tastatur? Du kan kombinere lange tastaturgenveje til en enkelt brugerdefineret genvejstast med dette enkle kredsløb.
  • Elektronisk D20 rulle i stil med denne DIY Elektronisk D20 matrulle i stil med denne DIY Elektronisk D20 matrice Ønsker du noget lidt unikt ved dit næste spilmøde? Se denne DIY elektroniske D20, der indeholder brugerdefineret grafik til kritiske hits og misser.
  • Spil, du kan 3D-udskrivning 6 fedeste spil, du kan 3D-udskrivning derhjemme 6 sejeste spil, du kan 3D-udskrivning derhjemme Alle ved om 3D-printere, men hvad du måske ikke ved, er hvor sjovt 3D-udskrivning er, og hvor sjovt det kan skabe til hele din familie. Vi taler 3D-trykte bordplader.

Lærede du nogen nye tricks i dag? Hvad er din foretrukne OpenSCAD-funktion? Vil du snart skifte fra et andet CAD-værktøj? Fortæl os det i kommentarerne herunder!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.