3D CAD Dosya Biçimleri için Açık Kaynak Python Kitaplığı
Parametrik 3B CAD Modelleri oluşturmak için ücretsiz Python CAD kitaplığı. Geleneksel STL'ye ek olarak STEP, AMF ve 3MF gibi yüksek kaliteli CAD formatları oluşturur.
Açık kaynaklı Python kitaplığı CadQuery, parametrik 3B CAD modelleri oluşturmak için kullanımı kolay bir Python kitaplığıdır. Kitaplık çok güçlüdür ve kısa komut dosyaları yazarak Python uygulamaları içinde yüksek kaliteli CAD modelleri üretebilir. Tek bir komut dosyası kullanarak komut dosyasını özelleştirmek ve birçok farklı nesne yapmak da mümkündür. CadQuery betikleri çok hızlıdır ve mevcut diğer kitaplıklardan daha hızlı STL, STEP, AMF ve 3MF oluşturabilir.
Kitaplık, radyuslar, eğrisel ekstrüzyonlar, parametrik eğriler ve loftlar gibi gelişmiş modelleme yetenekleri sunar. Son kullanıcılar tarafından kolayca özelleştirilebilen parametrik bir model oluşturabilen betik tabanlı bir kitaplıktır. Nesneyi bir insana nasıl tanımlayacağınıza mümkün olduğunca yakın olan betiklerle 3B modeller oluşturur. CadQuery, Apache Kamu Lisansı, sürüm 2.0 koşulları altında lisanslanmıştır.
Bu CadQuery kitaplığı kasıtlı olarak GUI'siz olacak şekilde tasarlanmıştır, böylece mühendislik ve bilimsel uygulamalarda programlı olarak 3B modeller oluşturmak için kullanılabilir. Bir GUI kullanmanız gerekiyorsa, Qt tabanlı GUI CQ düzenleyicisini veya Jupyter uzantısı jupyter-cadquery'yi düşünebilirsiniz. Kütüphaneyi diğer Python kütüphaneleri ile birlikte kullanmak da mümkündür.
CadQuery'ye Başlarken
CadQuery kararlı sürümünü kurmanın en kolay yolu pip kullanmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.
CadQuery'yi pip aracılığıyla kurun
pip install cadquery
Derlenen paylaşılan kitaplığı Github deposundan indirebilirsiniz.
Python 3B Kitaplığı aracılığıyla Çokgen ile Çalışma
Çokgen, düz kenarları olan iki boyutlu bir şekildir. Poligonal modelleme, nesnelerin yüzeylerini poligon ağları kullanarak temsil ederek veya yaklaşık olarak belirleyerek modelleme yaklaşımıdır. Açık kaynaklı Python Kitaplığı CadQuery, yazılım geliştiricilerin yalnızca birkaç satırlık Python koduyla her yığın noktası için çokgenler oluşturmasına olanak tanır. Ürün yazılımı küçük delik boyutları için düzeltme yapmayan 3 boyutlu yazıcılarda çok faydalıdır.
Python 3B Kitaplığı ile Yüzlerde Çalışma Düzlemleri Oluşturun
Açık kaynak Python Kitaplığı CadQuery, Python uygulamaları içinde Yüzlerde Çalışma Düzlemleri oluşturmak için eksiksiz destek sağlamıştır. çalışma düzlemlerinin bu şekilde kullanılması CadQuery'nin önemli bir özelliğidir. Kullanıcıları değişkenlerdeki çeşitli özelliklerin konumunu arama zahmetinden kurtarır ve modelin gereksiz boyutları silmesini sağlar. Kullanıcılar, Workplane.faces () yöntemini çağırarak elde edilen katının yüzlerini seçebilir. Lütfen varsayılan olarak yeni bir çalışma düzleminin orijininin, seçilen yüzden bir düzlem oluşturarak ve önceki orijini bu düzleme yansıtarak hesaplandığını unutmayın.
Python ile Yüzlerde Çalışma Düzlemleri Oluşturma
result = cq.Workplane("front").box(2, 3, 0.5) # make a basic prism
result = result.faces(">Z").workplane().hole(0.5) # find the top-most face and make a hole
Python aracılığıyla 3D LEGO Yapım Parçaları ile Çalışma
CadQuery kütüphanesi, Python komutlarını kullanarak farklı boyutlardaki Lego tuğlalarını temsil eden 3D animasyon oluşturmak için eksiksiz destek sağlamıştır. Birkaç küp ve silindiri bir araya getirerek tuğlaları yeniden oluşturmak da mümkündür. Bu 3B şekilleri tek bir nesnede (tuğla) birleştirmek için bileşik bir nesne oluşturabiliriz. Aşağıdaki örnek, herhangi bir boyutta normal dikdörtgen Lego(TM) tuğlasının nasıl üretileceğini gösterir. Sadece tuğlanın alt tarafıyla ilgili mantık nedeniyle aldatıcıdır.
Python ile 3D LEGO Yapım Parçaları Oluşturun
#####
# Inputs
######
lbumps = 6 # number of bumps long
wbumps = 2 # number of bumps wide
thin = True # True for thin, False for thick
#
# Lego Brick Constants-- these make a lego brick a lego :)
#
pitch = 8.0
clearance = 0.1
bumpDiam = 4.8
bumpHeight = 1.8
if thin:
height = 3.2
else:
height = 9.6
t = (pitch - (2 * clearance) - bumpDiam) / 2.0
postDiam = pitch - t # works out to 6.5
total_length = lbumps*pitch - 2.0*clearance
total_width = wbumps*pitch - 2.0*clearance
# make the base
s = cq.Workplane("XY").box(total_length, total_width, height)
# shell inwards not outwards
s = s.faces("Z").workplane(). \
rarray(pitch, pitch, lbumps, wbumps, True).circle(bumpDiam / 2.0) \
.extrude(bumpHeight)
# add posts on the bottom. posts are different diameter depending on geometry
# solid studs for 1 bump, tubes for multiple, none for 1x1
tmp = s.faces(" 1 and wbumps > 1:
tmp = tmp.rarray(pitch, pitch, lbumps - 1, wbumps - 1, center=True). \
circle(postDiam / 2.0).circle(bumpDiam / 2.0).extrude(height - t)
elif lbumps > 1:
tmp = tmp.rarray(pitch, pitch, lbumps - 1, 1, center=True). \
circle(t).extrude(height - t)
elif wbumps > 1:
tmp = tmp.rarray(pitch, pitch, 1, wbumps - 1, center=True). \
circle(t).extrude(height - t)
else:
tmp = s
# Render the solid
build_object(tmp)