OpenSCADi algajate juhend: 3D -prinditud mudelite programmeerimine

OpenSCADi algajate juhend: 3D -prinditud mudelite programmeerimine

Kas olete alati tahtnud kujundada oma 3D -mudeleid? Aga teie kavandatud osa 3D -printimine? Ümberringi on palju 3D modelleerimisprogramme, kuid neid võib olla raske kasutada, kui te pole kunstiline (nagu mina). OpenSCAD pakub võimalust kujundada mudeleid spetsiaalselt 3D -printimiseks, kasutades ainult koodi . Ärge muretsege, kui te ka ei tea, kuidas kodeerida, täna juhendan teid põhitõdedega.





Mis on OpenSCAD?

OpenSCAD on tasuta Kindel arvutipõhine disain modelleerija. See on saadaval Windowsi, Maci ja Linuxi jaoks. Paljude teiste programmide puhul eristab seda see, et kujundate osi hiire asemel koodi abil. Nii on väga lihtne teha matemaatilisi arvutusi, salvestada mõõtmeid muutujatesse, muuta osade suurust ja palju muud.





3D -printimise mudelite puhul peate arvestama mõningate teguritega, kuid paljud neist kehtivad 3D -printimise CAD -mudelite kohta üldiselt, mitte ainult OpenSCAD -disainilahenduste kohta. Kui soovite 3D -printimise kohta rohkem teada saada, lugege meie Ultimate Beginner'i juhendit. Kui otsite interaktiivsemat modelleerijat, lugege Sketchupis objektide loomise juhendit.



Seadistamine

Kõigepealt minge lehele allalaadimised lehel ja leidke oma operatsioonisüsteemile sobiv OpenSCAD -i versioon. Ma kasutan Mac OS -i, kuid need OpenSCAD põhimõtted kehtivad kõikidele süsteemidele.

Kui olete installinud, jätkake ja avage see. Teile esitatakse see käivitusmenüü:



See näitab teile viimati avatud faile ja annab võimaluse mõned näited laadida. Vaadake julgelt mõningaid näiteid, kuid leidsin, et need tegid asjad esmakordselt alustades segasemaks. Selle õpetuse jaoks looge uus fail, klõpsates nuppu uus nuppu.

Pärast avamist kuvatakse teile see palja välimusega liides:





See on jagatud kolmeks põhivaldkonnaks. Vasakul on sinu oma toimetaja ja menüü. Siin kirjutate oma koodi. Uue faili loomisel pole sellel veel koodi. Ülaosas on mõned menüünupud põhiülesannete täitmiseks, nagu laadimine, salvestamine, tagasivõtmine jne.





All paremal on konsool . See näitab teile mudeli koostamisel tekkinud vigu.

Viimane lõik on peamine liides üleval paremal. Siin saate oma mudeliga suhelda, kuid te ei saa seda siin muuta (kirjutate selleks koodi).

vaadake uusi filme tasuta, ilma registreerimiseta

Selle põhiliidese allosas on mitu nuppu. Need võimaldavad teil peamiselt vaadata oma disaini erineval viisil.

Jätkake ja salvestage uus fail, vajutades nuppu salvestamise nupp aastal toimetaja menüü või minnes Fail > Salvesta .

Põhitõed

OpenSCAD töötab enamiku ajast lihtsate kujundite liitmise ja lahutamise kaudu. Sel viisil saate luua väga keerukaid mudeleid, nii et hüppame kohe sisse.

Siin on esimene kuju, lihtne kast:

Ja siin on kood selle tootmiseks:

cube(); // create a cube

Koodi käivitamiseks ja mudeli koostamiseks peate selle eelvaate nägema. OpenSCAD teeb seda vaikimisi iga kord, kui salvestate, või võite vajutada F5 värskenduse sundimiseks. Katsetage 3D -ruumis liikumist, hoides all hiire vasakut või paremat nuppu.

Nüüd annab see kena kuubiku, kuid ilma mõõtmeteta pole see kohutavalt kasulik. OpenSCAD ei tööta üheski konkreetses mõõtesüsteemis, selle asemel on kõik üksused üksteise suhtes. Saate luua kasti 20 x 10 ja nende tõlgendamine, olgu see siis mõõdik või keiserlik, on ükskõik millise muu programmi (nt teie 3D -printimislõikuri) ülesanne. See annab tegelikult suure paindlikkuse.

Lisame teie kuubikule mõned mõõtmed. Seda teete parameetrite edastamisel kuubik meetod:

cube(size = [10, 20, 30]); // rectangle

Väärtused 10 , kakskümmend ja 30 esindavad kuubi suurust X , JA ja KOOS telg. Pange tähele, kuidas see on tekitanud palju suurema ristküliku:

Vaikimisi joonistab OpenSCAD komponendid vasakult altpoolt. Saate seda reguleerida, seadistades Keskus parameeter kuni tõsi . Siin on kood ristküliku tegemiseks:

cube(size = [10, 20, 30], center = true); // rectangle centered

Ja see näeb välja selline:

kuidas veebisaite enda eest blokeerida

Objektide tsentreerimine sobib hästi lihtsate kujundite puhul, kuid muudab asja mittesümmeetriliste objektide jaoks keeruliseks. Peate otsustama, milline meetod teile kõige paremini sobib.

Liikudes edasi keerukamale kujule, siin on a silinder :

Siin on kood selle loomiseks:

cylinder(d = 10, h = 10, center = true); // cylinder

Erinevalt kuubikud , silindrid joonistatakse automaatselt X- ja Y -telje keskele. The d parameeter tähistab läbimõõduga (soovi korral võite selle asemel raadiuses edasi minna). The h parameeter on kõrgus. Midagi on siin siiski valesti. See silinder tundub üsna 'blokeeritud'. Peate suurendama ümbermõõdule joonistatud nägude arvu. Seda on lihtne teha - lisage ballooni koodile järgmine parameeter.

$fn = 100

Seega muutub silindri määratlus järgmiselt:

cylinder(d = 10, h = 10, center = true, $fn = 100);

See näeb välja selline:

See suurendab ringide tegemiseks vajalike nägude arvu - 100 on hea lähtepunkt. Pidage meeles, et see suurendab oluliselt renderdusaegu, eriti keeruliste mudelite puhul, nii et tavaliselt on parem see välja jätta, kuni olete projekteerimise lõpetanud.

Kujudele on lihtne teisendusi rakendada. Enne kujundite loomist peate helistama erimeetoditele. Siit saate teada, kuidas ballooni pöörata pöörlema meetod:

rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder

Väärtused läksid edasi et parameeter tähistab X, Y ja Z telje pöördenurka. Siin on tulemus:

Teine väga kasulik funktsioon on tõlkida . See võimaldab teil objekte 3D -ruumis liigutada. Jällegi peate iga telje jaoks liikuma. Siin on tulemus:

Siin on kood:

translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder

Mõistmine tõlkida meetod on üks olulisemaid asju, mida saate teha. See on vajalik kõige keerukamate kujunduste kujundamiseks.

Lõpuks on veel üks kasulik kuju a sfäär :

Siin on kood:

parim videotöötlustarkvara youtube jaoks
sphere(d = 100);

Nii nagu silindrit, saate seda siluda, kasutades nuppu $ fn kood ülal.

Täiustatud kodeerimine

Nüüd, kui teate põhitõdesid, vaatame mõningaid arenenumaid oskusi. Osa projekteerimisel aitab mõelda, kuidas seda saaks väiksematest kujunditest ja esemetest kokku panna. Te ei pea seda tegema ja te saate asju aja jooksul välja mõelda, kuid see aitab umbkaudset plaani koostada - isegi kui see on ainult teie peas.

Loome täiustatud kuju: õõneskera sisemusega kuubik. Loo kuubik ja a sfäär koos Keskus seadistatud tõele. Lahutage üks teisest, kasutades vahe meetod:

difference() {
// subtraction
cube(size = [50, 50, 50], center = true); // outer cube
sphere(d = 65, center = true); // inner sphere
}

Siin on tulemus:

Katsetage läbimõõduga ( d sfääri parameeter) ja vaadake, mis juhtub.

OpenSCADis on tavaliselt sama ülesande täitmiseks palju võimalusi. Kui soovite kuubikus soont, võite sellest teise kuubi lahutada või selle kohale lisada veel kaks. Tavaliselt ei ole oluline, millisel viisil asju tehakse, kuid sõltuvalt osa keerukusest võib esmalt olla lihtsam teatud manipulatsioone teha.

Siit saate teada, kuidas kanalit kuubis luua. Teise kuubi kasutamise asemel loob silindri kasutamine ümardatud kanali. Pange tähele, kuidas vahe meetodit kasutatakse uuesti ja kuidas tõlkida ja pöörlema kujunditega manipuleerimiseks kasutatakse meetodeid. Kasutades pöörlema meetod muudab muutused sageli keeruliseks, nii et mängige parameetritega, kuni saavutate soovitud tulemuse. Siin on kood:

difference() {
// subtraction
cube(size = [50, 150, 50]); // outer cube
translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel
}

See näeb välja selline:

Teil võib tekkida küsimus, mis on kõik rohelised asjad. See on siin, sest 3D -mudel on praegu vaid eelvaade. Selle parandamiseks vajutage F6 mudeli täielikuks renderdamiseks. See võib võtta aega, sõltuvalt keerukusest. Eelvaade ( F5 ) on tavaliselt töötamise ajal piisavalt hea. Siin näeb välja lõplik renderdus (koos $ fn 100):

