Nybörjarhandledning till OpenSCAD Programmering 3D-skrivna modeller
Har du alltid velat designa dina egna 3D-modeller? Hur är det med 3D-utskrift en del du har utformat? Det finns många 3D modelleringsprogram, men det kan vara svårt att använda om du inte är konstnärlig (som jag). OpenSCAD ger dig möjlighet att designa modeller speciellt för 3D-utskrift, med ingenting annat än koda. Oroa dig inte om du inte vet hur man kodar heller, idag guidar jag dig genom grunderna.
Vad är OpenSCAD?
OpenSCAD är en gratis Solid datorstödd design modellerare. Den är tillgänglig för Windows, Mac och Linux. Vad som skiljer sig från många andra program är att du utformar delar med kod istället för mus. Detta gör det mycket enkelt att göra matematiska beräkningar, lagra dimensioner i variabler, ändra storlek på delar och mer.
Det finns några faktorer du behöver redogöra för när 3D-utskriftsmodeller, men många av dessa gäller CAD-modeller i 3D i allmänhet, inte bara OpenSCAD-design. Om du vill veta mer om 3D-utskrift, ska du checka ut vår Ultimate Beginners Guide Ultimate Beginners Guide till 3D Printing Ultimate Beginners Guide till 3D Printing 3D-utskrift var den nya "Industrial Revolution". Det har inte övertaget världen än, men jag är här för att prata dig genom allt du behöver veta för att komma igång. Läs mer . Om du letar efter en mer interaktiv modell läser du guide för att skapa objekt i Sketchup Design & Build 3D Virtuella byggnader och objekt med Google SketchUp Design och bygga 3D virtuella byggnader och objekt med Google SketchUp Google SketchUp är backbone modelleringsprogram för Google BuildingMaker, som tillåter grafiska designers att skicka byggnadsdesign till Google för att läggas till den officiella Google Earth-bilderna. Läs mer .
Komma igång
Först, gå vidare till nedladdningsidan och hitta en version av OpenSCAD som är lämplig för ditt operativsystem. Jag använder Mac OS, men dessa OpenSCAD-principer gäller för alla system.
När du har installerat, fortsätt och öppna den. Du kommer att presenteras med denna startmeny:
Detta visar de filer du öppnade förra och ger dig möjlighet att ladda några exempel. Titta gärna på några av exemplen, men jag hittade de här sakerna mer förvirrande när de började. För den här handledningen skapar du en ny fil genom att klicka på ny knapp.
När du är öppen kommer du att presenteras med det här snygga gränssnittet:
Detta är uppdelat i tre huvudområden. Till vänster är din redaktör och meny. Här kommer du att skriva din kod. Det här kommer inte att ha någon kod ännu, eftersom du skapar en ny fil. Överst finns det några menyknappar för att utföra grundläggande uppgifter, till exempel ladda, spara, ångra och så vidare.
Nederst till höger är trösta. Detta kommer visa dig några fel vid byggandet av modellen.
Det sista avsnittet är huvudgränssnittet längst upp till höger. Här kan du interagera med din modell, men du kommer inte att kunna redigera den här (du kommer att skriva kod för att göra det).
Det finns flera knappar längst ner i detta huvudgränssnitt. Dessa låter dig i första hand visa din design på olika sätt.
Fortsätt och spara en ny fil genom att trycka på spara knapp i redigeringsmenyn eller genom att gå till Fil > Spara.
Det grundläggande
Hur OpenSCAD fungerar mestadels är genom tillägg och subtraktion av enkla former. Du kan bygga väldigt komplexa modeller på så sätt, så låt oss hoppa rätt in.
Här är den första formen, en enkel låda:
Och här är koden för att producera det:
kub(); // skapa en kub
För att få din kod att exekvera och bygga modellen måste du förhandsgranska den. OpenSCAD gör det som standard varje gång du sparar, eller du kan trycka på F5 att tvinga en uppdatering. Experimentera med att flytta runt i 3D-rymden genom att hålla ner vänster eller höger musknapp.
Nu producerar detta en fin kub, men det är inte hemskt användbart utan några dimensioner. OpenSCAD fungerar inte i något visst mätningssystem, istället är enheterna alla relativt varandra. Du kan skapa en ruta 20 x 10, och det är upp till något annat program (som din 3D-utskriftsskärare) för att tolka dessa, vara det metriska eller kejserliga. Det ger faktiskt stor flexibilitet.
Låt oss lägga till några dimensioner i din kub. Du passerar detta i parametrar till kub metod:
kub (storlek = [10, 20, 30]); // rektangel
Värdena 10, 20, och 30 representera kubens storlek i X, Y, och Z axel. Lägg märke till hur det här har skapat en mycket större rektangel:
Som standard drar OpenSCAD komponenter från nedre vänstra. Du kan justera detta genom att ställa in Centrum parameter till Sann. Här är koden för att göra det till rektangeln:
kub (storlek = [10, 20, 30], centrum = sant); // rektangel centrerad
Och här ser det ut:
Centrerande objekt fungerar bra för enkla former, men det gör sakerna komplicerade för icke-symmetriska föremål. Du måste bestämma vilken metod som fungerar bäst för dig.
Att flytta vidare till en mer komplex form, här är en cylinder:
Här är koden för att skapa den:
cylinder (d = 10, h = 10, centrum = sant); // cylinder
Till skillnad från kuber, cylindrar dras automatiskt i mitten av X- och Y-axeln. De d parameter står för diameter (du kan passera i radien istället om du föredrar). De h parametern är höjden. Något är fel här men. Denna cylinder ser ganska ut “blocky”. Du måste öka antalet ansikten som ritas på omkretsen. Detta är lätt att göra - lägg till följande parameter i din cylinderkod.
$ fn = 100
Så blir cylinderdefinitionen:
cylinder (d = 10, h = 10, centrum = sant, $ fn = 100);
Så här ser det ut:
Detta ökar antalet ansikten som behövs för att göra cirklar - 100 är en bra utgångspunkt. Tänk på att detta i hög grad ökar återgivningstiderna, särskilt på komplexa modeller, så det är oftast bäst att lämna det tills du är klar med att designa.
Det är enkelt att tillämpa transformationer på former. Du måste ringa speciella metoder innan du skapar dina former. Så här roterar du cylindern med rotera metod:
rotera (a = [0, 90, 0]) cylinder (d = 10, h = 10, centrum = sant); // roterad cylinder
Värdena överfördes till en Parameter representerar rotationsvinkeln för X-, Y- och Z-axeln. Här är resultatet:
En annan mycket användbar funktion är Översätt. Detta låter dig flytta objekt runt i 3D-utrymme. Återigen måste du passera i rörelsen för varje axel. Här är resultatet:
Här är koden:
translate (v = [0, 25, 0]) cylinder (d = 10, h = 10, centrum = sant); // översatt cylinder
Förstå Översätt Metod är en av de viktigaste sakerna du kan göra. Det krävs för att utforma de flesta komplexa mönster.
Slutligen är en annan användbar form a sfär:
Här är koden:
sfär (d = 100);
Precis som cylindern kan du släta ut det med hjälp av $ fn koden ovan.
Avancerad kodning
Nu när du vet grunderna, låt oss titta på några mer avancerade färdigheter. Vid utformning av en del hjälper det att tänka på hur det kan bestå av mindre former och föremål. Du behöver inte göra det, och du kan “göra saker upp” som du går, men det hjälper till att ha en grov plan - även om det bara är i ditt huvud.
Låt oss skapa en avancerad form: en kub med en ihålig sfär inuti. Skapa en kub och a sfär med Centrum satt till true. Subtrahera en från den andra med hjälp av skillnad metod:
skillnad () // subtraktionskub (storlek = [50, 50, 50], centrum = sant); // yttre kubsfären (d = 65, centrum = sant); // inre sfär
Här är resultatet:
Experiment med diameteren (d parameter) i sfären och se vad som händer.
I OpenSCAD finns det oftast många sätt att uppnå samma uppgift. Om du ville ha ett spår i en kub, kan du subtrahera en annan kub från den, eller lägga till två över den. Det spelar vanligtvis ingen roll hur långt sakerna görs, men beroende på delens komplexitet kan det vara lättare att göra vissa manipuleringar först.
Så här skapar du en kanal i en kub. I stället för att använda en annan kub, skapar en rundad kanal med en cylinder. Lägg märke till hur skillnad Metoden används återigen, och hur Översätt och rotera metoder används för att manipulera formerna. Använda rotera Metoden gör ofta omvandlingar knepiga, så lek med parametrarna tills du uppnår önskat resultat. Här är koden:
skillnad () // subtraktionskub (storlek = [50, 150, 50]); // yttre kub-translate (v = [25, 150, 50]) rotera (a = [90, 0, 0]) cylinder (d = 40, h = 150); // cylinderkanal
Så här ser det ut:
Du kanske undrar vad alla gröna grejer är. Detta är här eftersom 3D-modellen bara är en förhandsgranskning just nu. För att åtgärda det, tryck på F6 att fullt ut göra modellen. Det kan ta lite tid, beroende på komplexiteten. Förhandsgranskningen (F5) är vanligtvis tillräckligt bra när du arbetar. Här är vad den slutliga bilden ser ut som (med $ fn satt till 100):
Här är ett annat avancerat exempel. Säg att du ville ha en montering med hjälp av en bult. Att skapa ett hål är enkelt nog att använda cylinder, men vad händer om du vill att bulthuvudet ska monteras för nedsänkta bultar? Du kan helt enkelt skapa en stor cylinder för bulthuvudet att sitta i, men det skulle inte se väldigt fint ut. Lösningen är en avfasning, som du kan skapa med cylinder metod. Tricket här är att ange två diametrar - d1 och d2. Gör dessa olika storlekar, och OpenSCAD kommer att göra resten.
Som jag är brittisk, använder jag metriska dimensioner här, för en M5 försänkbar bult. Du kan enkelt justera detta så att det passar vilka fixningar du vill använda. Här är koden:
$ fn = 100; // bultinställningar m5_clearance_diameter = 5.5; m5_head_clearance_diameter = 11; m5_head_depth = 5; skillnad () // subtrahera kub (20, 20, 20); bulthål (10, 10, 20); bulten (10, 10, 15); modulen bolthål (x, y, höjd) / * M5 hål vid 90 grader. * / översätt (v = [x, y, 0]) cylinder (d = m5_clearance_diameter, h = höjd); modulen bolt_kommandot (x, y, z) // M5-vinkel översätt (v = [x, y, z]) cylinder (d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth);
Lägg märke till hur bultens dimensioner lagras i variabler? Detta gör kodning och underhåll mycket enklare. En metod som du kanske inte har stött på än är modul. Det här låter dig definiera ett block av kod som ska utföras närhelst du vill. I verkligheten är detta en fungera. Du borde använda moduler och variabler för någon komplex form, eftersom de gör saker lättare att läsa och snabbare för att göra några ändringar. Så här ser det ut som om chamferen ser ut:
Låt oss titta på ett sista exempel. Säg att du ville producera en serie hål runt en cirkel. Du kan manuellt mäta, översätta och rotera alla dessa, men även med moduler skulle det vara tråkigt. Här är slutresultatet, 10 cylindrar fördelas jämnt runt en cirkel:
Här är koden:
$ fn = 100; number_of_holes = 10; för (i = [1: 360 / number_of_holes: 360]) // number_of_holes definierar antal gånger den här koden körs make_cylinder (i); modulen make_cylinder (i) // gör cylindern och jämnt fördela rotera ([0, 0, i]) translate ([10, 0, 0]) cylinder (h = 2, r = 2);
Denna kod är enklare än vad du förväntar dig. en för loop används för att ringa make_cylinder modul tio gånger. Eftersom det finns 360 grader i en cirkel och 360/10 = 36, behöver varje cylinder roteras i steg om 36 grader. Varje iteration av denna slinga ökar jag variabel med 36. Den här slingan kallar make_cylinder modulen, som helt enkelt drar en cylinder och positionerar den enligt graderna som passerar till den genom slingan. Du kan rita mer eller mindre cylindrar genom att ändra number_of_holes variabel - även om du kanske vill justera avståndet om du gör det. Här är hur 100 cylindrar ser ut, de överlappar något:
exportera
Nu när du vet hur du kodar i OpenScad, krävs ett sista steg innan du kan skriva ut dina modeller i 3D. Du måste exportera din design från OpenSCAD till standarden STL format som används av de flesta 3D-skrivare. lyckligtvis finns det en export till STL-knappen: Redigeringsmeny > Överst till höger:
Det är det för idag. Du borde nu ha en utmärkt kunskap om OpenSCAD - alla komplexa saker bygger på dessa fundament, och många komplexa former är verkligen många enkla former kombinerat.
För en utmaning, varför titta inte på några av våra 3D-utskriftsprojekt och försök att återskapa delarna i OpenSCAD:
- 3D Printables för Tabletop Fantasy RPGs De bästa 3D Printables för Tabletop Fantasy RPGs De bästa 3D Printables för Tabletop Fantasy RPGs Om du föredrar en uppslukande upplevelse för rollspel, finns det en ny sätt att göra det: använd 3D-utskrift för att skapa fysiska terrängstycken och miniatyrer. Läs mer
- Anpassade genvägsknappar Gör dina egna anpassade genvägsknappar med en Arduino Gör dina egna anpassade genvägsknappar med en Arduino Den ödmjuka Arduino kan göra många saker, men visste du att det kan emulera ett USB-tangentbord? Du kan kombinera långa tangentbordsgenvägar i en enda anpassad genvägsknapp, med denna enkla krets. Läs mer
- Elektronisk D20 Roll in Style med denna DIY Electronic D20 Dys Roll i stil med denna DIY Electronic D20 Die Vill du ha något unikt vid din nästa spelmatch? Kolla in denna DIY elektroniska D20, med anpassad grafik för kritiska träffar och missar. Läs mer
- Spel du kan 3D-utskrift 6 Kallaste spel Du kan 3D-utskrift hemma 6 Coolaste spel Du kan 3D-utskrift hemma Alla vet om 3D-skrivare, men vad du kanske inte vet är hur kul 3D-utskrift är och hur mycket kul det kan skapa för hela din familj Vi pratar 3D-skrivbordsbordsspel. Läs mer
Lärde du några nya knep idag? Vad är din favorit OpenSCAD-funktion? Kommer du att byta från ett annat CAD-verktyg snart? Låt oss veta i kommentarerna nedan!
Utforska mer om: 3D-modellering, 3D-utskrift.