CAD

openSCAD tutorial

openSCAD tutorial
Å lage en mekanisk del krever 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. Men når du begynner å lage et nytt mekanisk stykke, vil du kanskje ha andre metoder.

3D CAD-metoder lar deg se hele stykket slik 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 materiale med kommandoer på.

Hva gjør openSCAD så spesiell?

I openSCAD tegner du ikke noe med pekeren eller pennen. 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.

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

Hva er prosjektbehovet ditt??

Etter at du har lagt designet på et serviett, kan du tro at du trenger å se hva som skjer når du prøver å gjøre det til et fullstendig 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å biter 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?

Installasjon

OpenSCAD, tilgjengelig i standardregister for de fleste distribusjoner, kan også installeres ved hjelp av en snap og AppImage. Interessant er at du også har en andre pakke som inkluderer skruer, tannhjul og generiske former. Den nyeste pakken er i openscad-nightly snap.

sudo apt installerer openscad
sudo snap installerer openscad-nattlig

Hvis du vil bruke de medfølgende skruene som kommer som en egen pakke, kan du bruke distribusjonens repositorier.

sudo apt installerer openscad-mcad

Å bruke de medfølgende delene er en annen sak, dekket lenger ned.

Flere standardformer

Prinsippene for skript CAD er at du har noen få geometriske standardformer. Du bruker disse figurene og kombinerer dem i mer komplekse former. Standardformene er sirkel, firkant og polygon for 2D. For 3D har du en kule, terning, sylinder og polyhedron. Ved å bruke noen av disse til å bygge og andre til å kutte, kan du lage svært komplekse former.

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

I tillegg kan du ekstrudere former fra eksisterende objekter.

Transformasjoner

Som standard lager du alle brikkene i midtpunktet i rutenettet i alle dimensjoner. Dette gjør at de alle overlapper hverandre. Når du har en rekke former, vil du ha dem plassert på riktig sted og rotert. Disse funksjonene er de enkle, oversetter setter objektet på et annet sted. Roter kommandoen roterer objektet eller underordnede objekter. Du har også speilfunksjonen, som lager en kopi av objektet speilet rundt den gitte akselen.

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

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

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

Boolske operasjoner

Mange brikker 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 forening, forskjell og skjæringspunkt.

union ()
kube ([35, 5, 2], center = true);
sylinder (h = 2, r = 5, sentrum = sann);

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

forskjell ()
sylinder (h = 15, r1 = 30, r2 = 30, sentrum = sann);
sylinder (h = 15, r1 = 25, r2 = 25, sentrum = sann);

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, sentrum = sann);
oversette (5,5,5)
sylinder (h = 40, r = 6, sentrum = sann);

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 det samme stykket mange ganger, bør du vurdere en uteplass. De er vanligvis laget av flere planker med mellomrom mellom seg. I dette tilfellet lager du en planke og bare iterer over dem med en for loop.

gap = 8;
plankebredde = (sengebredde / 4) - gap;
num_planks = 4;
for (plank_x_pos = [0: 1: num_planks - 1])

oversett ([plank_width * plank_x_pos + gap * plank_x_pos, 0,0])
kube ([plankebredde, 4200]);

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

Matematikk

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

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

Ovennevnte funksjon skaper en lang rett rad med sylindere med ulik høyde. Hovedfunksjonene er koblet til trigonometri. Imidlertid, med tilfeldige avrundingsfunksjoner og standardoperatører, kan du lage stort sett alt. Det er også støtte for vektorer, matriser og kvadratrot. Selv med disse funksjonene kan du komme veldig langt. Imidlertid dekker de 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 installere openscad-mcad

Inne i denne pakken finner du både moduler og funksjoner. Før du starter et prosjekt, se etter biblioteker og moduler. Det er allerede et bibliotek med skruer, og det er bare begynnelsen. Mangler en del av designet ditt? Lag dine egne moduler; du bruker dem til å lage nye stykker. Når du bruker parametere, kan du lage mange versjoner av dem. Den beste måten å lage en modul på er å lage designet 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 til en inkluderingsuttalelse øverst i filen. Vær oppmerksom på forskjellen mellom "inkluder" -utsagnet og "bruk" -uttalelsen. Hvis du vil at alt i en fil skal kjøres, inkluderer du det. Hvis du bare vil definere moduler og funksjoner, bruk "filen". For å sikre at du kan bruke modulene, må du plassere dem i modellens nåværende katalog eller en av søkebanene.