Siin on veel üks arenenud näide. Oletame, et soovite midagi kinnitada poldi abil. Aukude loomine on piisavalt lihtne silinder , aga mis siis, kui soovite, et poldipea loputus oleks paigaldatud süvistatud poltide jaoks? Võite lihtsalt luua suure silindri, kuhu poldipea sisse istuda, kuid see ei tunduks väga kena. Lahenduseks on faasimine, mille saate luua silinder meetod. Siin on trikk kahe läbimõõdu määramiseks - d1 ja d2 . Tehke need erinevad suurused ja OpenSCAD teeb ülejäänu.

Kuna olen britt, kasutan siin M5 süvistatud poldi jaoks mõõdikuid. Saate seda hõlpsalt reguleerida, et see sobiks kõigi kinnitusdetailidega, mida soovite kasutada. Siin on kood:

$fn = 100;
// bolt settings
m5_clearance_diameter = 5.5;
m5_head_clearance_diameter = 11;
m5_head_depth = 5;
difference() {
// subtract
cube(20, 20, 20);
bolt_hole(10, 10, 20);
bolt_bevel(10, 10, 15);
}
module bolt_hole(x, y, height) {
/* M5 hole at 90 deg. */
translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height);
}
module bolt_bevel(x, y, z) {
// M5 bevel
translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth);
}

Pange tähele, kuidas poltide mõõtmed muutujatesse salvestatakse? See muudab kodeerimise ja hooldamise palju lihtsamaks. Üks meetod, millega te ehk pole veel kohanud, on moodul . See võimaldab teil määratleda koodiploki, mida igal ajal käivitada. Tegelikkuses on see a funktsiooni . Peaksite kasutama moodulid ja muutujad mis tahes keeruka kuju jaoks, kuna need hõlbustavad asjade lugemist ja muudavad muudatusi kiiremini. Kujundus näeb välja järgmine:

Vaatame ühte viimast näidet. Oletame, et soovite ringikujulisi auke teha. Saate neid kõiki käsitsi mõõta, tõlkida ja pöörata, kuid isegi moodulitega oleks see tüütu. Siin on lõpptulemus, 10 silindrit jaotati isegi ringi ümber:

Siin on kood:

$fn = 100;
number_of_holes = 10;
for(i = [1 : 360 / number_of_holes : 360]) {
// number_of_holes defines number of times this code runs
make_cylinder(i);
}
module make_cylinder(i) {
// make cylinder and even distribute
rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2);
}

See kood on lihtsam kui arvate. A eest silmust kasutatakse helistamiseks make_cylinder moodulit kümme korda. Kuna ringis on 360 kraadi ja 360/10 = 36, tuleb iga silindrit pöörata 36 kraadi kaupa. Selle tsükli iga kordamine suurendab i muutuja 36. See silmus kutsub make_cylinder moodul, mis lihtsalt tõmbab silindri ja paigutab selle vastavalt silmuse poolt edastatud kraadidele. Saate joonistada rohkem või vähem silindreid, muutes aukude arv muutuja - kuigi võib -olla soovite vahekaugust reguleerida. Siin näeb välja 100 silindrit, need kattuvad veidi:

Eksportimine

Nüüd, kui teate, kuidas OpenScadis kodeerida, on enne mudelite 3D -printimist vaja teha viimane etapp. Peate oma disaini OpenSCADist standardisse eksportima STL enamiku 3D -printerite kasutatav vorming. õnneks on olemas eksport STL -nupule: Redaktori menüü > Üleval paremal :

See on tänaseks. Nüüd peaks teil olema suurepärased OpenSCADi kasutamise oskused - kõik keerulised asjad põhinevad nendel alustel ja paljud keerukad kujundid koos on tõesti palju lihtsaid kujundeid.

Väljakutse saamiseks vaadake mõningaid meie 3D -printimisprojekte ja proovige OpenSCADi osi uuesti luua:

Kas õppisite täna uusi trikke? Mis on teie lemmik OpenSCAD -funktsioon? Kas vahetate peagi mõne muu CAD -tööriista? Andke meile sellest allpool kommentaarides teada!

Jaga Jaga Piiksuma E -post Kuidas Google'i sisseehitatud mullitasemele Androidis juurde pääseda

Kui teil on kunagi olnud vaja veenduda, et midagi on näpuotsaga tasemel, saate nüüd mõne sekundiga oma telefonile mullitaseme.

Loe edasi
Seotud teemad
  • Isetegija
  • Programmeerimine
  • 3D printimine
  • 3D modelleerimine
Autori kohta Joe Coburn(136 artiklit avaldatud)

Joe on lõpetanud arvutiteaduse Ühendkuningriigi Lincolni ülikoolis. Ta on professionaalne tarkvaraarendaja ja kui ta ei lennuta droonidega ega kirjuta muusikat, võib teda sageli leida pildistamas või videoid tootmas.

Rohkem Joe Coburnilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin