OpenSCAD -opplæring

OpenSCAD -opplæring
Å lage en mekanisk del krever en tegning. Det startet med papir, og de første CAD -programmene brukte nøyaktig samme stil. Det er til og med standard firkanter på tegningene slik at hver tegning blir identifisert. Alt dette er nyttig når du begynner å gå i produksjon i store selskaper. Når du begynner å lage et nytt mekanisk stykke, kan det hende du vil ha andre metoder.

3D CAD -metoder lar deg se hele stykket som det er. Du kan også vri og snu den. I avansert programvare kan du også simulere bevegelse. I alle tilfeller tegner du brikkene ved hjelp av et grafisk grensesnitt. Dette er flott for å lage bokser og sylindere, men når du vil lage mer komplekse former, kan det hende du trenger matematiske metoder.

Skriv inn en standard måte å beskrive ethvert materiale med kommandoer på.

Hva gjør OpenScad så spesiell?

I OpenScad tegner du ikke noe med pekeren eller pennen din. Du koder hele stykket med kommandoer og funksjoner. Dette er vanskelig for mekaniske ingeniører, men for programmerere har du en annen situasjon. Bortsett fra personlig preferanse, har du også fordelen med presisjon. Når du designer den med kode, har du presisjonen der i koden.

Det kraftigste trekket ved OpenSCAD er binære operasjoner. Du kan bruke binære operatører til å sette ut stykker eller kutte materiale ut. Det er lett å lage en kube med et hull i sentrum ved å trekke sylinderen fra kuben fra kuben. Noen av disse operasjonene er tilgjengelige i annen CAD -programvare, men det faller naturlig å bruke dem i OpenScad.

Hva er prosjektbehovene dine?

Etter at du har lagt designet på et serviett, kan du tenke at du trenger å se hva som skjer når du prøver å gjøre det til et fullt design. Ikke bekymre deg; Det er et forhåndsvisningsvindu du kan se på mens du koder. Når du har forstått de grunnleggende ideene, vil du vite om det passer best for prosjektet ditt.

Kort sagt, hvis du vil lage små brikker som har komplekse former, bør du prøve OpenScad. For fullt utstyr og mekaniske systemer vil du bruke mer avanserte grafiske applikasjoner. Når det er sagt, er det hele et spørsmål om smak. Du kan lage kompliserte former med bare kode, vil du vurdere å kode en hel bil?

Installere

OpenScad, tilgjengelig i standard depoter for de fleste distribusjoner, kan også installeres ved hjelp av et snap og appimage. Interessant er at du også har en andre pakke som inkluderer skruer, gir og generiske former. Den nyeste pakken er i OpenScad-Nightly Snap.

sudo apt install openscad
Sudo Snap Install OpenScad-Nightly

Hvis du vil bruke de inkluderte skruene som kommer som en egen pakke, bruk distribusjonens lagre.

sudo apt install openscad-mcad

Å bruke de inkluderte delene er en annen sak, dekket lenger ned.

Flere standardformer

Prinsippene for scripting CAD er at du har noen få standard geometriske former. Du bruker disse formene og kombinerer dem til mer komplekse former. Standardformene er sirkel, firkantet og polygon for 2D. For 3D har du en sfære, kube, sylinder og polyhedron. Ved å bruke noen av disse til å bygge og andre til å kutte, kan du lage veldig komplekse former.

Det er også en tekstfunksjon som oppretter en 2D -tekst. Når du trenger å opprette tegninger for videre behandling, kan du bruke projeksjonskommandoen. Denne kommandoen kutter en 3D -form langs et fly, slik at du kan overføre den til en tegning. Du kan også legge til former fra andre programmer eller til og med bilder ved å bruke importkommandoen. Dette fungerer også med 3D-former.

I tillegg kan du ekstrudere former fra eksisterende objekter.

Transformasjoner

