CAD

openSCAD-zelfstudie

openSCAD-zelfstudie
Voor het maken van een mechanisch onderdeel is een tekening nodig. Het begon met papier en de eerste CAD-programma's gebruikten precies dezelfde stijl. Er zijn zelfs standaard vierkanten op de tekeningen, zodat elke tekening wordt geïdentificeerd. Dit alles is handig wanneer u in grote bedrijven in productie gaat. Wanneer u echter een nieuw mechanisch stuk gaat maken, wilt u misschien andere methoden.

Met 3D CAD-methoden kunt u het hele stuk zien zoals het is. Je kunt het ook draaien en draaien. In geavanceerde software kun je ook beweging simuleren. In alle gevallen teken je de stukken met een grafische interface. Dit is geweldig voor het maken van dozen en cilinders, maar als je complexere vormen wilt maken, heb je misschien wiskundige methoden nodig.

Voer een standaardmanier in om materiaal te beschrijven met opdrachten.

Wat maakt openSCAD zo speciaal?

In openSCAD teken je niets met je aanwijzer of pen. Je codeert het hele stuk met commando's en functies. Dit is lastig voor werktuigbouwkundigen, maar voor programmeurs heb je een andere situatie. Naast persoonlijke voorkeur heb je ook het voordeel van precisie. Wanneer je het met code ontwerpt, heb je de precisie daar in de code.

De krachtigste functie van openSCAD zijn binaire bewerkingen. U kunt binaire operatoren gebruiken om stukken samen te voegen of materiaal uit te snijden. Het is gemakkelijk om een ​​kubus te maken met een gat in het midden door de cilinder uit de kubus te trekken. Sommige van deze bewerkingen zijn beschikbaar in andere CAD-software, maar het is logisch om ze in openSCAD te gebruiken.

Wat zijn uw projectbehoeften??

Nadat je je ontwerp op een servet hebt gezet, denk je misschien dat je moet zien wat er gebeurt als je probeert er een volledig ontwerp van te maken. Maak je geen zorgen; er is een voorbeeldvenster waar u naar kunt kijken terwijl u codeert. Zodra u de basisideeën begrijpt, weet u of dit het beste bij uw project past.

Kortom, als je kleine stukjes met complexe vormen wilt maken, moet je openSCAD proberen. Voor volledige uitrusting en mechanische systemen wilt u meer geavanceerde grafische toepassingen gebruiken. Dat gezegd hebbende, het is allemaal een kwestie van smaak. Je kunt ingewikkelde vormen maken met alleen code, zou je overwegen een hele auto te coderen??

Installeren

OpenSCAD, beschikbaar in uw standaard repositories voor de meeste distributies, kan ook worden geïnstalleerd met een handomdraai en AppImage. Interessant is dat je ook een tweede pakket hebt met schroeven, tandwielen en generieke vormen. Het nieuwste pakket is in de openscad-nightly snap.

sudo apt installeer openscad
sudo snap install openscad-nightly

Als je de meegeleverde schroeven wilt gebruiken die als apart pakket worden geleverd, gebruik dan de repositories van je distributie.

sudo apt install openscad-mcad

Het gebruik van de meegeleverde onderdelen is een andere zaak, die verderop wordt behandeld.

Verschillende standaardvormen

De principes van het scripten van CAD is dat je een paar standaard geometrische vormen hebt. Je gebruikt deze vormen en combineert ze tot complexere vormen. De standaardvormen zijn cirkel, vierkant en polygoon voor 2D. Voor 3D heb je een bol, kubus, cilinder en veelvlak. Door sommige hiervan te gebruiken om te bouwen en andere om te snijden, kunt u zeer complexe vormen maken.

Er is ook een tekstfunctie die een 2D-tekst maakt. Wanneer u tekeningen moet maken voor verdere verwerking, kunt u het projectiecommando gebruiken. Deze opdracht snijdt een 3D-vorm langs een vlak zodat u deze naar een tekening kunt overbrengen. U kunt ook vormen toevoegen uit andere programma's of zelfs afbeeldingen, met behulp van de importopdracht. Dit werkt ook met 3D-vormen.

Bovendien kunt u vormen uit bestaande objecten extruderen.

Transformaties

