Begyndervejledning til OpenSCAD: Programmering af 3D-trykte modeller

3D modelleringssoftware kan være svært at bruge, hvis du ikke er kunstnerisk. OpenSCAD giver dig mulighed for at designe modeller specielt til 3D-udskrivning, uden at bruge andet end kode.

3D modelleringssoftware kan være svært at bruge, hvis du ikke er kunstnerisk.  OpenSCAD giver dig mulighed for at designe modeller specielt til 3D-udskrivning, uden at bruge andet end kode.
Reklame

Har du altid ønsket at designe dine egne 3D-modeller? Hvad med 3D-udskrivning en del, du har designet? Der er mange 3D modelleringsprogrammer rundt, men det kan være svært at bruge, hvis du ikke er kunstnerisk (som mig). OpenSCAD giver dig mulighed for at designe modeller specielt til 3D-udskrivning, uden at bruge andet end kode . Bare rolig, hvis du ikke ved, hvordan man kan kode, i dag leder jeg dig gennem det grundlæggende.

Hvad er OpenSCAD?

OpenSCAD er en gratis Solid Computer Aided Design- model. Den er tilgængelig til Windows, Mac og Linux. Hvad 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 lave matematiske beregninger, gemme dimensioner i variabler, ændre størrelse på dele og meget mere.

Der er nogle faktorer, du skal redegøre for, når 3D-udskrivningsmodeller, men mange af disse gælder for 3D-print-CAD-modeller generelt, ikke kun OpenSCAD-design. Hvis du vil vide mere om 3D-udskrivning, skal du checke vores Ultimate Beginners Guide Ultimate Beginners Guide til 3D Printing Ultimate Beginners Guide til 3D Printing 3D-udskrivning skulle være den nye "Industrial Revolution". Det har ikke overtaget verden endnu, men jeg er her for at tale dig gennem alt hvad du behøver at vide for at komme i gang. Læs mere . Hvis du leder efter en mere interaktiv model, læs vejledning til oprettelse af objekter i Sketchup Design & Build 3D Virtuelle Bygninger og objekter Med Google SketchUp Design og bygg 3D virtuelle bygninger og objekter med Google SketchUp Google SketchUp er backbone modelleringsprogrammet til Google BuildingMaker, som giver grafiske designere mulighed for at indsende byggedesign til Google for at blive tilføjet til det officielle Google Earth-billede. Læs mere .

Kom godt i gang

Først skal du gå videre til download siden og finde en version af OpenSCAD, der passer til dit operativsystem. Jeg bruger Mac OS, men disse OpenSCAD principper gælder for alle systemer.

Når du er installeret, skal du gå videre og åbne den. Du vil blive præsenteret med denne opstartsmenu:

OpenSCAD Start Menu

Dette viser dig de filer, du åbnede sidst, og giver dig mulighed for at indlæse et par eksempler. Du er velkommen til at se nærmere på nogle af eksemplerne, men jeg fandt disse gjort ting mere forvirrende, når de først startede. For denne vejledning opretter du en ny fil ved at klikke på den nye knap.

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

OpenSCAD Interface

Dette er opdelt i tre hovedområder. Til venstre er din editor og menu. Det er her du vil skrive din kode. Dette vil ikke indeholde nogen kode endnu, da du opretter en ny fil. Øverst er der nogle menuknapper til at udføre grundlæggende opgaver, som f.eks. Indlæs, gem, fortryd osv.

OpenSCAD Editor

Nederst til højre er konsollen . Dette vil vise dig eventuelle fejl ved opbygningen af ​​modellen.

OpenSCAD Console

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

OpenSCAD Interface

Der er flere knapper nederst på 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 knappen i editorens menu eller ved at gå til Filer > Gem .

Det grundlæggende

Den måde, hvorpå OpenSCAD fungerer mesteparten af ​​tiden, er ved tilsætning og subtraktion af enkle former. Du kan bygge meget komplekse modeller på denne måde, så lad os hoppe lige ind.

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

OpenSCAD Simple Box

Og her er koden til at producere det:

cube(); // create a cube 

For at få din kode til at udføre og bygge modellen, skal du forhåndsvise den. OpenSCAD vil gøre dette som standard hver gang du gemmer, eller du kan trykke F5 for at tvinge en opdatering. Forsøg at flytte rundt i 3D-rummet ved at holde venstre eller højre museknapper nede.

Nu producerer dette en flot terning, men det er ikke frygteligt nyttigt uden dimensioner. OpenSCAD virker ikke i et 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 et hvilket som helst andet program (som din 3D-udskriftsskiver) for at fortolke disse, være det metriske eller kejserlige. Det giver faktisk stor fleksibilitet.

Lad os tilføje nogle dimensioner til din terning. Du overfører dette i parametre til kubemetoden :

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

Værdierne 10, 20 og 30 repræsenterer størrelsen af ​​kuben i X-, Y- og Z- aksen. Bemærk hvordan dette har produceret et meget større rektangel:

OpenSCAD-rektangel

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

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

Og her ser det ud:

OpenSCAD-rektangel centreret

Centrering af objekter fungerer godt for enkle former, men det gør tingene komplicerede for ikke-symmetriske objekter. Du skal beslutte, hvilken metode der passer bedst til dig.

Flytter til en mere kompleks form, her er en cylinder :

OpenSCAD Cylinder

Her er koden til at oprette den:

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

I modsætning til terninger tegnes cylindre automatisk i midten af ​​X- og Y-aksen. D- parameteren står for diameter (du kan passere i radius i stedet, hvis du foretrækker). H- parameteren er højden. Der er dog noget galt her. Denne cylinder ser ganske "blokeret" ud. Du skal øge antallet af ansigter trukket på omkredsen. Dette er nemt at gøre - tilføj følgende parameter til din cylinderkode.

 $fn = 100 

Så bliver cylinderdefinitionen:

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

Sådan ser det ud:
OpenSCAD High Resolution Cylinder

Dette øger antallet af ansigter, der er nødvendige for at lave cirkler - 100 er et godt udgangspunkt. Husk på, at dette vil øge renderingstiden i høj grad, især på komplekse modeller, så det er normalt bedst at forlade dette ud, indtil du er færdig med at designe.

Det er nemt at anvende transformationer på former. Du skal ringe til særlige metoder, før du opretter dine figurer. Sådan drejer du cylinderen ved hjælp af rotationsmetoden :

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

Værdierne, der sendes til a- parameteren, repræsenterer rotationsvinklen for X-, Y- og Z-aksen. Her er resultatet:

OpenSCAD Rotation

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

OpenSCAD Oversæt

Her er koden:

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

At forstå oversættelsesmetoden er en af ​​de vigtigste ting, du kan gøre. Det er nødvendigt for at designe mest komplekse designs.

Endelig er en anden nyttig form en kugle :

OpenSCAD Sphere

Her er koden:

 sphere(d = 100); 

Ligesom cylinderen kan du glatte det ud ved hjælp af $ fn- koden ovenfor.

Avanceret kodning

Nu da du kender det grundlæggende, lad os se på nogle mere avancerede færdigheder. Ved design af en del hjælper det med at tænke på, hvordan det kan bestå af mindre former og objekter. Du behøver ikke at gøre dette, og du kan "gøre ting op", mens du går, men det hjælper med at få en grov plan - selvom det kun er i dit hoved.

Lad os skabe en avanceret form: en terning med en udhulet sfære indvendig. Opret en terning og en kugle med center indstillet til sandt. Træk den ene fra den anden ved hjælp af forskellen metode:

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

Her er resultatet:

OpenSCAD Advanced Cube

Eksperiment med diameteren ( d parameter) af kuglen og se hvad der sker.

I OpenSCAD er der normalt mange måder at udføre den samme opgave på. Hvis du ville have en rille i en terning, kunne du trække en anden kube fra den, eller tilføje to mere over den. Det betyder normalt ikke, hvilken vej ting er gjort, men det afhænger af delens kompleksitet, det kan være lettere at lave visse manipuleringer først.

Sådan oprettes en kanal i en terning. I stedet for at bruge en anden terning, vil der ved hjælp af en cylinder opstå en afrundet kanal. Bemærk hvordan forskelsmetoden bruges igen, og hvordan oversættelses- og rotationsmetoderne bruges til at manipulere formerne. Brug af rotationsmetoden gør ofte transformationer vanskelige, så spil rundt med parametrene, indtil du opnår det ønskede 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 } 

Sådan ser det ud:

OpenSCAD Channel Cube

Du kan undre sig over, hvad alle de grønne ting er. Dette er her, fordi 3D-modellen lige nu er et eksempel. For at løse dette skal du trykke på F6 for at gøre modellen fuldstændig. Det kan tage lidt tid afhængigt af kompleksiteten. Forhåndsvisning ( F5 ) er normalt god nok under arbejdet. Her er hvad den endelige gengivelse ser ud (med $ fn indstillet til 100):

