CAD

openSCAD tutorial

openSCAD tutorial
At lave en mekanisk del kræver en tegning. Det startede med papir, og de første CAD-programmer brugte nøjagtig samme stil. Der er endda standard kvadrater på tegningerne, så hver tegning identificeres. Alt dette er nyttigt, når du begynder at gå i produktion i store virksomheder. Men når du begynder at fremstille et nyt mekanisk stykke, vil du måske have andre metoder.

3D CAD-metoder giver dig mulighed for at se hele stykket, som det er. Du kan også dreje og dreje det. I avanceret software kan du også simulere bevægelse. I alle tilfælde tegner du brikkerne ved hjælp af en grafisk grænseflade. Dette er fantastisk til fremstilling af kasser og cylindre, men når du vil lave mere komplekse former, har du muligvis brug for matematiske metoder.

Indtast en standard måde at beskrive ethvert materiale med kommandoer på.

Hvad gør openSCAD så speciel?

I openSCAD tegner du ikke noget med din markør eller pen. Du koder hele stykket med kommandoer og funktioner. Dette er akavet for mekaniske ingeniører, men for programmører har du en anden situation. Bortset fra personlig præference har du også fordelen ved præcision. Når du designer det med kode, har du præcisionen der i koden.

Den mest kraftfulde funktion ved openSCAD er binære operationer. Du kan bruge binære operatorer til at sætte stykker sammen eller skære materiale ud. Det er let at fremstille en terning med et hul i midten ved at trække cylinderen tilbage fra terningen. Nogle af disse operationer er tilgængelige i anden CAD-software, men det falder naturligt at bruge dem i openSCAD.

Hvad er dit projekt behov?

Når du har sat dit design på et serviet, tror du måske, at du har brug for at se, hvad der sker, når du prøver at gøre det til et fuldt design. Bare rolig; der er et eksempelvindue, som du kan se på, mens du koder. Når du først har forstået de grundlæggende ideer, ved du, om det passer bedst til dit projekt.

Kort sagt, hvis du vil oprette små stykker, der har komplekse former, skal du prøve openSCAD. For fuldt udstyr og mekaniske systemer vil du bruge mere avancerede grafiske applikationer. Når det er sagt, er det hele et spørgsmål om smag. Du kan lave komplicerede figurer med bare kode, ville du overveje at kode en hel bil?

Installation

OpenSCAD, der er tilgængelig i dine standardlagre til de fleste distributioner, kan også installeres ved hjælp af et snap og AppImage. Interessant er, at du også har en anden pakke, der inkluderer skruer, gear og generiske former. Den nyeste pakke er i openscad-night snap.

sudo apt installer openscad
sudo snap installerer openscad-nightly

Hvis du vil bruge de medfølgende skruer, der kommer som en separat pakke, skal du bruge din distributions opbevaringssteder.

sudo apt installerer openscad-mcad

Brug af de medfølgende dele er en anden sag, der er dækket længere nede.

Flere standardformer

Principperne for scripting CAD er, at du har et par geometriske standardformer. Du bruger disse former og kombinerer dem til mere komplekse former. Standardformerne er cirkel, firkant og polygon til 2D. Til 3D har du en kugle, terning, cylinder og polyhedron. Ved at bruge nogle af disse til at bygge og andre til at skære, kan du oprette meget komplekse former.

Der er også en tekstfunktion, der opretter en 2D-tekst. Når du har brug for at oprette tegninger til videre behandling, kan du bruge projektionskommandoen. Denne kommando klipper en 3D-form langs et plan, så du kan overføre den til en tegning. Du kan også tilføje figurer fra andre programmer eller endda billeder ved hjælp af importkommandoen. Dette fungerer også med 3D-former.

Derudover kan du ekstrudere figurer fra eksisterende objekter.

Transformationer

