3D CAD Fayl Formatları üçün Açıq Mənbəli Python Kitabxanası
Parametrik 3D CAD Modelləri yaratmaq üçün pulsuz Python CAD kitabxanası. Ənənəvi STL-ə əlavə olaraq STEP, AMF və 3MF kimi yüksək keyfiyyətli CAD formatları yaradır
Açıq mənbəli Python kitabxanası CadQuery parametrik 3D CAD modelləri yaratmaq üçün istifadəsi asan olan Python kitabxanasıdır. Kitabxana çox güclüdür və qısa skriptlər yazmaqla Python proqramlarında yüksək keyfiyyətli CAD modelləri istehsal edə bilir. Skripti fərdiləşdirmək və bir skriptdən istifadə edərək çoxlu müxtəlif obyektlər etmək də mümkündür. CadQuery skriptləri çox sürətlidir və digər mövcud kitabxanalardan daha sürətli STL, STEP, AMF və 3MF qura bilir.
Kitabxana filelər, əyrixətli ekstrüdelər, parametrik əyrilər və loftlar kimi qabaqcıl modelləşdirmə bacarıqlarını təklif edir. Bu, son istifadəçilər tərəfindən asanlıqla fərdiləşdirilə bilən parametrik model yarada bilən skript əsaslı kitabxanadır. O, obyekti insana necə təsvir etdiyinizə mümkün qədər yaxın olan skriptlərlə 3D modellər yaradır. CadQuery Apache Public License, 2.0 versiyasının şərtlərinə əsasən lisenziyalaşdırılıb.
Həmin CadQuery kitabxanası qəsdən GUI-siz olmaq üçün nəzərdə tutulmuşdur ki, o, 3D modelləri proqramlı şəkildə yaratmaq üçün mühəndislik və elmi proqramlarda istifadə oluna bilsin. Əgər GUI istifadə etməlisinizsə, siz Qt əsaslı GUI CQ-redaktoru və ya Jupyter uzantısı jupyter-cadquery-ni nəzərdən keçirə bilərsiniz. Kitabxanadan digər Python kitabxanaları ilə birlikdə istifadə etmək də mümkündür.
CadQuery ilə işə başlamaq
CadQuery stabil buraxılışını quraşdırmağın ən asan yolu pipdən istifadə etməkdir. Düzgün quraşdırma üçün aşağıdakı əmrdən istifadə edin.
Pip vasitəsilə CadQuery quraşdırın
pip install cadquery
Siz tərtib edilmiş paylaşılan kitabxananı Github repozitorundan endirə bilərsiniz.
Python 3D Kitabxanası vasitəsilə Poliqon ilə işləyin
Çoxbucaqlı düz tərəfləri olan iki ölçülü formadır. Çoxbucaqlı modelləşdirmə, çoxbucaqlı şəbəkələrdən istifadə edərək səthlərini təmsil etmək və ya yaxınlaşdırmaqla obyektlərin modelləşdirilməsi üçün bir yanaşmadır. Açıq mənbəli Python Kitabxanası CadQuery proqram tərtibatçılarına Python kodunun bir neçə sətirindən ibarət hər bir yığın nöqtəsi üçün çoxbucaqlılar yaratmağa imkan verir. Firmware kiçik deşik ölçüləri üçün düzəliş etməyən 3D printerlərdə çox faydalıdır.
Python 3D Kitabxanası vasitəsilə Üzlərdə İş Təyyarələri yaradın
Açıq mənbəli Python Kitabxanası CadQuery, Python proqramları daxilində Üzlərdə İş Təyyarələrinin yaradılması üçün tam dəstəyi təmin etmişdir. iş təyyarələrinin bu şəkildə istifadəsi CadQuery-nin əsas xüsusiyyətidir. O, istifadəçiləri dəyişənlərdə müxtəlif xüsusiyyətlərin mövqeyini axtarmaqdan azad edir və modelə lazımsız ölçüləri silməyə imkan verir. İstifadəçilər Workplane.faces () metoduna zəng edərək nəticədə yaranan bərk cismin üzlərini seçə bilərlər. Xahiş edirik unutmayın ki, defolt olaraq yeni iş təyyarəsinin mənşəyi seçilmiş üzdən təyyarə düzəldərək əvvəlki mənşəyi həmin müstəviyə proyeksiya etməklə hesablanır.
Python vasitəsilə üzlərdə iş təyyarələrinin yaradılması
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 vasitəsilə 3D LEGO Bricks ilə işləmək
CadQuery kitabxanası Python əmrlərindən istifadə edərək müxtəlif ölçülü Lego kərpiclərini əks etdirən 3D animasiya yaratmaq üçün tam dəstək göstərmişdir. Bir neçə kub və silindri birləşdirərək kərpicləri yenidən yaratmaq da mümkündür. Bu 3D formaları bir obyektdə (kərpic) birləşdirmək üçün mürəkkəb obyekt yarada bilərik. Aşağıdakı nümunə istənilən ölçülü düzbucaqlı Lego(TM) kərpicinin necə yaradılacağını nümayiş etdirir. Bu, yalnız kərpicin alt tərəfi ilə bağlı məntiqə görə çətindir.
Python vasitəsilə 3D LEGO Bricks yaradın
#####
# 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)