CAD

silinder openSCAD

silinder openSCAD
Semasa menyiapkan artikel ini, saya ingin mengetahui orang yang mempunyai masalah dengan openSCAD. Yang mengejutkan saya, soalan yang paling biasa adalah mengenai membuat silinder. Terdapat arahan silinder bahawa anda akan mengetahui perinciannya terlebih dahulu. Selepas itu, anda akan melihat kaedah inovatif untuk membuat silinder mengikut keinginan anda. Anda juga boleh mengambil silinder dari kepingan lain untuk membuat perkara yang lebih menarik. Sebilangan besar pembaca, yang datang ke sini mungkin ingin melihat silinder berongga atau sejenis tiub. Teruskan membaca, kami mempunyai banyak simpanan untuk anda.

Arahan silinder

Sekiranya anda menggunakan versi silinder yang paling mudah, anda hanya memerlukan satu parameter. Ini menjadikan satu silinder seragam padat dan tidak lebih dari itu. Anda harus perhatikan bahawa silinder itu akan mempunyai radius standard dan ketinggian nilai dalam kurungan. Perintah itu mempunyai banyak pilihan, mari kita mencarinya.

silinder (r1 = 20);
silinder (r1 = 20, r2 = 5);
silinder (r1 = 20, h = 40);
silinder (r = 20, h = 40);
silinder (r1 = 20, r2 = 5, h = 40, tengah = benar);

Dua silinder pertama dalam kod di atas tidak masuk akal kerana tidak mempunyai ketinggian. Kesalahan yang biasa berlaku adalah apabila anda melupakan nilainya dan tidak seperti yang anda inginkan. Apabila anda menggunakan pemboleh ubah, perkara yang sama berlaku jika anda menggunakan pemboleh ubah yang tidak ditentukan. Dalam kes ini untuk ketinggian, tetapi periksa log konsol semasa anda menjalankannya.

Kerucut

Yang ketiga adalah kerucut, sebabnya ialah nilai r2 mempunyai ukuran standard. Cuba yang keempat, dan lihat apa yang berlaku. Yang terakhir membuat kerucut di mana anda mempunyai kawalan penuh terhadap dimensi. Yang ini senang digunakan untuk kerucut padat. Anda menetapkan dua jejari dan tinggi dan anda selesai. Anda juga boleh menggunakan diameter jika sesuai dengan anda.

Nilai tengah = benar berlaku untuk gandar z, meninggalkan kerucut separuh dari atas "tanah". Lalai adalah salah, yang menjadikan bahagian bawah kerucut berakhir di "tanah". Anda juga boleh memilih seberapa dekat dinding kerucut menjadi bulat dengan parameter '$ fn'.

Silinder berongga

Hei, tunggu sebentar! Ini hanya menghasilkan kepingan padat, bagaimana saya menggerudi lubang di dalamnya? Anda bertanya, terima kasih! Saya akan memberitahu anda. Jawapannya semuanya berbeza. Perintah yang. Perhatikan kod di bawah, ia mengandungi dua silinder yang disisipkan dengan kurungan keriting dan perintah perbezaan.

beza()
silinder (r = 30, h = 40);
silinder (r = 28, h = 41);

Ringkasnya, apabila anda mempunyai beberapa keping, maka anda memotong bahan dari bahagian pertama menggunakan semua kepingan berikut. Dalam kes ini, anda memotong silinder dari silinder. Sekiranya anda ingin memotong bentuk lain, anda juga boleh melakukannya. Cuba kubus atau sfera! Perhatikan kesan menarik dan kadangkala menghancurkan nilai $ fn pada kod ini.

Kerucut Berongga

Anda juga boleh melakukannya dengan kerucut, cukup gunakan nilai jari-jari ganda. Oleh kerana anda menentukan kedua-dua kerucut, anda mempunyai banyak kawalan pada hasil akhir. Kerucut berongga yang paling sederhana hanyalah dua kerucut di antara satu sama lain dengan ketebalan bahan.

beza()
silinder (r1 = 30, r2 = 12, h = 50);
silinder (r1 = 25, r2 = 7, h = 45);

Kerucut ini ditutup di bahagian atas, anda boleh membukanya dengan hanya menetapkan ketinggian kedua lebih tinggi daripada yang pertama. Oleh kerana anda mempunyai dua silinder, anda boleh menukar salah satu dari dua silinder tersebut. Sebagai contoh, anda boleh memotong lubang lurus melaluinya dengan menukar silinder kedua. Anda juga boleh memilih kubus, tetapi sedar ini boleh memotong terlalu banyak bahan dari kerucut.

Piramid

Ini mungkin kelihatan tidak relevan tetapi ini adalah muslihat berguna yang perlu anda ingat semasa anda terus menggunakan openSCAD. Semua silinder, dan unsur-unsur lain, adalah penghampiran bentuk. Anda membaca mengenai parameter $ fn lebih awal, di sini anda memanfaatkannya. Dengan ini, anda mungkin berfikir: Piramid adalah kerucut dengan empat sisi. Betul! gunakan $ fn = 4 dan anda mempunyai kerucut dengan empat sisi, yang bermaksud piramid.

beza()
silinder (r1 = 30, r2 = 12, h = 40, $ fn = 4);
silinder (r1 = 25, r2 = 7, h = 35, $ ​​fn = 4);

Silinder dalaman memotong silinder yang sama dengan yang luar. Sehingga anda mula bermain dengan parameter $ fn. Untuk mengetahui kesan parameter ini, cuba buat najis berkaki empat. Bagaimana parameter $ fn mempengaruhi hasilnya? Juga, bagaimana anda boleh menutup bahagian atas atau bawah?

Menggabungkan banyak

Untuk menggunakan silinder dengan banyak, anda harus belajar menggabungkan banyak daripadanya. Hasil akhirnya boleh menjadi sangat kompleks dan kadang-kadang berguna. Meletakkan bahagian atas silinder anda adalah satu pilihan. Untuk melakukannya dengan baik, anda mesti mula menggunakan pemboleh ubah. Biasakan untuk meletakkannya di puncak apa yang anda rancang. Ini menjadikannya lebih mudah untuk membuat modul kemudian.

tebaln = 5;
baser = 30;
topr = 12;
tinggi = 50;
kesatuan ()
// Kon bawah
beza()
silinder (r1 = baser, r2 = topr, h = tinggi);
silinder (r1 = baser-thickn, r2 = topr - thickn, h = tinggi + tebal);

// Bola teratas
terjemahkan ([0, 0, tinggi])
beza()
sfera (r = topr);
sfera (r = topr -thickn);
terjemahkan ([0, 0, -topr])
kubus (saiz = topr * 2, tengah = benar);

Bermula dari atas, anda mempunyai pemboleh ubah. Mereka adalah untuk ketebalan, jari-jari dasar, jari-jari atas, dan tinggi. Pernyataan kesatuan menyatukan semua perkara. Di dalam pendakap, anda mempunyai kerucut dan kemudian bola atas. Kerana mereka berada di dalam kesatuan, mereka akan menjadi satu bahagian pada akhirnya. Anda boleh melakukan lebih banyak lagi apabila anda menggunakan banyak silinder dalam banyak sudut.

Membuat tabung uji

Bergerak dari kerucut, buat tabung uji. Pertama, anda perlu mempertimbangkan bentuk apa yang membentuk tabung uji. Bahagian utama adalah silinder, tidak ada yang mewah, hanya perbezaan biasa antara dua silinder. Sekiranya anda menetapkan panjang sebagai pemboleh ubah, anda boleh menggunakan nilai tersebut sebagai rujukan. Anda perlu tahu di mana tiub itu berakhir dan menjadi separuh sfera di bahagian bawah. Anda juga akan menggunakan jejari tiub untuk menentukan sfera.

tubr = 20;
tubl = 80;
tebaln = 2;
beza()
silinder (r1 = tubr, r2 = tubr, h = tubl);
silinder (r1 = tubr - thickn, r2 = tubr - thickn, h = tubl);

Cubalah ini dan anda hanya akan mempunyai silinder sederhana, untuk membuat keseluruhan tiub yang anda perlukan untuk mencairkannya dengan separuh bulatan. Tidak ada half-sphere dalam openSCAD lalai, anda mesti membuatnya. Gunakan perbezaan antara dua sfera untuk membuat sfera berongga, kemudian keluarkan kubus lain yang memotong sfera.

beza()
sfera (tubr);
sfera (tubr - tebal);
terjemahkan ([0, 0, -tubr])
kubus (saiz = tubr * 2, tengah = benar);

Sekarang, anda mempunyai dua keping yang berasingan. Langkah seterusnya adalah menyatukan mereka. Di sini, anda boleh menggunakan perintah penyatuan. Seperti perintah perbezaan, kesatuan mengambil semua bahagian mengikut urutan. Dalam kesatuan, pesanan tidak begitu penting kerana ia adalah tambahan. Kodnya akan kelihatan sedikit jelek kerana kita tidak menggunakan modul di sini.

kesatuan ()
// Tiub Utama
beza()
silinder (r1 = tubr, r2 = tubr, h = tubl);
silinder (r1 = tubr - thickn, r2 = tubr - thickn, h = tubl);

// Sfera bawah
terjemahkan ([0, 0, tubl])
beza()
sfera (tubr);
sfera (tubr - tebal);
terjemahkan ([0, 0, -tubr])
kubus (saiz = tubr * 2, tengah = benar);


// Gelang atas
beza()
silinder (r = tubr + tebal, h = tebal);
silinder (r = tubr, h = tebaln);

Di sini kami merancangnya secara terbalik, ini terpulang kepada anda. Lakukan perkara yang sesuai untuk kes tertentu. Anda sentiasa boleh memutarnya semasa menggunakannya. Cincin atas mempunyai tepi yang tajam, anda boleh memperbaikinya dengan menggunakan bulatan dan putar_keluarnya. Terdapat cara lain untuk melakukannya, meneroka dan bereksperimen!

rotate_extrude (cembung = 10, $ fn = 100)
terjemahkan ([tubr, 0, 0])
bulatan (r = tebaln, $ fn = 100);

Menggabungkan Banyak silinder

Setelah anda membuat tiub dari beberapa silinder, anda mungkin juga ingin menyambungkannya dengan cara yang berbeza. Untuk melakukan ini, anda boleh menggunakan kesatuan sekali lagi. Katakan anda mahu satu tiub dalam sudut empat puluh lima darjah ke tiub yang lain. Untuk membuatnya, anda meletakkan tiub bersudut di tengah tiub besar.

kesatuan ()
tiub (50, 4, 300);
terjemahkan ([0, 0, panjang keseluruhan / 2]) putar ([45, 0, 0])
tiub (50, 4, 150);

Apabila anda mencuba ini, ia kelihatan hebat dari luar. Apabila anda melihat ke dalam, anda melihat bahawa anda mempunyai kedua-dua tiub keseluruhan. Yang pendek menyekat aliran di tiub panjang. Untuk mengatasinya, anda perlu memadamkan kedua silinder di dalam tiub. Anda boleh mempertimbangkan satu bahagian keseluruhan dan meletakkan silinder yang sesuai setelahnya berada dalam perbezaan.

beza()
kesatuan ()
tiub (50, 4, 300);
terjemahkan ([0, 0, panjang keseluruhan / 2]) putar ([45, 0, 0])
tiub (50, 4, 150);


silinder (r = 50 - 4, h = panjang keseluruhan);
terjemahkan ([0, 0, panjang keseluruhan / 2]) putar ([45, 0, 0])
silinder (r = 50 - 4, h = panjang keseluruhan / 2);

Seperti yang anda lihat, silinder pertama membentang sepanjang panjang tiub. Ini akan memadamkan apa sahaja di dalam tiub besar tetapi tiub kecil yang bersandar juga perlu dipadamkan. Perintah terjemahan menggerakkan tiub ke atas separuh, kemudian memutar dan meletakkan silinder di dalam tiub. Sebenarnya, kodnya disalin dari atas dan tiub diganti dengan silinder.

Paip

Sekiranya anda ingin membuat lebih banyak tabung, anda boleh menggunakan modul dalam contoh di atas dan mula mengembang. Kodnya boleh didapati di https: // github.com / matstage / openSCAD-Silinder.git, Pada masa penulisan, hanya ada dua perkara ini tetapi kerap periksa untuk melihat lebih banyak lagi. Anda mungkin dapat membuat barang yang lebih menarik.

Di dalam blok

Sekiranya anda ingin membuat enjin pembakaran dalaman, anda memerlukan lubang silinder pada bahagian padat. Berikut adalah contoh, yang paling mudah, untuk saluran penyejuk dan piston terdapat banyak lagi yang perlu ditambahkan. Itu untuk hari yang lain.

blok silinder modul (
silinderR = 3,
Tepi = 1,
numCylinders = 8)

beza()
kubus ([silinderR * 2 + Tepi * 2,
silinderR * 2 * numCylinders + Edge * numCylinders + Edge, 10]);
untuk (x = [0: 1: numCylinders-1])
terjemahkan ([cylinderR + Edge, cylinderR * x * 2 + Edge * x + cylinderR + Edge, 0])
silinder (r = silinderR, h = 12);

Di sini, anda mempunyai kubus yang tumbuh mengikut bilangan silinder yang anda mahukan di dalam blok. Semua nilai dalam modul adalah lalai sehingga anda dapat menggunakannya tanpa nilai. Untuk menggunakannya, gunakan 'penggunaan 'pernyataan di bahagian atas fail anda dan kemudian tambahkan blok silinder (numCylinders = 8). Anda boleh menggunakan atau menghilangkan nilai apa pun, apabila anda menghapusnya, nilai tersebut akan menjadi default. Ringkasnya, bahagian dalam modul dimulakan dengan nilai dan kemudian membuat sebuah kubus yang cukup panjang agar sesuai dengan silinder. Ia kemudian dilanjutkan dengan melepaskan silinder dengan pernyataan untuk. Terima kasih kepada penyataan, anda boleh membuat blok yang lebih besar atau lebih kecil. Untuk modul yang lebih maju, anda boleh meletakkan kekangan dalam mengubah reka bentuk ketika nilai tertentu tercapai. Mungkin anda mahu menjadikannya V jika silindernya 8 atau lebih.