Som standard opretter du alle brikker i midten af ​​gitteret i alle dimensioner. Dette får dem alle til at overlappe hinanden. Når du har et antal former, vil du have dem placeret på det rigtige sted og roteret. Disse funktioner er de enkle, oversætter sætter objektet et andet sted. Roter kommandoen roterer objektet eller underordnede objekter. Du har også spejlfunktionen, som opretter en kopi af objektet, der spejles omkring den givne aksel.

De andre transformationer har brug for eksempler for at forklare. Kort sagt skaber skroget de ydre linjer i mange former. Prøv med to cirkler og kombiner dem med skroget (). Eller koden nedenfor.

oversæt ([- 10,0,0])
skrog ()
cylinder (30, 5, 1);
terning (9);
kugle (12);

Minkowski-operationen bruges normalt til at skabe kanter; hvis du vil have dem afrundede, skal du bruge en kugle.

Boolske operationer

Mange stykker kan ikke oprettes med kun firkanter, cylindre og kugler. Den første ting du kan gøre er at kombinere og klippe mange former i en enkelt form. Du bruger boolske operatører til at gøre dette. De er forening, forskel og kryds.

Union()
terning ([35, 5, 2], center = sand);
cylinder (h = 2, r = 5, center = sand);

I koden ovenfor får du et enkelt stykke, der har en pære i midten. For at lave et rør tager du forskellen mellem en cylinder og en anden.

forskel ()
cylinder (h = 15, r1 = 30, r2 = 30, center = sand);
cylinder (h = 15, r1 = 25, r2 = 25, center = sand);

Når vi går videre, vil du bruge disse og mere. Her er et eksempel på et kryds.

vejkryds()

roter ([45,0.0])
cylinder (h = 40, r = 4, center = sand);
oversæt (5,5,5)
cylinder (h = 40, r = 6, center = sand);

Skæringspunktet efterlader kun de overlappende ting; du kan oprette mange figurer ved hjælp af denne metode.

Til sløjfer

Mange af dine designs vil have det samme stykke mange gange, overvej en gårdhave. De er normalt lavet af flere planker med mellemrum imellem. I dette tilfælde laver du en planke og bare gentager dem med en for-løkke.

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

oversæt ([plank_width * plank_x_pos + gap * plank_x_pos, 0,0])
terning ([plankebredde, 4.200]);

Uden for-løkken ville du have skrevet kuben og oversat udsagn fire gange. Du ville også have været nødt til at beregne, hvor langt ud den næste planke ville gå. Selv med kun fire stykker ser denne løsning meget lettere ud. I eksemplet kan du også se variabler, der skal indstilles. Alle variabler er indstillet til kompileringstid, dette er vigtigt, da du kan støde på fejlretningsproblemer, hvis du tænker på dem som værdier i andre programmeringssprog. Som du vil se senere, kan du også gøre hele terrassen til et modul.

Matematik

Inkluderet i openSCAD har du et par matematiske funktioner til rådighed. Understøttede funktioner er de fleste trigonometriske funktioner, afrunding på forskellige måder og logaritmisk funktion. Du kan se et eksempel nedenfor.

for (i = [0:36])
oversæt ([i * 10,0,0])
cylinder (r = 5, h = cos (i * 10) * 50 + 60);

Ovenstående funktion skaber en lang lige række af cylindre med forskellig højde. Hovedfunktionerne er forbundet med trigonometri. Men med tilfældige afrundingsfunktioner og standardoperatørerne kan du oprette stort set alt. Der er også understøttelse af vektorer, matricer og kvadratrod. Selv med disse funktioner kan du komme virkelig langt. De dækker dog ikke alt, hvad du kan forestille dig; i stedet kan du oprette funktioner.

Moduler og funktioner

Du har mange moduler inkluderet i openSCAD-installationen. Du kan dog også downloade andre biblioteker. I din distribution finder du sandsynligvis MCAD, også kaldet openscad-mcad. For at installere under Ubuntu.

$ sudo apt installerer openscad-mcad

