CAD

openSCAD cilindrs

openSCAD cilindrs
Gatavojot šo rakstu, es vēlējos uzzināt, kādiem cilvēkiem ir problēmas ar openSCAD. Man par pārsteigumu, visizplatītākais jautājums bija par cilindra izveidi. Ir cilindra komanda, par kuru vispirms uzzināsiet sīkāku informāciju. Pēc tam jūs redzēsiet novatoriskus veidus, kā izveidot cilindrus pēc savas gaumes. Jūs varat arī atņemt cilindrus no citiem gabaliem, lai izveidotu interesantākas lietas. Lielākā daļa lasītāju, kas šeit ierodas, iespējams, vēlas redzēt dobu cilindru vai kaut kādu cauruli. Turpiniet lasīt, mums ir daudz kas pieejams.

Balona komanda

Ja izmantojat vienkāršāko cilindra komandas versiju, jums būs nepieciešams tikai viens parametrs. Tas padara vienu cietu vienotu cilindru un neko vairāk. Jums jāņem vērā, ka šim cilindram būs standarta rādiuss un iekavās esošās vērtības augstums. Komandai tomēr ir daudz iespēju, izpētīsim tās.

cilindrs (r1 = 20);
cilindrs (r1 = 20, r2 = 5);
cilindrs (r1 = 20, h = 40);
cilindrs (r = 20, h = 40);
cilindrs (r1 = 20, r2 = 5, h = 40, centrs = taisnība);

Pirmajiem diviem cilindriem iepriekšminētajā kodā nav jēgas, jo tiem nav augstuma. Bieža kļūda ir tad, kad aizmirst vērtību, un tā neizskatās tā, kā esi iecerējis. Lietojot mainīgos, tas pats notiek, ja izmantojat nenoteiktu mainīgo. Šajā gadījumā augstumam, bet, palaižot, pārbaudiet konsoles žurnālu.

Konuss

Trešais ir konuss, iemesls ir tas, ka r2 vērtībai ir standarta izmērs. Izmēģiniet ceturto un redziet, kas notiks. Pēdējais izveido konusu, kurā jūs pilnībā kontrolējat izmērus. Šo ir vienkārši izmantot cietajiem konusiem. Jūs iestatāt divus rādiusus un augstumu, un esat pabeidzis. Jūs varat arī izmantot diametru, ja tas jums labāk atbilst.

Centrs = patiesā vērtība ir derīga z asij, atstājot konusu pusceļā no “zemes”. Noklusējums ir nepatiesa, kas liek konusa apakšai nonākt uz “zemes”, tā teikt. Varat arī izvēlēties, cik tuvu konusu sienas ir apļveida, izmantojot parametru '$ fn'.

Dobs cilindrs

Hei, pagaidi mazliet! Tas rada tikai cietus gabalus, kā es tos urbšu? Jūs jautājat, paldies! ES tev pateikšu. Atbilde ir atšķirīga. Komanda, kas ir. Apsveriet zemāk redzamo kodu, tajā ir divi cilindri, kas ir aptverti ar cirtainām iekavām un komandu starpība.

starpība ()
cilindrs (r = 30, h = 40);
cilindrs (r = 28, h = 41);

Vienkārši sakot, kad jums ir vairāki gabali, tad jūs nogriezat materiālu no pirmā gabala, izmantojot visus nākamos gabalus. Šajā gadījumā jūs izgriezat cilindru no cilindra. Ja vēlaties izgriezt jebkuru citu formu, varat to izdarīt arī. Izmēģiniet kubu vai sfēru! Ievērojiet interesantos un dažreiz postošos efektus, kurus $ fn vērtība var atstāt uz šo kodu.

Dobais konuss

To var izdarīt arī ar konusu, vienkārši izmantojiet dubultās rādiusa vērtības. Tā kā jūs definējat abus konusus, jūs daudz kontrolējat gala rezultātu. Vienkāršākais dobais konuss ir tikai divi konusi viens otra iekšpusē ar materiāla biezumu.

starpība ()
cilindrs (r1 = 30, r2 = 12, h = 50);
cilindrs (r1 = 25, r2 = 7, h = 45);

Šis konuss ir pārklāts augšpusē, jūs varat to atvērt, vienkārši iestatot otro augstumu augstāk nekā pirmais. Tā kā jums ir divi cilindri, varat mainīt jebkuru no diviem. Piemēram, mainot otro cilindru, caur to var izgriezt taisnu atveri. Varat arī izvēlēties kubu, taču ņemiet vērā, ka tas var no konusa izgriezt pārāk daudz materiālu.

Piramīda

