CAD

openSCAD oktatóanyag

openSCAD oktatóanyag
Mechanikus alkatrész készítéséhez rajz szükséges. Papírral kezdődött, és az első CAD programok pontosan ugyanazt a stílust használták. A rajzokon még szabványos négyzetek is vannak, így minden rajz azonosítható. Mindez akkor hasznos, ha elkezdi a termelést nagyvállalatoknál. Amikor azonban elkezd egy új mechanikus darabot készíteni, más módszerekre is szükség lehet.

A 3D CAD módszerek lehetővé teszik, hogy az egész darabot úgy nézze meg, ahogy van. Meg is csavarhatja és megfordíthatja. A fejlett szoftverekben a mozgást is szimulálhatja. Minden esetben grafikus felület segítségével rajzolja meg a darabokat. Ez nagyszerű dobozok és hengerek készítéséhez, de ha összetettebb alakzatokat szeretne készíteni, szükség lehet matematikai módszerekre.

Adjon meg egy szabványos módszert bármilyen anyag leírására parancsokkal.

Mitől olyan különleges az openSCAD?

Az openSCAD-ben nem rajzol semmit sem a mutatójával, sem a tollával. Parancsokkal és függvényekkel kódolja az egész darabot. Ez kínos a gépészmérnökök számára, de a programozók számára más helyzet áll elő. A személyes preferenciák mellett a precizitás előnye is van. Ha kóddal tervezed, akkor ott van a pontosság a kódban.

Az openSCAD legerősebb tulajdonsága a bináris műveletek. Használhat bináris operátorokat darabok összerakására vagy anyag kivágására. Könnyű olyan kocka készítése, amelynek közepén lyuk van, ha visszahúzza a hengeret a kockából. Ezen műveletek egy része más CAD szoftverekben is elérhető, de természetesen az OpenSCAD-ben való felhasználás esete.

Milyen igényei vannak a projektnek?

Miután szalvétára helyezte a tervét, úgy gondolhatja, hogy látnia kell, mi történik, amikor megpróbálja teljes formában elkészíteni. Ne aggódj; van egy előnézeti ablak, amelyet meg lehet nézni a kódolás közben. Miután megértette az alapötleteket, tudni fogja, hogy ezek a legjobban illenek-e a projektjéhez.

Röviden, ha összetett formájú apró darabokat szeretne létrehozni, próbálja ki az openSCAD-ot. Teljes felszerelés és mechanikus rendszerek esetén fejlettebb grafikus alkalmazásokat szeretne használni. Ennek ellenére mindez ízlés kérdése. Csak kóddal készíthet bonyolult alakzatokat, fontolóra venné egy egész autó kódolását?

Telepítés

Az OpenSCAD, amely a legtöbb disztribúcióhoz elérhető a szokásos adattárakban, egy snap és AppImage segítségével is telepíthető. Érdekes, hogy van egy második csomagod is, amely csavarokat, fogaskerekeket és általános formákat tartalmaz. A legújabb csomag az openscad-nightly pillanatban található.

sudo apt install openscad
sudo snap install openscad-nightly

Ha a mellékelt csavarokat külön csomagként szeretné használni, használja a disztribúció tárházait.

sudo apt install openscad-mcad

A mellékelt alkatrészek használata egy másik kérdés, amelyet tovább lefedünk.

Több szabványos forma

A CAD szkriptelésének alapelve az, hogy van néhány szabványos geometriai alakja. Ezeket az alakzatokat használja, és összetettebb alakzatokká egyesíti. A szokásos alakzatok kör, négyzet és sokszög a 2D-hez. A 3D-hez van gömb, kocka, henger és poliéder. Ezek némelyikének felépítéséhez, mások kivágásához nagyon összetett alakzatokat hozhat létre.

Van egy szöveges funkció is, amely 2D szöveget hoz létre. Ha rajzokat kell készítenie a további feldolgozáshoz, használhatja a vetítés parancsot. Ez a parancs egy 3D-s alakot vág le egy sík mentén, így átviheti azt egy rajzba. Az import paranccsal más programokból vagy akár képekből is hozzáadhat alakzatokat. Ez 3D-alakzatokkal is működik.

Ezenkívül kihúzhatja a formákat a meglévő tárgyakból.

Átalakulások

Alapértelmezés szerint az összes darabot a rács középpontjában hozza létre, minden dimenzióban. Ez mind átfedi egymást. Ha számos alakzata megvan, azt szeretné, hogy a megfelelő helyre kerüljenek, és elforgassák őket. Ezek a funkciók az egyszerűek, a fordítás egy másik helyre teszi az objektumot. A forgatás parancs elforgatja az objektumot vagy a gyermekobjektumokat. Megvan a tükör funkció is, amely létrehozza az adott tengely körül tükrözött objektum másolatát.