Mengekstrusi dari bentuk yang rata

Cara lain untuk membuat silinder adalah dengan membuat bulatan dan mengeluarkannya. Silinder pepejal hanya dua baris:

linear_keluar (15)
bulatan (20);

Ini menghasilkan panjang 15 (tanpa unit di openSCAD), dengan radius 20. Anda boleh menggunakan diameter menggunakan parameter d. Cukup membuat silinder tidak begitu berguna tetapi anda boleh menggunakan teknik yang sama untuk sebarang bentuk 2D. Anda akan melihatnya kemudian. Sementara silinder berongga kodnya sedikit lebih panjang.

linear_keluar (15)
beza()
bulatan (20);
bulatan (18);

Ini sama tetapi, seperti yang telah kita lakukan sebelumnya, anda membuang bulatan tengah. Anda juga boleh membengkokkannya dalam bulatan dengan versi rotate_extrude. Ini bagus untuk membuat donat, versi termudah kelihatan seperti satu.

rotate_extrude (sudut = 180, cembung = 10)
terjemahkan ([30,0,0])
beza()
bulatan (20);
bulatan (10);

Kod ini membuat separuh bulatan yang berlubang. Nota yang harus anda berhati-hati ialah terjemahan perlu dilakukan atau anda akan mendapat ralat: “KESALAHAN: semua titik untuk rotateextrude () mesti mempunyai tanda koordinat X yang sama (julat adalah -2.09 -> 20.00) ". Nombor akan bergantung pada nilai dalam bulatan. Oleh kerana ini menghasilkan bentuk yang sama dengan silinder, ia mungkin tidak berguna. Bukan! Penggunaan terbaik arahan ini adalah untuk menjadikan bentuk rata berfungsi. Manual ini mempunyai poligon sederhana sebagai contoh, ia menghasilkan bentuk bulat di mana anda boleh menjalankan tali pinggang. Anda juga boleh memutarnya. Kod di bawah ini menghasilkan corkscrew.

terjemahkan ([- 80,0,0])
linear_extrude (80, twist = 900, skala = 2.0, keping = 100)
terjemahkan ([2, 0, 0])
segi empat sama (10);

Contoh dalam manual menunjukkan poligon yang boleh berguna. Kod di bawah boleh menjadi apa sahaja yang anda suka tetapi menggambarkan kehebatan melakukannya dengan cara ini.

terjemahkan ([0, -80, 0])
rotate_extrude (sudut = 275)
terjemahkan ([12,3,2])
poligon (mata = [[0,0], [20,17], [34,12], [25,22], [20, 30]]);

Anda boleh bereksperimen dengan bentuk poligon sehingga anda dapat menggunakannya dengan betul. Sekiranya terasa agak menakutkan dengan hanya menggunakan nombor, anda boleh membuat profil di program CAD lain dan mengimport hasil dxf menggunakan perintah import ().

Kesimpulannya

Membuat silinder adalah mudah tetapi hanya permulaan prosesnya. Bahagian yang sukar adalah membuat sesuatu yang berguna dengannya. Anda juga perlu memasukkannya ke dalam reka bentuk anda dan mungkin membuat masalah yang lebih kompleks daripada silinder. Cari cara dan cabaran untuk pengembangan pengetahuan anda yang berterusan menggunakan openSCAD. Ingatlah untuk menggunakan dokumentasi dan bergantung pada perisian lain apabila tidak dapat dicapai dengan mudah dengan nombor dan semacamnya. Sesuatu yang tidak diliputi dalam catatan ini ialah anda dapat menarik barang di Inkscape dan Blender dan mengimportnya ke openSCAD. Mengeksport dari openSCAD ke stl dan format lain disokong dengan baik dan jika anda benar-benar ingin tahu, lihat ciptaan di Thingiverse. Mereka mempunyai sekumpulan peminat yang menyumbang banyak perkara ke laman web mereka.

Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...
Cara menangkap dan streaming sesi permainan anda di Linux
Pada masa lalu, bermain permainan hanya dianggap sebagai hobi, tetapi seiring dengan berjalannya waktu, industri permainan menyaksikan pertumbuhan yan...
Permainan Terbaik untuk Dimainkan dengan Penjejakan Tangan
Oculus Quest baru-baru ini memperkenalkan idea hebat penjejakan tangan tanpa pengawal. Dengan jumlah permainan dan aktiviti yang semakin meningkat yan...