CAD

openSCAD silindiri

openSCAD silindiri
Bu makaleyi hazırlarken insanların openSCAD ile ne gibi sorunları olduğunu öğrenmek istedim. Şaşırtıcı bir şekilde, en yaygın soru bir silindir oluşturmakla ilgiliydi. İlk önce detaylarını öğreneceğiniz bir silindir komutu var. Bundan sonra, beğeninize göre silindirler yaratmanın yenilikçi yollarını göreceksiniz. Daha ilginç şeyler yaratmak için silindirleri diğer parçalardan da alabilirsiniz. Buraya gelen çoğu okuyucu muhtemelen içi boş bir silindir veya bir tür tüp görmek ister. Okumaya devam edin, sizin için çok şeyimiz var.

silindir komutu

Silindir komutunun en basit versiyonunu kullanırsanız, sadece bir parametreye ihtiyacınız vardır. Bu, tek bir katı düzgün silindir yapar ve başka bir şey yapmaz. Silindirin standart yarıçapa ve parantez içindeki değerin yüksekliğine sahip olacağına dikkat etmelisiniz. Komutun birçok seçeneği var, hadi bunları inceleyelim.

silindir( r1 = 20 );
silindir( r1 = 20, r2 = 5);
silindir( r1 = 20, h = 40);
silindir( r = 20, h = 40);
silindir( r1 = 20, r2 = 5, h = 40, merkez = doğru);

Yukarıdaki koddaki ilk iki silindir hiçbir anlam ifade etmiyor çünkü yükseklikleri yok. Yaygın bir hata, değeri unutmanız ve istediğiniz gibi görünmemesidir. Değişkenleri kullandığınızda, tanımsız bir değişken kullandığınızda da aynı şey olur. Bu durumda yükseklik için, ancak çalıştırdığınızda konsol günlüğünü kontrol edin.

bir koni

Üçüncüsü bir konidir, nedeni r2 değerinin standart bir boyuta sahip olmasıdır. Dördüncüyü deneyin ve ne olduğunu görün. Sonuncusu, boyutların tam kontrolüne sahip olduğunuz bir koni oluşturur. Bu katı koniler için kullanımı kolaydır. İki yarıçapı ve yüksekliği ayarladınız ve bitirdiniz. Size daha uygunsa çapı da kullanabilirsiniz.

Merkez = gerçek değer, koniyi "yerden" yarıya kadar bırakarak z ekseni için geçerlidir. Varsayılan yanlıştır, bu da koninin alt kısmının tabiri caizse "zemine" gelmesini sağlar. Ayrıca '$fn' parametresiyle koni duvarlarının dairesel olmaya ne kadar yakın olduğunu da seçebilirsiniz.

İçi boş silindir

Hey, bir dakika bekle! Bu sadece katı parçalar oluşturur, bunlara nasıl delik açarım? sen sor, teşekkürler! sana söyleyeceğim. Cevap tamamen farkta. olduğu komut. Aşağıdaki kodu göz önünde bulundurun, küme parantezleri ile kucaklanan iki silindir ve fark komutu içerir.

fark()
silindir(r = 30, h = 40);
silindir(r = 28, h = 41);

Basitçe söylemek gerekirse, birkaç parçanız olduğunda, aşağıdaki tüm parçaları kullanarak ilk parçadan malzemeyi kesersiniz. Bu durumda, bir silindirden bir silindir kesiyorsunuz. Başka bir şekli kesmek isterseniz, bunu da yapabilirsiniz. Bir küp veya küre deneyin! $fn değerinin bu kod üzerindeki ilginç ve bazen yıkıcı etkilerine dikkat edin.

içi boş koni

Bunu bir koni ile de yapabilirsiniz, sadece çift yarıçap değerlerini kullanın. Her iki koniyi de tanımladığınız için, nihai sonuç üzerinde çok fazla kontrolünüz var. En basit içi boş koni, malzeme kalınlığına sahip iç içe iki konidir.

fark()
silindir( r1 = 30, r2 = 12, h = 50);
silindir( r1 = 25, r2 = 7, h = 45);

Bu koni üstte kaplıdır, sadece ikinci yüksekliği birinciden daha yükseğe ayarlayarak açabilirsiniz. İki silindiriniz olduğu için ikisinden herhangi birini değiştirebilirsiniz. Örnek olarak, ikinci silindiri değiştirerek içinden düz bir delik açabilirsiniz. Bir küp de seçebilirsiniz, ancak bunun koniden çok fazla malzeme kesebileceğini unutmayın.

Piramit

Bu alakasız görünebilir ancak openSCAD'i kullanmaya devam ederken aklınızda bulundurmanız gereken faydalı bir numaradır. Tüm silindirler ve diğer elemanlar bir şeklin yaklaşıklığıdır. $fn parametresini daha önce okudunuz, burada ondan yararlanıyorsunuz. Bunu akılda tutarak şunu düşünebilirsiniz: Piramit, dört kenarı olan bir konidir. Doğru! $fn = 4 kullanın ve dört kenarı olan bir koni var, yani bir piramit.

fark()
silindir(r1 = 30, r2 = 12, h = 40, $fn = 4);
silindir(r1 = 25, r2 = 7, h = 35, $fn = 4);

İç silindir, dış silindirle aynı silindiri keser. $fn parametresiyle oynamaya başlayana kadar. Bu parametrenin etkilerine aşina olmak için dört ayaklı bir tabure yapmayı deneyin. $fn parametresi sonucu nasıl etkiler?? Ayrıca, üstünü veya altını nasıl kapatabilirsin??

birçok birleştiren

Çok fazla silindir kullanmak için birçoğunu nasıl birleştireceğinizi öğrenmelisiniz. Nihai sonuç çok karmaşık ve hatta bazen yararlı olabilir. Silindirinize bir üst koymak bir seçenektir. Bunu iyi yapmak için değişkenleri kullanmaya başlamalısınız. Onları tasarladığınız şeyin en üstüne koymayı alışkanlık haline getirin. Modülleri daha sonra yapmayı kolaylaştırır.

kalın = 5;
temel = 30;
üst = 12;
yükseklik = 50;
Birlik()
// Alt koni
fark()
silindir(r1 = temel, r2 = üst, h = yükseklik);
silindir(r1 = taban-kalın, r2 = üst - kalın, h = yükseklik + kalın);

// Üst top
çevir([0, 0, yükseklik])
fark()
küre(r = topr);
küre(r = topr -kalın);
çevir([0, 0, -topr])
küp(boyut = üst*2, merkez = doğru);

En baştan başlayarak, değişkenleriniz var. Kalınlık, taban yarıçapı, üst yarıçap ve yükseklik içindir. Sendika bildirisi parçaları bir araya getiriyor. Diş tellerinin içinde koni ve ardından üst top var. Birliğin içinde oldukları için sonunda tek parça olacaklar. Birçok açıda çok sayıda silindir kullandığınızda daha fazlasını yapabilirsiniz.

Test tüpü yapmak

Konilerden devam ederek bir test tüpü yapın. İlk olarak, hangi şekillerin bir test tüpü oluşturduğunu düşünmelisiniz. Ana parça bir silindir, süslü değil, sadece iki silindir arasındaki normal fark. Uzunluğu bir değişken olarak ayarlarsanız, bu değeri referans olarak kullanabilirsiniz. Tüpün nerede bittiğini ve alttaki yarım küre haline geldiğini bilmeniz gerekir. Küreyi tanımlamak için tüpün yarıçapını da kullanacaksınız.

tüp = 20;
tüp = 80;
kalın = 2;
fark()
silindir(r1 = tubr, r2 = tubr, h = tubl);
silindir(r1 = tubr - kalınlaştır, r2 = tubr - kalınlaştır, h = boru);

Bunu deneyin ve sadece basit bir silindire sahip olacaksınız, tüm tüpü yapmak için yarım küre ile birlikte eritmeniz gerekiyor. Varsayılan openSCAD'de yarım küre yoktur, bunu yapmalısınız. İçi boş bir küre oluşturmak için iki küre arasındaki farkı kullanın, ardından küreyi kesen başka bir küpü kaldırın.

fark()
küre(tüp);
küre(küvet - kalınlaştır);
çevir([0, 0, -tubr])
küp(boyut=tubr*2, merkez = doğru);

Şimdi, iki ayrı parçanız var. Bir sonraki adım onları bir araya getirmek. Burada union komutunu kullanabilirsiniz. Fark komutu gibi, birlik de tüm parçaları sırayla alır. Birleşimde, ek olduğu için sıralama o kadar önemli değildir. Burada modül kullanmadığımız için kod biraz çirkin görünecek.

Birlik()
// Ana Tüp
fark()
silindir(r1 = tubr, r2 = tubr, h = tubl);
silindir(r1 = tubr - kalınlaştır, r2 = tubr - kalınlaştır, h = boru);