Tas var šķist nebūtisks, taču tas ir noderīgs triks, kas jums jāpatur prātā, turpinot izmantot openSCAD. Visi cilindri un citi elementi ir formas tuvinājums. Jūs iepriekš lasījāt par parametru $ fn, šeit to izmantojat. Paturot to prātā, jūs varat domāt: Piramīda ir konuss ar četrām malām. Pareizi! izmantojiet $ fn = 4, un jums ir konuss ar četrām malām, kas nozīmē piramīdu.

starpība ()
cilindrs (r1 = 30, r2 = 12, h = 40, $ fn = 4);
cilindrs (r1 = 25, r2 = 7, h = 35, $ ​​fn = 4);

Iekšējais cilindrs sagriež to pašu cilindru kā ārējais. Līdz sākat spēlēt ar parametru $ fn. Lai iepazītos ar šī parametra iedarbību, mēģiniet izveidot četrkājaino izkārnījumu. Kā $ fn parametrs ietekmē rezultātu? Arī kā jūs varat pārklāt augšējo vai apakšējo daļu?

Apvienojot daudzus

Lai daudz lietotu cilindrus, jums vajadzētu uzzināt, kā daudzus no tiem apvienot. Gala rezultāts var būt ļoti sarežģīts un dažreiz pat noderīgs. Viena iespēja ir uzlikt cilindra augšpusi. Lai to izdarītu labi, jums jāsāk izmantot mainīgos. Izveidojiet ieradumu likt tos dizaina augšgalā. Tas atvieglo moduļu izgatavošanu vēlāk.

biezums = 5;
baser = 30;
topr = 12;
augstums = 50;
savienība ()
// Apakšējais konuss
starpība ()
cilindrs (r1 = pamatne, r2 = topr, h = augstums);
cilindrs (r1 = pamatnes biezums, r2 = topr - biezums, h = augstums + biezums);

// Augšējā bumba
tulkot ([0, 0, augstums])
starpība ()
sfēra (r = topr);
sfēra (r = topr -biezs);
tulkot ([0, 0, -topr])
kubs (izmērs = topr * 2, centrs = taisnība);

Sākot no augšas, jums ir mainīgie. Tie ir paredzēti biezumam, pamatnes rādiusam, augšējam rādiusam un augstumam. Arodbiedrības paziņojums apvieno gabalus. Bikšturu iekšpusē jums ir konuss un pēc tam augšējā bumba. Tā kā viņi atrodas savienības iekšienē, beigās viņi kļūs par vienu gabalu. Jūs varat darīt vēl vairāk, ja izmantojat daudzus cilindrus daudzos leņķos.

Testa mēģenes izgatavošana

Pārejot no konusiem, izveidojiet mēģeni. Pirmkārt, jums jāapsver, kādas formas veido mēģeni. Galvenā daļa ir cilindrs, nekas grezns, tikai regulāra atšķirība starp diviem cilindriem. Ja iestatāt garumu kā mainīgo, varat izmantot šo vērtību kā atsauci. Jums jāzina, kur caurule beidzas un kļūst par pussfēru apakšā. Lai noteiktu sfēru, izmantosiet arī caurules rādiusu.

tubrs = 20;
tubl = 80;
biezums = 2;
starpība ()
cilindrs (r1 = tubr, r2 = tubr, h = tubl);
cilindrs (r1 = tubr - thickn, r2 = tubr - thickn, h = tubl);

Izmēģiniet to, un jums būs tikai vienkāršs cilindrs, lai izveidotu visu cauruli, kas jums jāizkausē kopā ar pusi sfēru. Noklusētajā openSCAD nav puslodes, jums tas ir jāizveido. Izmantojiet divu sfēru starpību, lai izveidotu dobu sfēru, pēc tam noņemiet vēl vienu kubu, kas nogriež sfēru.

starpība ()
sfēra (tubr);
sfēra (tubr - biezs);
tulkot ([0, 0, -tubr])
kubs (izmērs = tubr * 2, centrs = taisnība);

Tagad jums ir divi atsevišķi gabali. Nākamais solis ir tos salikt kopā. Šeit jūs varat izmantot komandu union. Tāpat kā komandu starpība, savienība visus gabalus ņem secībā. Savienībā kārtība nav tik svarīga, jo tā ir papildinājums. Kods izskatīsies nedaudz neglīts, jo mēs šeit neizmantojam moduļus.

savienība ()
// Galvenā caurule
starpība ()
cilindrs (r1 = tubr, r2 = tubr, h = tubl);
cilindrs (r1 = tubr - thickn, r2 = tubr - thickn, h = tubl);

// Apakšējā sfēra
tulkot ([0, 0, tubl])
starpība ()
sfēra (tubr);
sfēra (tubr - biezs);
tulkot ([0, 0, -tubr])
kubs (izmērs = tubr * 2, centrs = taisnība);