A többi átalakításhoz példákra van szükség a magyarázathoz. Röviden: a hajótest sokféle forma külső vonalát hozza létre. Két körrel próbálkozzon, és kombinálja őket a hajótesttel (). Vagy az alábbi kódot.

lefordítani ([- 10,0,0])
hajótest ()
henger (30, 5, 1);
kocka (9);
gömb (12);

A Minkowski műveletet általában élek létrehozására használják; ha kerekíteni szeretné őket, használjon gömböt.

Logikai műveletek

Sok darab nem hozható létre csak négyzetekkel, hengerekkel és gömbökkel. Az első dolog, amit megtehet, az az, hogy sok alakzatot egyesít és egyetlen alakúra vág. Ehhez logikai operátorokat használ. Ezek egyesülés, különbség és metszéspont.

szakszervezet ()
kocka ([35, 5, 2], középpont = igaz);
henger (h = 2, r = 5, középpont = igaz);

A fenti kódban egyetlen darabot kap, amelynek közepén egy izzó található. A cső elkészítéséhez vegye a különbséget az egyik henger és a másik között.

különbség ()
henger (h = 15, r1 = 30, r2 = 30, középpont = igaz);
henger (h = 15, r1 = 25, r2 = 25, középpont = igaz);

Ahogy haladunk, ezeket és még többet fogja használni. Itt van egy kereszteződés példa.

útkereszteződés()

forgatás ([45,0.0])
henger (h = 40, r = 4, középpont = igaz);
lefordítani (5,5,5)
henger (h = 40, r = 6, középpont = igaz);

A kereszteződésnél csak az átfedő dolgok maradnak; sok alakzatot hozhat létre ezzel a módszerrel.

A hurkok számára

Sok tervednek sokszor ugyanaz a darabja lesz, fontold meg a teraszt. Általában több deszkából készülnek, amelyek között rések vannak. Ebben az esetben egy deszkát készít, és csak iterál át rajtuk egy for hurokkal.

rés = 8;
deszka_szélesség = (ágyszélesség / 4) - rés;
szám_deszkák = 4;
for (plank_x_pos = [0: 1: deszkák száma - 1])

fordítás ([deszka_szélesség * deszka_x_posz + rés * deszka_x_posz, 0,0])
kocka ([deszka_szélesség, 4 200]);

A for ciklus nélkül négyszer írta volna meg a kockát és fordította le az utasításokat. Azt is ki kellett volna számolnia, hogy a következő deszka milyen messzire megy. Csak négy darabbal is sokkal könnyebbnek tűnik ez a megoldás. A példában láthatók azok a változók is, amelyeket be kell állítani. Minden változó fordítási időben van beállítva, ez fontos, mivel hibakeresési problémákba ütközhet, ha más programozási nyelvek értékeként gondolja őket. Amint később látni fogja, az egész teraszt is modullá teheti.

Matematika

Az openSCAD-ben található néhány matematikai funkció elérhető. A támogatott jellemzők a legtöbb trigonometrikus függvény, különböző módon kerekítve és logaritmikus függvényként. Az alábbiakban láthat egy példát.

(i = [0:36])
fordítás ([i * 10,0,0])
henger (r = 5, h = cos (i * 10) * 50 + 60);

A fenti funkció egy hosszú, egyenes, eltérő magasságú hengersorot hoz létre. A fő funkciók a trigonometriához kapcsolódnak. Véletlenszerű, kerekítő funkciókkal és a standard operátorokkal azonban nagyjából mindent létrehozhat. Támogatottak a vektorok, a mátrixok és a négyzetgyök is. Ezekkel a funkciókkal is igazán messzire juthat. Nem fedik le azonban mindazt, amit csak el tudsz képzelni; ehelyett létrehozhat funkciókat.

Modulok és funkciók

Számos modul van az openSCAD telepítésében. Ugyanakkor más könyvtárakat is letölthet. A disztribúcióban valószínűleg megtalálható az MCAD, más néven openscad-mcad. Telepítés Ubuntu alatt.

$ sudo apt install openscad-mcad

Ebben a csomagban modulokat és funkciókat egyaránt talál. Mielőtt bármilyen projektet elkezdene, nézzen körül könyvtárak és modulok után. Már van egy csavarkönyvtár, és ez még csak a kezdet. Hiányzik a tervezés egy része? Készítsen saját modulokat; új darabok készítéséhez használod fel őket. A paraméterek használatakor számos verziót készíthet belőlük. A modul létrehozásának legjobb módja az, ha a fájlt külön fájlként készíti el, kitalálja, hogy mi legyen dinamikus, és adjon hozzá „modult” a darab köré.

A modul használatához a nevén hívja. Mivel sok modul külön fájlban érkezik, a fájl tetejére egy include utasítást kell tenni. Ügyeljen az „include” és a „use” utasítás közötti különbségre. Ha azt akarja, hogy egy fájlban minden fusson, akkor azt „be kell vonni”, ha csak modulokat és függvényeket szeretne megadni, akkor „használja” a fájlt. A modulok használatának biztosítása érdekében be kell helyeznie őket a modell aktuális könyvtárába vagy az egyik keresési útvonalba.

Először nézzünk meg néhányat, amelyet letölthet és használhat.

Csavarok

A korábbi szakasz csomagjában sok minden megtalálható. Az egyik csoport csavar! Kipróbálhatja úgy, hogy betölti őket az alkalmazásba, és meghívja a modult. Az MCAD könyvtárban sok csavart találhat. Sok más gyűjtemény más forrásból származik. A csavar használatához hozzon létre egy fájlt, amely tartalmazza a szükséges modul include utasítását. Most, bárhol szeretné használni a modult, használhatja a modul nevét a csavar létrehozásához.

tartalmazza ;
ball_groove (12, 40, 2);

Ez egy csavar, amely elfér egy golyón. Megtalálhatja azt is nuts_and_bolts_scad, amely meghatározza a metrikus csavarokat és csavarokat. A tervezők egy weboldalt használtak, ahol csavarokat találnak, és létrehoztak egy módszert az Ön számára. Egy másik példa egy lyuk egy csavarhoz.

tartalmazza
különbség ()
kocka ([12,16,20], középpont = igaz);
fordítás ([0,0, -3])
boltHole (8, hossz = 300);

A fenti kód elég nagy lyukat hoz létre az M8 csavar számára. Ez a példa létrehoz egy kockát, és kivág két két hengeret. Ez nem túl bonyolult, de más összetevők használatakor a bonyolultság gyorsan növekszik. Tegye a csavarokat a paraméterdobozokba, és láthatja, hogy a könyvtár hogyan segít.

Szekér készítése

Bármilyen összetettségű konstrukció elkészítéséhez egy darabot kell készítenie. Később összekapcsolod őket egymással. Mint korábban említettük, használhat modulokat és funkciókat. Az indulás legjobb módja, ha eldönti, hová kell beállítania a változókat. Egy egyszerű kocsihoz magasságra, tengelytávra és hosszúságra van szükség. Be kell állítania az értékeket egy helyre, és fel kell használniuk, hogy az alkatrészek illeszkedjenek a tervezéshez. Lehet, hogy több értékre lesz szüksége, de ne tegye mindet, amikor elindul. Amikor új projektet indít, akkor nem lesz minden része készen, ezért készüljön fel arra, hogy megváltoztassa a dolgokat.

tengelytáv = 150;
szekérhossz = tengelytáv * 1.2;
cartwidth = 50;
wheeldiameter = 25;
felfüggesztési magasság = (wheeldiameter / 2) + 5;
lefordítani ([tengelytáv / 2, kocsi szélessége, 0])
forgatás ([90,0,0])
henger (r = kerék sugara, 10, közép = igaz);
lefordítani ([tengelytáv / 2, - (cartwidth), 0])
forgatás ([90,0,0])
henger (r = kerék sugara, 10, közép = igaz);

A kód az első két kerék kódját mutatja. Ha kicsit gondolkodik rajta, akkor valószínűleg elkészítheti a hátsó kerekeket. Ahhoz, hogy hozzáadja a pelyhet, azt a felületet, ahová az összes cucc kerül, csak hozzá kell adnia egy kockát. Használja a kódba beillesztett változókat.

lefordítani ([0, 0, felfüggesztési magasság])
kocka ([cartlength, cartwidth, 10], center = true);

Ez a pelyhek ugyanabban a magasságban vannak, mint a kerekek, ezért a felfüggesztési magasság értékével gondoskodtunk erről. A lefordított állítás befolyásolja azt, ami közvetlenül utána következik. Vegye figyelembe, hogy a vonal végén nincs pontosvessző. Amikor a benne lévő állítások hosszúakká válnak, göndör zárójeleket használ körülötte.