Inde i denne pakke finder du både moduler og funktioner. Før du starter et projekt, skal du kigge rundt efter biblioteker og moduler. Der er allerede et bibliotek med skruer, og det er kun begyndelsen. Mangler en del af dit design? Lav dine egne moduler; du bruger dem til at lave nye stykker. Når du bruger parametre, kan du lave mange versioner ud af dem. Den bedste måde at oprette et modul på er at lave designet som en separat fil, finde ud af, hvad der skal være dynamisk, og tilføje 'modul' rundt om stykket.

For at bruge et modul kalder du det ved dets navn. Da mange moduler findes i separate filer, skal du placere en inkluderingserklæring øverst i din fil. Vær opmærksom på forskellen mellem "inkluder" -erklæringen og "brug" -erklæringen. Hvis du vil have, at alt i en fil skal udføres, "inkluderer" du det, hvis du kun vil have moduler og funktioner defineret, "brug" filen. For at sikre at du kan bruge modulerne, skal du placere dem i din models aktuelle bibliotek eller en af ​​søgestierne.

Lad os først se på et par, du kan downloade og bruge.

Skruer

I pakken fra det tidligere afsnit kan du finde en masse ting. En gruppe er skruer! Du kan prøve dem ved at indlæse dem i applikationen og ringe til modulet. I MCAD-biblioteket kan du finde mange skruer. Der er mange andre samlinger fra andre kilder. For at bruge en skrue skal du oprette en fil, der indeholder include-erklæringen til det modul, du har brug for. Nu, hvor som helst du vil bruge modulet, kan du bruge modulets navn til at oprette din skrue.

omfatte ;
ball_groove (12, 40, 2);

Dette er en skrue, der kan passe en kugle. Du kan også finde nuts_and_bolts_scad, der definerer metriske skruer og bolte. Designerne brugte et websted, hvor du kan finde bolte og skabte en metode, du kan bruge. Et andet eksempel er et hul til en bolt.

omfatte
forskel ()
terning ([12,16,20], center = sand);
oversæt ([0,0, -3])
boltHole (8, længde = 300);

Ovenstående kode skaber et hul, der er stort nok til M8-bolten, dette eksempel skaber en terning og skærer to cylindre i to størrelser ud. Det er ikke særlig kompliceret, men kompleksiteten vokser hurtigt, når du bruger andre komponenter. Tilføj skruerne til parametriske kasser, og du kan se, hvordan et bibliotek hjælper.

At lave en vogn

For at lave enhver konstruktion af enhver kompleksitet skal du lave et stykke ad gangen. Senere kombinerer du dem med hinanden. Som vi har nævnt tidligere, kan du bruge moduler og funktioner. Den bedste måde at komme i gang er at beslutte, hvor du har brug for at indstille variabler. For en simpel vogn har du brug for højde, akselafstand og længde. Du skal indstille værdierne ét sted og bruge dem til at få delene til at passe rundt i designet. Du har muligvis brug for flere værdier, men læg dem ikke alle, når du starter. Når du starter et nyt projekt, har du ikke alle dele klar, så vær forberedt på at ændre tingene rundt.

akselafstand = 150;
cartlength = akselafstand * 1.2;
vognbredde = 50;
whillediameter = 25;
ophængshøjde = (hvidt diameter / 2) + 5;
oversæt ([akselafstand / 2, vognbredde, 0])
roter ([90,0,0])
cylinder (r = hjulradius, 10, center = sand);
oversæt ([akselafstand / 2, - (vognbredde), 0])
roter ([90,0,0])
cylinder (r = hjulradius, 10, center = sand);

Koden viser koden for de første to hjul. Hvis du tænker lidt over det, kan du sandsynligvis lave baghjulene. For at tilføje flak, overfladen hvor alle tingene går, skal du bare tilføje en terning. Brug de variabler, du sætter i koden.