// Alt küre
çevir([0, 0, tubl])
fark()
küre(tüp);
küre(küvet - kalınlaştır);
çevir([0, 0, -tubr])
küp(boyut=tubr*2, merkez = doğru);


// Üst halka
fark()
silindir(r = tubr + kalın, h = kalın);
silindir(r = tubr, h = kalın);

Biz burada baş aşağı tasarlıyoruz bu size kalmış. Özel durum için uygun olanı yapın. Kullanırken her zaman döndürebilirsiniz. Üst halkanın kenarları keskindir, bunu bir daire kullanarak düzeltebilir ve döndür_ekstrüde edebilirsiniz. Bunu yapmanın, keşfetmenin ve denemenin başka yolları da var!

döndürme_extrude(dışbükeylik = 10, $fn = 100)
çevir([tubr, 0, 0])
daire(r = kalın, $fn =100);

Birçok silindiri birleştirmek

Birkaç silindirden bir tüp yaptıktan sonra, bunları farklı şekillerde de bağlamak isteyebilirsiniz. Bunu yapmak için tekrar bir birlik kullanabilirsiniz. Diyelim ki bir tüpü diğer tüpe kırk beş derecelik açıyla istiyorsunuz. Bunu yapmak için, açılı boruyu büyük borunun yarısına yerleştirirsiniz.

Birlik()
tüp(50, 4, 300);
çevir([0, 0, toplam uzunluk/2]) döndürme([45, 0, 0])
tüp(50, 4, 150);

Bunu denediğinizde, dışarıdan harika görünüyor. İçine baktığınızda, her iki tüpe de sahip olduğunuzu görüyorsunuz. Kısa olan, uzun tüpteki akışı engelliyor. Bunu düzeltmek için tüplerin içindeki her iki silindiri de silmeniz gerekir. Tüm birliği tek parça olarak düşünebilir ve ondan sonra karşılık gelen silindirleri bir farkın içine koyabilirsiniz.

fark()
Birlik()
tüp(50, 4, 300);
çevir([0, 0, toplam uzunluk/2]) döndürme([45, 0, 0])
tüp(50, 4, 150);


silindir(r = 50 - 4, h = toplam uzunluk);
çevir([0, 0, toplam uzunluk/2]) döndürme([45, 0, 0])
silindir(r = 50 - 4, h = toplam uzunluk/2);

Gördüğünüz gibi, ilk silindir borunun tüm uzunluğunu uzatıyor. Bu, büyük tüpün içindeki her şeyi silecektir, ancak eğilen küçük tüpün de silinmesi gerekir. Çeviri komutu, boruyu yarıya kadar yukarı hareket ettirir, ardından döner ve silindiri borunun içine yerleştirir. Aslında, kod yukarıdan kopyalanır ve tüp bir silindir ile değiştirilir.

sıhhi tesisat

Daha fazla tüp yapmak istiyorsanız yukarıdaki örnekteki modülü kullanabilir ve genişletmeye başlayabilirsiniz. Kod https://github adresinde mevcuttur.com/matstage/openSCAD-Silindirler.git, Yazma sırasında sadece bu ikisi var ama daha fazlasını görmek için sık sık kontrol edin. Daha heyecan verici şeyler yaratabilirsiniz.

Bir blok içinde

İçten yanmalı bir motor yapmayı hedefliyorsanız, sağlam bir parçada silindirik bir deliğe ihtiyacınız var. Aşağıda mümkün olan en basit örnek, soğutma kanalları ve pistonlar için eklenecek çok şey var. Bu başka bir gün için.

modül silindir bloğu(
silindirR = 3,
Kenar = 1,
numSilindirler = 8)

fark()
küp([silindirR*2 + Kenar * 2,
silindirR*2*numSilindirler+Kenar*sayıSilindirler + Kenar,10]);
for(x = [0:1:numCylinders-1])
translate([silindirR + Kenar, silindirR*x*2+Kenar*x+ silindirR+Kenar,0])
silindir(r = silindirR, h = 12);

Burada blok içinde istediğiniz silindir sayısına göre büyüyen bir küpünüz var. Modüldeki tüm değerler varsayılandır, böylece onu değerler olmadan kullanabilirsiniz. Kullanmak için 'kullan ' ifadesini dosyanızın en üstüne ekleyin ve ardından silindir bloğunu ekleyin(numCylinders = 8). Herhangi bir değeri kullanabilir veya atlayabilirsiniz, bunları atladığınızda varsayılanı alacaktır. Kısacası, modülün içi değerlerle başlar ve ardından silindirlere sığacak kadar uzun bir küp oluşturur. Daha sonra for deyimi ile silindirleri çıkararak devam eder. for ifadesi sayesinde daha büyük veya daha küçük bir blok yapabilirsiniz. Daha gelişmiş modüller için, belirli değerlere ulaşıldığında tasarımı değiştiren kısıtlamalar koyabilirsiniz. Belki 8 veya daha fazla silindir ise onu V yapmak istersiniz.

Düz bir şekilden ekstrüzyon

Silindir oluşturmanın başka bir yolu da bir daire yapmak ve onu ekstrüde etmektir. Bir katı silindir sadece iki satırdır:

lineer_extrude(15)
daire(20);

Bu, 20 yarıçaplı bir 15 (openSCAD'de birim yok) uzunluğunda oluşturur. d parametresini kullanarak çapı kullanabilirsiniz. Sadece bir silindir oluşturmak çok kullanışlı değil ama aynı tekniği herhangi bir 2B şekil için kullanabilirsiniz. Bunu daha sonra göreceksin. İçi boş bir silindir iken kod biraz daha uzun.

lineer_extrude(15)
fark()
daire(20);
daire(18);

Bu aynı, ancak daha önce yaptığımız gibi, ortadaki daireyi kaldırıyorsunuz. Ayrıca rotasyon_extrude sürümüyle bir daire içinde bükebilirsiniz. Bu, çörek yapmak için harika, en basit versiyonu bir tanesine benziyor.

döndürme_ekstrüde(açı =180, dışbükeylik =10)
çevir([30,0,0])
fark()
daire(20);
daire(10);

Bu kod, içi boş bir yarım daire oluşturur. Dikkat etmeniz gereken bir not, çevirinin gerekli olmasıdır yoksa bir hata alırsınız: “HATA: rotaryextrude() için tüm noktalar aynı X koordinat işaretine sahip olmalıdır (aralık -2'dir).09 -> 20.00)”. Sayılar daire içindeki değere bağlı olacaktır. Bu, silindirle aynı şekli oluşturduğu için işe yaramaz görünebilir. O değil! Bu komutun en iyi kullanımı, düz şekli bir şekilde işlevsel hale getirmektir. Kılavuzda örnek olarak basit bir çokgen vardır, bir kemer çalıştırabileceğiniz yuvarlak bir şekil oluşturur. Ayrıca etrafında döndürebilirsiniz. Aşağıdaki kod bir tirbuşon oluşturur.

çevir([-80,0,0])
linear_extrude(80, büküm = 900, ölçek = 2.0, dilimler = 100)
çevir([2, 0, 0])
kare(10);

Kılavuzdaki örnek, yararlı olabilecek bir çokgeni göstermektedir. Aşağıdaki kod istediğiniz gibi olabilir ancak bunu bu şekilde yapmanın gücünü gösterir.

çevir([0, -80, 0])
döndürme_ekstrüde(açı = 275)
çevir([12,3,2])
poligon(noktalar = [[0,0], [20,17], [34,12], [25,22], [20, 30]]);

Uygulamanız için doğru olana kadar çokgenin şeklini deneyebilirsiniz. Sadece sayıları kullanmak biraz göz korkutucu geliyorsa, profili diğer CAD programlarında oluşturabilir ve import() komutunu kullanarak dxf sonucunu içe aktarabilirsiniz.

Sonuç

Silindir yapmak basittir ancak sürecin sadece başlangıcıdır. Zor kısım, onunla faydalı bir şey yapmaktır. Ayrıca tasarımınıza dahil etmeniz ve belki de silindirlerden daha karmaşık sorunlar yaratmanız gerekir. openSCAD kullanarak sürekli bilgi genişletmeniz için yollar ve zorluklar bulun. Rakamlar vb. ile kolayca elde edilemediğinde belgeleri kullanmayı ve diğer yazılımlara güvenmeyi unutmayın. Bu yazıda ele alınmayan bir şey, Inkscape ve Blender'da bir şeyler çizip openSCAD'e aktarabilmenizdir. openSCAD'den stl'ye ve diğer formatlara dışa aktarma iyi bir şekilde desteklenmektedir ve gerçekten merak ediyorsanız, Thingiverse'deki kreasyonlara göz atın. Sitelerine bir şeyler katkıda bulunan bir sürü meraklıları var.

AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...