Pustaka Python Sumber Terbuka untuk Format Fail CAD 3D
Pustaka CAD Python percuma untuk mencipta Model CAD 3D Parametrik. Ia Cipta format CAD berkualiti tinggi seperti STEP, AMF & 3MF sebagai tambahan kepada STL tradisional
Pustaka Python sumber terbuka CadQuery ialah perpustakaan Python yang mudah digunakan untuk membina model CAD 3D parametrik. Perpustakaan ini sangat berkuasa dan dengan menulis skrip pendek boleh menghasilkan model CAD berkualiti tinggi di dalam aplikasi Python. Ia juga mungkin untuk menyesuaikan skrip dan membuat banyak objek berbeza menggunakan satu skrip. Skrip CadQuery sangat pantas dan boleh membina STL, STEP, AMF dan 3MF lebih pantas daripada perpustakaan lain yang tersedia.
Perpustakaan ini menawarkan kebolehan pemodelan lanjutan seperti fillet, extrudes lengkung, lengkung parametrik dan loteng. Ia adalah perpustakaan berasaskan skrip yang boleh mencipta model parametrik yang boleh disesuaikan dengan mudah oleh pengguna akhir. Ia mencipta model 3D dengan skrip yang sedekat mungkin dengan cara anda menerangkan objek kepada manusia. CadQuery dilesenkan di bawah syarat Lesen Awam Apache, versi 2.0.
Pustaka CadQuery itu sengaja direka bentuk untuk menjadi kurang GUI, supaya ia boleh digunakan dalam aplikasi kejuruteraan dan saintifik untuk mencipta model 3D secara pemrograman. Jika anda perlu menggunakan GUI, anda boleh mempertimbangkan GUI CQ-editor berasaskan Qt atau sambungan Jupyter jupyter-cadquery. Ia juga mungkin untuk menggunakan perpustakaan bersama-sama dengan perpustakaan Python yang lain.
Bermula dengan CadQuery
Cara paling mudah untuk memasang keluaran stabil CadQuery adalah menggunakan pip. Sila gunakan arahan berikut untuk pemasangan yang lancar.
Pasang CadQuery melalui pip
pip install cadquery
Anda boleh memuat turun perpustakaan kongsi yang disusun daripada repositori Github.
Bekerja dengan Poligon melalui Perpustakaan Python 3D
Poligon ialah bentuk dua dimensi dengan sisi lurus. Pemodelan poligon ialah pendekatan untuk memodelkan objek dengan mewakili atau menghampiri permukaannya menggunakan jerat poligon. Perpustakaan Python sumber terbuka CadQuery membolehkan pembangun perisian mencipta poligon untuk setiap titik tindanan dengan hanya beberapa baris kod Python. Ia sangat bermanfaat dalam pencetak 3d yang perisian tegarnya tidak betul untuk saiz lubang kecil.
Cipta Pesawat Kerja pada Wajah melalui Perpustakaan 3D Python
Perpustakaan Python sumber terbuka CadQuery telah menyediakan sokongan lengkap untuk mencipta Workplanes on Faces dalam aplikasi Python. penggunaan pesawat kerja dengan cara ini adalah ciri utama CadQuery. Ia membebaskan pengguna daripada mencari kedudukan pelbagai ciri dalam pembolehubah, dan membolehkan model memadamkan dimensi berlebihan. Pengguna boleh memilih muka pepejal terhasil dengan memanggil kaedah Workplane.faces (). Sila ingat bahawa secara lalai asalan pesawat kerja baharu dikira dengan membuat satah dari muka yang dipilih dan menayangkan asal sebelumnya ke satah itu.
Mencipta Pesawat Kerja pada Wajah melalui Python
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
Bekerja dengan 3D LEGO Bricks melalui Python
Pustaka CadQuery telah menyediakan sokongan lengkap untuk mencipta animasi 3D yang mewakili bata Lego dalam saiz yang berbeza menggunakan arahan Python. Ia juga mungkin untuk mencipta semula batu bata dengan menggabungkan beberapa kiub dan silinder bersama-sama. Kita boleh mencipta objek majmuk untuk menggabungkan bentuk 3D ini bersama-sama dalam satu objek (bata). Contoh berikut menunjukkan cara menjana sebarang saiz bata Lego(TM) segi empat tepat biasa. Ia hanya rumit kerana logik mengenai bahagian bawah batu bata.
Buat Bata LEGO 3D melalui Python
#####
# 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)