La oss først se på noen 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, opprett en fil som inneholder inkluderingsuttalelsen for modulen du trenger. Nå, hvor som helst du vil bruke modulen, kan du bruke navnet på modulen til å lage skruen din.

inkludere ;
ball_groove (12, 40, 2);

Dette er en skrue som kan passe 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 laget en metode du kan bruke. Et annet eksempel er et hull for en bolt.

inkludere
forskjell ()
kube ([12,16,20], sentrum = sann);
oversette ([0,0, -3])
boltHole (8, lengde = 300);

Ovennevnte kode skaper et hull som er stort nok til 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 til skruene i parametriske bokser, så kan du se hvordan et bibliotek hjelper.

Å lage en vogn

For å lage konstruksjoner av hvilken som helst 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 å sette variabler. For en enkel vogn trenger du høyde, akselavstand og lengde. Du må sette verdiene på ett sted og bruke dem for å få delene til å passe rundt designet. Du trenger kanskje flere verdier, men ikke legg dem alle når du begynner. Når du starter et nytt prosjekt, vil du ikke ha alle delene klare, så vær forberedt på å endre ting rundt.

akselavstand = 150;
kartlengde = akselavstand * 1.2;
vognbredde = 50;
whillediameter = 25;
opphengshøyde = (whillediameter / 2) + 5;
oversett ([akselavstand / 2, vognbredde, 0])
roter ([90,0,0])
sylinder (r = hjulradius, 10, sentrum = sann);
translate ([akselavstand / 2, - (cartwidth), 0])
roter ([90,0,0])
sylinder (r = hjulradius, 10, sentrum = sann);

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 alt går, legger du bare til en terning. Bruk variablene du legger i koden.

oversette ([0, 0, fjæringshøyde])
kube ([cartlength, cartwidth, 10], center = true);

Denne flaken er i samme høyde som hjulene, skjønt, så vi tok oss av det med fjæringshøydeverdien. Den oversatte utsagnet påvirker det som er rett etter. Merk at det ikke er noen semikolon på slutten av en linje. Når utsagnene blir lange, bruker du krøllete bukseseler 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. Det beste er faktisk å bruke de samme verdiene.

oversett ([akselavstand / 2,0,0])
roter ([90,0,0])
sylinder (r = hjulradius * 0.25, h = (cartwidth * 2) + 15, center = true);

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

// Suspensjon
oversett ([akselavstand / 2, 0, fjæringshøyde])
roter ([90,0,0])

forskjell ()
sylinder (r = opphengshøyde, 10, senter = sant);
sylinder (r = fjæringshøyde - 5, 11, sentrum = sann);
kube ([102, opphengshøyde / 6, 12], sentrum = sann);

oversett ([suspensjonshøyde, 0, 0])
sylinder (r = opphengshøyde / 3, h = 12, senter = sann);
oversette ([- opphengshøyde, 0, 0])
sylinder (r = fjæringshøyde / 3, h = 12, sentrum = sann);

Denne koden skaper en veldig rå suspensjon; den bruker bare sylindere, så det blir ikke best når du begynner å bruke den. Det illustrerer en måte å skape design på fra primitivene; sylinder, kube, og vel, det er det for denne modellen. Når du utvikler deg, vil du lage hvert stykke til en modul og plassere disse delene.

Koden for handlekurven er tilgjengelig på https: // github.com / matstage / Carriage! Videre utvikling kan komme senere.

Biblioteker

I den tidligere delen brukte du bare sirkler. Enhver design som bare bruker disse primitivene, vil ikke være den beste for alle applikasjoner. Du må lage flotte 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 deres og deretter nådig deler det med alle andre. Takk til dere alle! Et godt eksempel er dotSCAD; for fjæringseksemplet kan du finne en Bézier-kurve.

Eksport til annen programvare

Når du har et anstendig design, vil du kanskje bruke det i en annen programvare. Du kan eksportere til stl, dwg og en rekke andre formater. Dine 3D-utskriftsentusiaster kan bruke stl-filene direkte i dine skiverprogrammer.

Alternativer

Et annet spennende alternativ er ImplicitCAD. 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

Ved første øyekast er det veldig vanskelig å 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 på. Dette er gunstig selv om du fortsetter å bruke pek og klikk for å lage dine andre prosjekter.

  • https: // www.openscad.org / dokumentasjon.html?versjon = 2019.05
  • http: // edutechwiki.unige.ch / no / OpenScad_beginners_tutorial
  • https: // www.openscad.org / cheatsheet / index.html
Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...