Som standard oppretter du alle brikker i midtpunktet for rutenettet i alle dimensjoner. Dette gjør at de alle overlapper hverandre. Når du har en rekke former, vil du få dem plassert på rett sted og rotert. Disse funksjonene er de enkle, Oversetter setter objektet et annet sted. Rotate -kommandoen roterer objektet eller barneobjektene. Du har også speilfunksjonen, som oppretter en kopi av objektet speilet rundt den gitte akselen.

De andre transformasjonene trenger eksempler for å forklare. Kort sagt, skroget lager de ytre linjene i mange former. Prøv med to sirkler og kombiner dem med skrog (). Eller koden nedenfor.

oversetter ([-10,0,0])
Hull ()
sylinder (30, 5, 1);
kube (9);
sfære (12);

Minkowski -operasjonen brukes vanligvis til å lage kanter; Hvis du vil ha dem avrundet, bruk en sfære.

Boolske operasjoner

Mange stykker kan ikke opprettes med bare firkanter, sylindere og kuler. Det første du kan gjøre er å kombinere og kutte mange former i en enkelt form. Du bruker boolske operatører for å gjøre dette. De er union, forskjell og kryss.

Union ()
Cube ([35, 5, 2], Center = True);
sylinder (h = 2, r = 5, senter = true);

I koden over får du et enkelt stykke som har en pære i sentrum. For å lage et rør, tar du forskjellen mellom en sylinder og en annen.

forskjell ()
sylinder (h = 15, r1 = 30, r2 = 30, senter = true);
sylinder (h = 15, r1 = 25, r2 = 25, senter = true);

Når vi går videre, vil du bruke disse og mer. Her er et krysseksempel.

kryss()

roter ([45,0.0])
sylinder (h = 40, r = 4, senter = true);
oversatt (5,5,5)
sylinder (h = 40, r = 6, senter = true);

Krysset etterlater bare de overlappende tingene; Du kan lage mange former ved hjelp av denne metoden.

For løkker

Mange av designene dine vil ha samme stykke mange ganger, vurdere en uteplass. De er vanligvis laget av flere planker med hull mellom seg. I dette tilfellet lager du en planke og bare itererer over dem med en for loop.

gap = 8;
planke_width = (BED_WIDTH / 4) - GAP;
num_plans = 4;
for (plank_x_pos = [0: 1: num_plans - 1])

oversatt ([planke_width * plank_x_pos + gap * plank_x_pos, 0,0])
Cube ([Plank_Width, 4200]);

Uten for Loop ville du skrevet kuben og oversette uttalelser fire ganger. Du hadde også måttet beregne hvor langt ut neste planke ville gå. Selv med bare fire stykker ser denne løsningen mye enklere. I eksemplet kan du også se variabler som må settes. Alle variabler er satt til kompileringstid, dette er viktig siden du kan få feilsøkingsproblemer hvis du tenker på dem som verdier i andre programmeringsspråk. Som du vil se senere, kan du også gjøre hele uteplassen til en modul.

Matematikk

Inkludert i OpenScad, har du noen få matematiske funksjoner tilgjengelig. Støttede funksjoner er de fleste trigonometriske funksjoner, avrunding på forskjellige måter og logaritmisk funksjon. Du kan se et eksempel nedenfor.

for (i = [0:36])
oversettes ([i*10,0,0])
sylinder (r = 5, h = cos (i*10)*50+60);

Ovennevnte funksjon skaper en lang rett rad med sylindere med forskjellig høyde. Hovedfunksjonene er koblet til trigonometri. Imidlertid, med tilfeldige, avrundingsfunksjoner og standardoperatørene, kan du opprette stort sett alt. Det er også støtte for vektorer, matriser og kvadratrot. Selv med disse funksjonene kan du komme veldig langt. De dekker imidlertid ikke alt du kan forestille deg; I stedet kan du opprette funksjoner.

Moduler og funksjoner

Du har mange moduler inkludert i OpenSCAD -installasjonen. Du kan imidlertid også laste ned andre biblioteker. I distribusjonen din finner du sannsynligvis MCAD, også kalt OpenScad-MCAD. Å installere under ubuntu.

$ sudo apt install openscad-mcad

Inne i denne pakken finner du både moduler og funksjoner. Før du starter et prosjekt, kan du se deg rundt etter biblioteker og moduler. Det er allerede et bibliotek med skruer, og det er bare begynnelsen. Mangler en del av designet ditt? Lage dine egne moduler; Du bruker dem til å lage nye brikker. Når du bruker parametere, kan du lage mange versjoner av dem. Den beste måten å lage en modul er å lage designen som en egen fil, finne ut hva som må være dynamisk, og legge til 'modul' rundt stykket.

For å bruke en modul, kaller du den med navnet. Siden mange moduler kommer i separate filer, må du legge en inkludering på toppen av filen din. Vær oppmerksom på forskjellen mellom "Inkluder" -uttalelsen og "bruk" -uttalelsen. Hvis du vil at alt i en fil skal utføres, "inkluderer du" det, hvis du vil ha moduler og funksjoner som bare er definert, "bruk" filen. For å sikre at du kan bruke modulene, må du legge dem i modellens nåværende katalog eller en av søkeveiene.

La oss først se på noen få du kan laste ned og bruke.

Skruer

I pakken fra den tidligere delen kan du finne mange ting. En gruppe er skruer! Du kan prøve dem ved å laste dem inn i applikasjonen og ringe modulen. I MCAD -biblioteket kan du finne mange skruer. Det er mange andre samlinger fra andre kilder. For å bruke en skrue, oppretter du en fil som inneholder inkluderingsuttalelsen for modulen du trenger. Nå, hvor som helst du vil bruke modulen, kan du bruke navnet på modulen for å lage skruen.

inkludere ;
ball_groove (12, 40, 2);

Dette er en skrue som kan passe til en ball. Du kan også finne NUTS_AND_BOLTS_SCAD, som definerer metriske skruer og bolter. Designerne brukte et nettsted der du kan finne bolter og opprettet en metode for deg å bruke. Et annet eksempel er et hull for en bolt.

inkludere
forskjell ()
Cube ([12,16,20], Center = True);
oversatt ([0,0, -3])
Bolthole (8, lengde = 300);

Ovennevnte kode skaper et hull som er stort nok for M8 -bolten, dette eksemplet skaper en kube og kutter ut to sylindere i to størrelser. Det er ikke veldig komplisert, men kompleksiteten vokser raskt når du bruker andre komponenter. Legg skruene i parametriske bokser, så kan du se hvordan et bibliotek hjelper.

Lage en vogn

For å lage noen konstruksjon av enhver kompleksitet, må du lage ett stykke om gangen. Senere kombinerer du dem med hverandre. Som vi har nevnt tidligere, kan du bruke moduler og funksjoner. Den beste måten å komme i gang er å bestemme hvor du trenger å angi variabler. For en enkel vogn trenger du høyde, akselavstand og lengde. Du må angi verdiene på ett sted og bruke dem til å få delene til å passe rundt designen. Det kan hende du trenger flere verdier, men ikke legg dem alle når du starter. Når du starter et nytt prosjekt, vil du ikke ha alle delene klare, så vær forberedt på å endre ting rundt.

akselavstand = 150;
Cartlength = akselavstand * 1.2;
CartWidth = 50;
Wheeldiameter = 25;
SuspensionHeight = (Wheeldiameter/2) + 5;
Oversatt ([akselavstand/2, CartWidth, 0])
roter ([90,0,0])
sylinder (r = wheelradius, 10, senter = true);
Oversatt ([akselavstand/2,-(CartWidth), 0])
roter ([90,0,0])
sylinder (r = wheelradius, 10, senter = true);

Koden viser koden for de to første hjulene. Hvis du tenker litt på det, kan du sannsynligvis lage bakhjulene. For å legge til flak, overflaten der alle tingene går, legger du bare til en kube. Bruk variablene du legger i koden.