Most hozzá kell adnia a tengelyeket és a felfüggesztést. A tengelyek lehetnek egyszerű hengerek, amelyek a kerekek között mennek. Ugyanúgy helyezi el őket, mint a kerekeket forgatással és fordítással. Valójában a legjobb ugyanazokat az értékeket használni.

fordítás ([tengelytáv / 2,0,0])
forgatás ([90,0,0])
henger (r = kerék sugara * 0.25, h = (cartwidth * 2) + 15, center = true);

A kód itt elhelyezi az első tengelyt. A hátsó tengely, hagyom, hogy az olvasó kitalálja. A felfüggesztést sokféleképpen tudjuk megoldani. Ebben az esetben egyszerűek leszünk.

// Felfüggesztés
lefordítani ([tengelytáv / 2, 0, felfüggesztési magasság])
forgatás ([90,0,0])

különbség ()
henger (r = felfüggesztési magasság, 10, középpont = igaz);
henger (r = felfüggesztési magasság - 5, 11, közép = igaz);
kocka ([102, felfüggesztési magasság / 6, 12], középpont = igaz);

fordítás ([felfüggesztési magasság, 0, 0])
henger (r = felfüggesztési magasság / 3, h = 12, közép = igaz);
lefordítani ([- suspensionheight, 0, 0])
henger (r = felfüggesztési magasság / 3, h = 12, közép = igaz);

Ez a kód nagyon durva felfüggesztést hoz létre; csak hengereket használ, így nem lesz a legjobb, amikor elkezdi használni. Illusztrálja a primitívek alkotásának egyik módját; henger, kocka, és hát, ennyi ez a modell. Haladás közben minden egyes darabot modullá tesz, és elhelyezi ezeket a darabokat.

A kosár kódja a https: // github oldalon érhető el.com / matstage / Carriage! További fejlemények később jöhetnek.

Könyvtárak

A korábbi részben csak köröket használtál. Azok a tervek, amelyek csak ezeket a primitíveket használják, nem lesznek a legjobbak minden alkalmazáshoz. Jó megjelenésű és hatékony terveket kell készítenie. A megoldás a matematika! Ehhez először mások könyvtárainak használatát kell használnia.

A közösségben nagy számban vannak intelligens emberek által épített könyvtárak. Az építők olyan felhasználók, akik megoldják problémáikat, és ezt aztán kegyesen megosztják másokkal. Köszönet mindannyiotoknak! Jó példa a dotSCAD; a felfüggesztés példájához talál egy Bézier-görbét.

Exportálás más szoftverekbe

Ha rendben van a tervezés, érdemes használni egy másik szoftverben. Exportálhat stl, dwg és sok más formátumba. A 3D-nyomtatás rajongói az stl fájlokat közvetlenül a szeletelő programokban használhatják.

Alternatívák

Egy másik izgalmas alternatíva az ImplicitCAD. Ez a szoftver nagyon fejlesztés alatt áll. Futtatnia kell a parancssort, és a rendszeren Haskell szükséges. A legtöbb standard telepítés nem rendelkezik Haskell-lel!

Következtetés

Először nagyon nehéz az openSCAD használata. A tanulási görbén való túljutás kissé küzdelmes, de sok felhasználó számára megéri. Köszönet a projektekhez való hozzájáruláshoz. Számos funkció áll rendelkezésre a git parancs végén. A mechanikai tervek létrehozásának alapjainak áttekintése a kód segítségével megváltoztatja az alakzatokról való gondolkodásmódot. Ez akkor is előnyös, ha folytatja a point and click használatát a többi projekt elkészítéséhez.

  • https: // www.openscad.org / dokumentáció.html?verzió = 2019.05
  • http: // edutechwiki.unige.ch / en / OpenScad_beginners_tutorial
  • https: // www.openscad.org / cheatsheet / index.html
Az 5 legjobb játékrögzítő kártya
Mindannyian láttuk és szerettük a YouTube-on a streaming játékokat. A PewDiePie, a Jakesepticye és a Markiplier csak néhány a legnépszerűbb játékosok ...
Hogyan lehet játékot fejleszteni Linuxon
Egy évtizeddel ezelőtt nem sok Linux-felhasználó jósolta, hogy kedvenc operációs rendszerük egy napon a videojátékok népszerű játékplatformja lesz. El...
Kereskedelmi játékmotorok nyílt forráskódú portjai
Ingyenes, nyílt forráskódú és platformokon átívelő játékmotorok szabadidős programjai felhasználhatók a régi, valamint a meglehetősen friss játékcímek...