// Augšējais gredzens
starpība ()
cilindrs (r = tubrs + biezs, h = biezs);
cilindrs (r = tubrs, h = biezums);

Šeit mēs to izstrādājam otrādi, tas ir atkarīgs no jums. Dariet to, kas ir ērti konkrētajā gadījumā. Lietojot, to vienmēr var pagriezt. Augšējam gredzenam ir asas malas, to var novērst, izmantojot apli un pagriežot_pagriezt to. Ir arī citi veidi, kā to izdarīt, izpētīt un eksperimentēt!

rotate_extrude (izliekums = 10, $ fn = 100)
tulkot ([tubr, 0, 0])
aplis (r = biezs, $ fn = 100);

Apvienojot daudzus cilindrus

Kad esat izveidojis cauruli no vairākiem cilindriem, varat tos arī savienot dažādos veidos. Lai to izdarītu, varat vēlreiz izmantot savienību. Pieņemsim, ka vēlaties vienu mēģeni četrdesmit piecu grādu leņķī pret otru cauruli. Lai to izdarītu, novietojiet leņķisko cauruli līdz pusei uz augšu.

savienība ()
caurule (50, 4, 300);
tulkot ([0, 0, totlength / 2]) pagriezt ([45, 0, 0])
caurule (50, 4, 150);

Kad jūs to izmēģināt, tas izskatās lieliski no ārpuses. Ieskatoties iekšā, jūs redzat, ka jums ir abas veselas caurules. Īsais bloķē plūsmu garajā mēģenē. Lai to novērstu, jums jāizdzēš abi cilindri cauruļu iekšpusē. Jūs varat uzskatīt visu savienojumu par vienu gabalu un ievietot atbilstošos cilindrus aiz tā starpību.

starpība ()
savienība ()
caurule (50, 4, 300);
tulkot ([0, 0, totlength / 2]) pagriezt ([45, 0, 0])
caurule (50, 4, 150);


cilindrs (r = 50 - 4, h = kopējais garums);
tulkot ([0, 0, totlength / 2]) pagriezt ([45, 0, 0])
cilindrs (r = 50 - 4, h = kopējais garums / 2);

Kā redzat, pirmais cilindrs stiepjas visā caurules garumā. Tas izdzēsīs jebko lielās caurules iekšienē, bet ir jāizdzēš arī mazā caurule, kas ir noliekusies. Tulkošanas komanda pārvieto mēģeni uz augšu līdz pusei, tā pagriežas un ievieto cilindru mēģenes iekšpusē. Faktiski kods tiek kopēts no augšas, un caurule tiek aizstāta ar cilindru.

Santehnika

Ja vēlaties izgatavot vairāk cauruļu, varat izmantot moduli iepriekšējā piemērā un sākt paplašināt. Kods ir pieejams vietnē https: // github.com / matstage / openSCAD-Cilindri.Git, rakstīšanas laikā ir tikai šie divi, taču bieži pārbaudiet vēlreiz, lai redzētu vairāk. Jūs, iespējams, varēsit izveidot aizraujošākas lietas.

Bloka iekšpusē

Ja jūs vēlaties izgatavot iekšdedzes motoru, jums ir nepieciešama cilindriska caurums cietā gabalā. Zemāk ir sniegts visvienkāršākais piemērs, dzesēšanas kanāliem un virzuļiem ir daudz ko pievienot. Tas tomēr ir vēl vienu dienu.

moduļa cilindru bloks (
cilindrs R = 3,
Mala = 1,
cilindri = 8)

starpība ()
kubs ([cilindrsR * 2 + mala * 2,
cilindrsR * 2 * numCylinders + Edge * numCylinders + Edge, 10]);
priekš (x = [0: 1: numCylinders-1])
tulkot ([cilindrsR + mala, cilindrsR * x * 2 + mala * x + cilindrsR + mala, 0])
cilindrs (r = cilindrsR, h = 12);

Šeit jums ir kubs, kas aug atbilstoši cilindru skaitam, kuru vēlaties bloka iekšpusē. Visas vērtības modulī ir noklusējuma, lai jūs varētu tos izmantot bez vērtībām. Lai to izmantotu, izmantojiet 'use 'paziņojums faila augšdaļā un pēc tam pievienojiet cilindru bloku (numCylinders = 8). Varat izmantot vai izlaist jebkuru vērtību. Kad tās izlaidīsit, būs nepieciešama noklusējuma vērtība. Īsāk sakot, moduļa iekšpuse sākas ar vērtībām un pēc tam izveido kubu, kas ir pietiekami garš, lai ietilptu cilindros. Pēc tam tas turpinās, noņemot cilindrus ar paziņojumu for. Pateicoties paziņojumam, jūs varat izveidot lielāku vai mazāku bloku. Uzlabotākiem moduļiem varat noteikt ierobežojumus, kas maina dizainu, kad ir sasniegtas noteiktas vērtības. Varbūt jūs vēlaties to padarīt par V, ja tas ir 8 vai vairāk cilindri.