oversettes ([0, 0, suspensjonhøyde])
Cube ([Cartlength, CartWidth, 10], Center = True);

Denne flak er imidlertid i samme høyde som hjulene, så vi tok vare på det med suspensjonshøyderverdien. Den oversatte uttalelsen påvirker det som er rett etter det. Merk at det ikke er noen semi-kolon på slutten av en linje. Når uttalelsene inni blir lange, bruker du krøllete seler rundt det.

Nå må du legge til aksler og fjæring. Akslene kan være enkle sylindere som går mellom hjulene. Du plasserer dem på samme måte som du gjorde hjulene ved å rotere og oversette. Faktisk er det beste å bruke de samme verdiene.

oversettes ([akselavstand/2,0,0])
roter ([90,0,0])
sylinder (r = wheelradius * 0.25, H = (CartWidth * 2) + 15, Center = True);

Koden her setter forakselen på plass. Bakakselen, jeg lar deg leseren finne ut av det. Vi kan løse suspensjonen på mange måter. I dette tilfellet vil vi holde det enkelt.

// fjæring
oversettes ([akselavstand/2, 0, suspensjonhøyde])
roter ([90,0,0])

forskjell ()
sylinder (r = suspensjonhøyde, 10, senter = true);
sylinder (R = SuspensionHeight - 5, 11, Center = True);
Cube ([102, SuspensionHeight/6, 12], Center = True);

Oversatt ([SuspensionHeight, 0, 0])
sylinder (R = SuspensionHeight/3, H = 12, Center = True);
Oversatt ([-SuspensionHeight, 0, 0])
sylinder (R = SuspensionHeight/3, H = 12, Center = True);

Denne koden skaper en veldig rå suspensjon; Den bruker bare sylindere, så det vil ikke være det beste når du begynner å bruke den. Det illustrerer en måte å lage design fra primitivene; sylinder, kube og vel, det er det for denne modellen. Når du går videre, vil du gjøre hver stykke til en modul og plassere disse brikkene.

Biblioteker

I den tidligere delen brukte du bare kretser. Eventuelle design som bare bruker de primitiver vil ikke være de beste for alle applikasjoner. Du må lage gode og effektive design. Løsningen er matematikk! For å legge til dette, bør du begynne med å bruke andres biblioteker.

Det er et stort antall biblioteker bygget av smarte mennesker i samfunnet. Menneskene som bygger er brukere som løser problemene sine og deretter nådig delte det med alle andre. Takk til dere alle! Et godt eksempel er dotscad; For suspensjonseksemplet kan du finne en Bézier -kurve.

Eksporterer til annen programvare

Når du har en anstendig design, kan det være lurt å bruke den i en annen programvare. Du kan eksportere til STL, DWG og en rekke andre formater. Dine 3D-utskriftsentusiaster kan bruke STL-filene direkte i Slicer-programmene.

Alternativer

Et annet spennende alternativ er implisittcad. Denne programvaren er veldig i utvikling. Du må kjøre kommandolinjen, og det krever Haskell på systemet ditt. De fleste standardinstallasjoner har ikke Haskell!

Konklusjon

Til å begynne med er det veldig hardt å bruke OpenSCAD. Å komme forbi læringskurven er litt av en kamp, ​​men det er verdt det for mange brukere. Takk til prosjektene for å bidra til prosjektet. Du har mange funksjoner tilgjengelig på slutten av en Git -kommando. Bare å komme gjennom det grunnleggende om å lage mekaniske design gjennom kode endrer måten du tenker på former. Dette er gunstig selv om du fortsetter å bruke punkt og klikke for å lage dine andre prosjekter.

  • https: // www.OpenScad.org/dokumentasjon.html?versjon = 2019.05
  • http: // edutechwiki.uige.CH/EN/OPENSCAD_BEGINNERS_tutorial
  • https: // www.OpenScad.org/jukseark/indeks.html