oversæt ([0, 0, ophængshøjde])
terning ([cartlength, cartwidth, 10], center = true);

Denne flak er dog i samme højde som hjulene, så vi passede på det med ophængets højde. Den oversatte erklæring påvirker, hvad der er direkte efter. Bemærk, at der ikke er nogen semikolon i slutningen af ​​en linje. Når udsagnene indeni bliver lange, bruger du krøllede seler omkring det.

Nu skal du tilføje aksler og affjedring. Akslerne kan være enkle cylindre, der går mellem hjulene. Du placerer dem på samme måde som du gjorde hjulene ved hjælp af rotere og oversætte. Faktisk er det bedste at bruge de samme værdier.

oversæt ([akselafstand / 2,0,0])
roter ([90,0,0])
cylinder (r = hjulradius * 0.25, h = (vognbredde * 2) + 15, center = sand);

Koden her sætter forakslen på plads. Bagakslen, jeg efterlader dig læseren til at finde ud af. Vi kan løse suspensionen på mange måder. I dette tilfælde holder vi det simpelt.

// Suspension
oversæt ([akselafstand / 2, 0, affjedringshøjde])
roter ([90,0,0])

forskel ()
cylinder (r = ophængningshøjde, 10, center = sand);
cylinder (r = ophængningshøjde - 5, 11, center = sand);
terning ([102, ophøjningshøjde / 6, 12], center = sand);

oversæt ([ophængningshøjde, 0, 0])
cylinder (r = ophængningshøjde / 3, h = 12, center = sand);
oversæt ([- ophængningshøjde, 0, 0])
cylinder (r = ophængningshøjde / 3, h = 12, center = sand);

Denne kode skaber en meget rå suspension; det bruger kun cylindre, så det bliver ikke det bedste, når du begynder at bruge det. Det illustrerer en måde at skabe design på fra primitiverne; cylinder, terning og godt, det er det til denne model. Når du skrider frem, vil du gøre hvert stykke til et modul og placere disse stykker.

Koden til vognen er tilgængelig på https: // github.com / matstage / Carriage! Yderligere udvikling kan komme senere.

Biblioteker

I den tidligere del brugte du kun cirkler. Ethvert design, der kun bruger disse primitiver, er ikke det bedste til alle applikationer. Du skal skabe flotte og effektive designs. Løsningen er matematik! For at tilføje dette skal du starte med at bruge andres biblioteker.

Der er et stort antal biblioteker bygget af smarte mennesker i samfundet. De mennesker, der bygger, er brugere, der løser deres problemer og derefter nådigt delte det med alle andre. Tak til jer alle! Et godt eksempel er dotSCAD; til suspension eksempel kan du finde en Bézier kurve.

Eksport til anden software

Når du først har et anstændigt design, vil du måske bruge det i en anden software. Du kan eksportere til stl, dwg og en række andre formater. Dine 3D-udskrivningsentusiaster kan bruge stl-filerne direkte i dine slicer-programmer.

Alternativer

Et andet spændende alternativ er ImplicitCAD. Denne software er meget under udvikling. Du skal køre kommandolinjen, og det kræver Haskell på dit system. De fleste standardinstallationer har ikke Haskell!

Konklusion

Ved første øjekast er det meget svært at bruge openSCAD. At komme forbi læringskurven er lidt af en kamp, ​​men det er det værd for mange brugere. Tak til projekterne for at bidrage til projektet. Du har mange tilgængelige funktioner i slutningen af ​​en git-kommando. Bare at komme igennem det grundlæggende ved at skabe mekaniske designs gennem kode ændrer den måde, du tænker på figurer på. Dette er gavnligt, selvom du fortsætter med at bruge peg og klik for at lave dine andre projekter.

  • https: // www.openscad.org / dokumentation.html?version = 2019.05
  • http: // edutechwiki.unige.ch / da / OpenScad_beginners_tutorial
  • https: // www.openscad.org / cheatsheet / index.html
Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...