OpenSCAD High Resolution Channel Cube

Her er et andet avanceret eksempel. Sig, du ville have en mount noget ved hjælp af en bolt. Oprettelse af et hul er simpelt nok ved hjælp af cylinder, men hvad hvis du ville have bolthovedet flush monteret til forsænket bolte? Du kunne simpelthen oprette en stor cylinder for bolthovedet at sidde i, men det ville ikke se meget godt ud. Løsningen er en affasning, som du kan oprette med cylindermetoden . Tricket her er at angive to diametre - d1 og d2 . Lav disse forskellige størrelser, og OpenSCAD vil gøre resten.

Som jeg er britisk, bruger jeg metriske dimensioner her til en M5 forsænket bolt. Du kan nemt justere dette for at passe til de fikseringer, du vil bruge. 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); } 

Bemærk hvordan boltens dimensioner er lagret i variabler? Dette gør kodning og vedligeholdelse meget lettere. En metode, du måske ikke har stødt på endnu, er modul . Dette giver dig mulighed for at definere en blok kode, der skal udføres, når du vil. I virkeligheden er dette en funktion . Du bør bruge moduler og variabler til enhver kompleks form, da de gør tingene lettere at læse og hurtigere at foretage ændringer. Her ser det ud som om afskærmningen ser ud:

OpenSCAD Chamfer

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

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 kode er enklere, end du ville forvente. A for loop bruges til at ringe make_cylinder modulet ti gange. Da der er 360 grader i en cirkel og 360/10 = 36, skal hver cylinder roteres i trin på 36 grader. Hver gentagelse af denne sløjfe øger i- variablen med 36. Denne sløjfe kalder make-cylinder modulet, som blot trækker en cylinder og placerer den i overensstemmelse med graderne, der passerer til den ved sløjfen. Du kan tegne mere eller mindre cylindre ved at ændre variablen number_of_holes - selvom du måske vil justere afstanden, hvis du gør det. Her er hvad 100 cylindre ser ud, de overlapper lidt:

OpenSCAD 100 Circle Distribution

Eksport

Nu hvor du ved, hvordan man kode i OpenScad, er der et sidste trin krævet, før du kan udskrive 3D-modellerne i 3D. Du skal eksportere dit design fra OpenSCAD til det standard STL- format, der bruges af de fleste 3D-printere. heldigvis er der en eksport til STL-knappen: Editor Menu > Top Højre :

OpenSCAD Export STL

Det er det til i dag. Du skal nu have et fremragende kendskab til OpenSCAD - alle de komplekse ting bygger på disse fundamenter, og mange komplekse former er rigtig mange enkle former kombineret.

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

  • 3D Printables til Tabletop Fantasy RPGs De bedste 3D Printables til Tabletop Fantasy RPGs De bedste 3D Printables til Tabletop Fantasy RPGs Hvis du foretrækker en fordybende oplevelse for rollespilspil, er der en ny måde at gøre det på: Brug 3D-udskrivning til at skabe fysiske terrænstykker og miniaturer. Læs mere
  • Brugerdefinerede genvejsknapper Lav dine egne brugerdefinerede genvejsknapper med en Arduino Lav dine egne brugerdefinerede genvejstaster med en Arduino Den ydmyge Arduino kan gøre mange ting, men vidste du, at det kan efterligne et USB-tastatur? Du kan kombinere lange tastaturgenveje til en enkelt brugerdefineret genvejstast, med dette simple kredsløb. Læs mere
  • Elektronisk D20 Roll in Style med denne DIY Electronic D20 Die Roll i stil med denne DIY Electronic D20 Die Vil du have noget helt unikt ved din næste gaming meetup? Tjek denne DIY elektronisk D20, der indeholder brugerdefineret grafik til kritiske hits og misser. Læs mere
  • Spil Du kan 3D Print 6 Koldeste Spil Du kan 3D-Print derhjemme 6 Koldeste Spil Du kan 3D-print derhjemme Alle kender til 3D-printere, men hvad du måske ikke ved, er, hvor sjovt 3D-udskrivning er, og hvor meget sjov det kan skabe for hele din familie Vi taler 3D trykte bordspil spil. Læs mere

Lærte du noget nyt tricks i dag? Hvad er din yndlings OpenSCAD-funktion? Vil du snart skifte fra et andet CAD-værktøj? Lad os vide i kommentarerne nedenfor!

In this article