Ekstrudēšana no plakanas formas

Vēl viens cilindra izveides veids ir apļa izveidošana un izspiešana. Cietais cilindrs ir tikai divas līnijas:

lineārais ekstrakts (15)
aplis (20);

Tādējādi tiek izveidots 15 (bez vienībām openSCAD) garums ar 20 rādiusu. Diametru var izmantot, izmantojot parametru d. Vienkārši izveidot cilindru nav ļoti noderīgi, taču jūs varat izmantot to pašu tehniku ​​jebkurai 2D formai. To redzēsiet vēlāk. Kamēr dobs cilindrs, kods ir nedaudz garāks.

lineārais ekstrakts (15)
starpība ()
aplis (20);
aplis (18);

Tas ir tas pats, bet, kā mēs to darījām iepriekš, jūs noņemat centrālo apli. Varat arī saliekt to lokā, izmantojot versiju rotate_extrude. Tas ir lieliski piemērots virtuļu pagatavošanai, vienkāršākā versija izskatās tāda.

rotate_extrude (leņķis = 180, izliekums = 10)
tulkot ([30,0,0])
starpība ()
aplis (20);
aplis (10);

Šis kods izveido dobu pusloku. Piezīme, ar kuru jums vajadzētu būt piesardzīgam, tulkojums ir nepieciešams, vai arī jūs saņemsit kļūdu: “KĻŪDA: visiem rotateextrude () punktiem jābūt vienādai X koordinātu zīmei (diapazons ir -2.09 -> 20.00) ”. Skaitļi būs atkarīgi no apļa vērtības. Tā kā tas rada tādu pašu formu kā cilindrs, tas var šķist bezjēdzīgi. Tas nav! Vislabāk šo komandu var izmantot, lai plakana forma kaut kā funkcionētu. Rokasgrāmatā kā piemērs ir vienkāršs daudzstūris, tas rada apaļu formu, kur jūs varat darbināt jostu. Jūs to varat arī pagriezt apkārt. Zemāk redzamais kods izveido korķa skrūvi.

tulkot ([- 80,0,0])
linear_extrude (80, vērpjot = 900, mērogs = 2.0, šķēles = 100)
tulkot ([2, 0, 0])
kvadrāts (10);

Rokasgrāmatas piemērā parādīts daudzstūris, kas var būt noderīgs. Zemāk redzamais kods var būt jebkurš, kas jums patīk, bet parāda, kā to darīt šādā veidā.

tulkot ([0, -80, 0])
rotate_extrude (leņķis = 275)
tulkot ([12,3,2])
daudzstūris (punkti = [[0,0], [20,17], [34,12], [25,22], [20, 30]];

Varat eksperimentēt ar daudzstūra formu, līdz tas ir piemērots jūsu lietojumprogrammai. Ja tas šķiet nedaudz biedējošs, izmantojot tikai skaitļus, varat izveidot profilu citās CAD programmās un importēt dxf rezultātu, izmantojot komandu import ().

Secinājums

Balona izgatavošana ir vienkārša, bet tikai procesa sākums. Viltīgā daļa ir padarīt ar to kaut ko noderīgu. Jums tas arī jāiekļauj savā dizainā un, iespējams, jāizveido sarežģītāki jautājumi nekā cilindri. Atrodiet veidus un problēmas pastāvīgai zināšanu paplašināšanai, izmantojot openSCAD. Neaizmirstiet izmantot dokumentāciju un balstīties uz citu programmatūru, ja to nevar viegli sasniegt ar skaitļiem un tamlīdzīgiem. Kaut kas šajā ziņojumā nav apskatīts, ir tas, ka jūs varat uzzīmēt saturu pakalpojumā Inkscape un Blender un importēt to uz openSCAD. Eksportēšana no openSCAD uz stl un citiem formātiem ir labi atbalstīta, un, ja jūs patiešām vēlaties zināt, iepazīstieties ar Thingiverse darbiem. Viņiem ir kopa entuziastu, kas veicina lietas savā vietnē.

10 labākās spēles, kuras spēlēt Ubuntu
Windows platforma ir bijusi viena no dominējošajām spēļu platformām, jo ​​mūsdienās tiek attīstīts milzīgs spēļu skaits, lai atbalstītu Windows. Vai k...
5 labākās arkādes spēles Linux
Mūsdienās datori ir nopietnas mašīnas, kuras izmanto spēlēšanai. Ja jūs nevarat iegūt jauno augsto rezultātu, jūs zināt, ko es domāju. Šajā ierakstā j...
Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...