Standaard maakt u alle stukken in het middelpunt van het raster in alle dimensies. Hierdoor overlappen ze allemaal. Als je eenmaal een aantal vormen hebt, wil je ze op de juiste plek laten plaatsen en roteren. Deze functies zijn de eenvoudige, vertalen plaatst het object op een andere plaats. De opdracht roteren roteert het object of onderliggende objecten. Je hebt ook de spiegelfunctie, die een kopie maakt van het object gespiegeld rond de gegeven as.

De andere transformaties hebben voorbeelden nodig om uit te leggen. Kortom, de romp creëert de buitenste lijnen van vele vormen. Probeer met twee cirkels en combineer ze met hull(). Of de onderstaande code.

vertalen([-10,0,0])
romp()
cilinder (30, 5, 1);
kubus (9);
bol(12);

De Minkowski-bewerking wordt meestal gebruikt om randen te maken; als je ze afgerond wilt hebben, gebruik dan een bol.

Booleaanse bewerkingen

Veel stukken kunnen niet worden gemaakt met alleen vierkanten, cilinders en bollen. Het eerste dat u kunt doen, is vele vormen combineren en in één enkele vorm snijden. U gebruikt hiervoor booleaanse operatoren. Ze zijn unie, verschil en intersectie.

unie()
kubus([35, 5, 2], middelpunt = waar);
cilinder (h = 2, r = 5, midden = waar);

In de bovenstaande code krijg je een enkel stuk met een lamp in het midden. Om een ​​buis te maken, neem je het verschil tussen de ene cilinder en de andere.

verschil()
cilinder (h = 15, r1 = 30, r2 = 30, centrum = waar);
cilinder(h = 15, r1 = 25, r2 = 25, midden = waar) ;

Naarmate we verder gaan, ga je deze en meer gebruiken. Hier is een voorbeeld van een kruispunt.

kruispunt()

roteren([45,0.0])
cilinder( h = 40, r = 4, midden = waar);
vertalen(5,5,5)
cilinder( h = 40, r = 6, midden = waar);

Intersection laat alleen de overlappende dingen achter; je kunt met deze methode veel vormen maken.

Voor lussen

Veel van je ontwerpen zullen vaak hetzelfde stuk hebben, overweeg een patio. Ze zijn meestal gemaakt van meerdere planken met openingen ertussen. In dit geval maak je één plank en itereer je er gewoon overheen met een for-lus.

tussenruimte = 8;
plank_width = (bed_width / 4) - opening;
aantal_planken = 4;
for(plank_x_pos = [0:1:aantal_planken - 1])

vertalen([plank_breedte*plank_x_pos + opening * plank_x_pos,0,0])
kubus([plankbreedte,4.200]);

Zonder de for-lus zou je de kubus vier keer hebben geschreven en uitspraken hebben vertaald. Je had ook moeten berekenen hoe ver de volgende plank zou gaan. Zelfs met slechts vier stukken ziet deze oplossing er veel gemakkelijker uit. In het voorbeeld ziet u ook variabelen die moeten worden ingesteld. Alle variabelen worden tijdens het compileren ingesteld, dit is belangrijk omdat u problemen met debuggen kunt tegenkomen als u ze als waarden in andere programmeertalen beschouwt. Zoals je later zult zien, kun je van het hele terras ook een module maken.

Wiskunde

Inbegrepen in openSCAD, je hebt een paar wiskundige functies beschikbaar. Ondersteunde functies zijn de meeste trigonometrische functies, afronding op verschillende manieren en logaritmische functie. Hieronder zie je een voorbeeld.

voor(i=[0:36])
vertalen([i*10,0,0])
cilinder(r=5,h=cos(i*10)*50+60);

De bovenstaande functie creëert een lange rechte rij cilinders van verschillende hoogte. De belangrijkste functies zijn verbonden met trigonometrie. Met willekeurige, afrondingsfuncties en de standaardoperators kun je echter vrijwel alles maken. Er is ook ondersteuning voor vectoren, matrices en vierkantswortel. Zelfs met deze functies kun je heel ver komen. Ze dekken echter niet alles wat je maar kunt bedenken; in plaats daarvan kunt u functies maken.

Modules & Functies

Je hebt veel modules opgenomen in de openSCAD-installatie. U kunt echter ook andere bibliotheken downloaden. In uw distributie vindt u waarschijnlijk MCAD, ook wel openscad-mcad genoemd. Installeren onder Ubuntu.

$ sudo apt install openscad-mcad

In dit pakket vind je zowel modules als functies. Kijk voordat je aan een project begint rond voor bibliotheken en modules. Er is al een bibliotheek met schroeven, en dat is nog maar het begin. Er ontbreekt een deel van je ontwerp? Maak je eigen modules; je gebruikt ze om nieuwe stukken te maken. Als je parameters gebruikt, kun je er veel versies van maken. De beste manier om een ​​module te maken, is door het ontwerp als een apart bestand te maken, uit te zoeken wat dynamisch moet zijn en 'module' rond het stuk toe te voegen.

Om een ​​module te gebruiken, noem je hem bij zijn naam. Omdat veel modules in aparte bestanden staan, moet je een include-statement bovenaan je bestand plaatsen. Let op het verschil tussen de "include" -verklaring en de "use" -verklaring. Als u wilt dat alles in een bestand wordt uitgevoerd, "voegt u het toe", als u alleen modules en functies wilt definiëren, "gebruikt" u het bestand. Om er zeker van te zijn dat u de modules kunt gebruiken, moet u ze in de huidige map van uw model of in een van de zoekpaden plaatsen.

Laten we eerst eens kijken naar een paar die u kunt downloaden en gebruiken.

Schroeven

In het pakket uit het eerdere gedeelte kun je veel dingen vinden. Een groep zijn schroeven! Je kunt ze uitproberen door ze in de applicatie te laden en de module aan te roepen. In de MCAD-bibliotheek kun je veel schroeven vinden. Er zijn veel andere collecties uit andere bronnen. Om een ​​schroef te gebruiken, maak je een bestand aan dat de include-instructie bevat voor de module die je nodig hebt. Nu, overal waar u de module wilt gebruiken, kunt u de naam van de module gebruiken om uw schroef te maken.

omvatten ;
ball_groove (12, 40, 2);

Dit is een schroef waar een bal in past. U kunt ook vinden nuts_and_bolts_scad, die metrische schroeven en bouten definieert. De ontwerpers hebben een website gebruikt waar je bouten kunt vinden en hebben een methode gemaakt die je kunt gebruiken. Een ander voorbeeld is een gat voor een bout.

omvatten
verschil()
kubus([12,16,20],centrum = waar);
vertalen([0,0,-3])
boltHole (8, lengte = 300);

De bovenstaande code maakt een gat dat groot genoeg is voor de M8-bout, dit voorbeeld maakt een kubus en snijdt twee cilinders van twee maten uit. Dat is niet heel ingewikkeld, maar de complexiteit groeit snel als je andere componenten gebruikt. Voeg de schroeven toe aan parametrische dozen en u kunt zien hoe een bibliotheek helpt.

Een kar maken

Om elke constructie van enige complexiteit te maken, moet je één stuk tegelijk maken. Later combineer je ze met elkaar. Zoals we eerder hebben vermeld, kunt u modules en functies gebruiken. De beste manier om te beginnen is om te beslissen waar u variabelen moet instellen. Voor een eenvoudige kar heb je hoogte, wielbasis en lengte nodig. U moet de waarden op één plaats instellen en ze gebruiken om de onderdelen rond het ontwerp te laten passen. Mogelijk hebt u meer waarden nodig, maar plaats ze niet allemaal wanneer u begint. Wanneer je een nieuw project start, heb je niet alle onderdelen klaar, dus wees voorbereid om dingen te veranderen.

wielbasis = 150;
karlengte = wielbasis * 1.2;
winkelwagenbreedte = 50;
wieldiameter = 25;
ophanghoogte = (wieldiameter/2) + 5;
vertalen([wielbasis/2,wagenbreedte,0])
roteren([90,0,0])
cilinder (r = wielradius, 10, midden = waar);
translate([wielbasis/2,-(wagenbreedte),0])
roteren([90,0,0])
cilinder (r = wielradius, 10, midden = waar);

De code toont de code voor de eerste twee wielen. Als je er een beetje over nadenkt, kun je waarschijnlijk de achterwielen maken. Om het luchtafweergeschut toe te voegen, het oppervlak waar al het spul naartoe gaat, voeg je gewoon een kubus toe. Gebruik de variabelen die u in de code plaatst.

translate([0, 0, ophanghoogte])
kubus([cartlength, cartwidth,10], center = true);

Dit luchtafweergeschut bevindt zich echter op dezelfde hoogte als de wielen, dus daar hebben we voor gezorgd met de waarde van de ophangingshoogte. De vertaalde verklaring heeft invloed op wat er direct achter staat. Merk op dat er geen puntkomma aan het einde van een regel staat. Als de uitspraken binnenin lang worden, gebruik je er accolades omheen.

Nu moet u assen en ophanging toevoegen. De assen kunnen eenvoudige cilinders zijn die tussen de wielen gaan. Je plaatst ze op dezelfde manier als de wielen met draaien en vertalen. In feite is het het beste om dezelfde waarden te gebruiken.

vertalen([wielbasis/2,0,0])
roteren([90,0,0])
cilinder(r = wielradius * 0.25 , h = (wagenbreedte * 2) + 15, midden = waar);

De code hier zet de vooras op zijn plaats. De achteras, ik laat u de lezer om erachter te komen. We kunnen de opschorting op vele manieren oplossen. In dit geval houden we het simpel.

// Opschorting
translate([wielbasis/2, 0, ophanghoogte ])
roteren([90,0,0])

verschil()
cilinder(r = ophanghoogte, 10, midden = waar);
cilinder (r = ophanghoogte - 5, 11, midden = waar);
kubus([102, suspensionheight/6, 12], center = true);

vertalen([ophanghoogte, 0, 0])
cilinder(r = ophanghoogte/3, h = 12, midden =waar);
translate([-suspensionheight, 0, 0])
cilinder(r = ophanghoogte/3, h = 12, midden =waar);

Deze code creëert een zeer ruwe schorsing; het gebruikt alleen cilinders, dus het zal niet de beste zijn als je het gaat gebruiken. Het illustreert wel één manier om ontwerpen uit de primitieven te maken; cilinder, kubus, en tja, dat is het voor dit model. Naarmate je vordert, maak je van elk stuk een module en plaats je die stukken.

De code voor de winkelwagen is beschikbaar op https://github.com/matstage/Carriage! Verdere ontwikkelingen kunnen later komen.

Bibliotheken

In het eerdere deel gebruikte je alleen cirkels. Alle ontwerpen die alleen die primitieven gebruiken, zijn niet de beste voor alle toepassingen. Je moet mooie en efficiënte ontwerpen maken. De oplossing is wiskunde! Om dit toe te voegen, moet je beginnen met het gebruik van de bibliotheken van andere mensen.

Er is een groot aantal bibliotheken gebouwd door slimme mensen in de gemeenschap. De mensen die bouwen zijn gebruikers die hun problemen oplossen en deze vervolgens genadig met iedereen delen. Dank aan jullie allemaal! Een goed voorbeeld is dotSCAD; voor het voorbeeld van de ophanging kun je een Bézier-curve vinden.

Exporteren naar andere software

Als je eenmaal een fatsoenlijk ontwerp hebt, wil je het misschien in een andere software gebruiken. U kunt exporteren naar stl, dwg en tal van andere formaten. Uw liefhebbers van 3D-printen kunnen de stl-bestanden rechtstreeks in uw slicer-programma's gebruiken.

alternatieven

Een ander spannend alternatief is ImplicitCAD. Deze software is volop in ontwikkeling. Je moet de opdrachtregel uitvoeren en het vereist Haskell op je systeem. De meeste standaardinstallaties hebben geen Haskell!

Conclusie

Op het eerste gezicht is het gebruik van openSCAD erg moeilijk. Het is een beetje een worsteling om voorbij de leercurve te komen, maar voor veel gebruikers is het de moeite waard. Dankzij de projecten om bij te dragen aan het project. Je hebt veel functies beschikbaar aan het einde van een git-opdracht. Alleen al het doornemen van de basisprincipes van het maken van mechanische ontwerpen door middel van code verandert de manier waarop u over vormen denkt. Dit is nuttig, zelfs als u aanwijzen en klikken blijft gebruiken om uw andere projecten te maken.

  • https://www.openscad.org/documentatie.html?versie=2019.05
  • http://edutechwiki.unige.ch/en/OpenScad_beginners_tutorial
  • https://www.openscad.org/cheatsheet/index.html
Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...
Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...