Бібліотека Python із відкритим кодом для форматів файлів 3D CAD
Безкоштовна бібліотека САПР Python для створення параметричних 3D-моделей САПР. Він створює високоякісні формати САПР, такі як STEP, AMF і 3MF, на додаток до традиційного STL
Бібліотека Python з відкритим кодом CadQuery — це проста у використанні бібліотека Python для побудови параметричних 3D-моделей САПР. Бібліотека є дуже потужною і шляхом написання коротких сценаріїв може створювати високоякісні моделі CAD у програмах Python. Також можна налаштувати сценарій і створити багато різних об’єктів за допомогою одного сценарію. Сценарії CadQuery дуже швидкі та можуть створювати STL, STEP, AMF і 3MF швидше, ніж інші доступні бібліотеки.
Бібліотека пропонує розширені можливості моделювання, такі як скруглення, криволінійні видавлювання, параметричні криві та стрижні. Це бібліотека на основі сценаріїв, яка може створити параметричну модель, яка може бути легко налаштована кінцевими користувачами. Він створює 3D-моделі зі сценаріями, які максимально наближені до того, як ви описали б об’єкт людині. CadQuery надається згідно з умовами публічної ліцензії Apache версії 2.0.
Ця бібліотека CadQuery навмисно розроблена без графічного інтерфейсу користувача, щоб її можна було використовувати в інженерних і наукових програмах для програмного створення 3D-моделей. Якщо вам потрібно використовувати GUI, ви можете розглянути CQ-редактор GUI на основі Qt або розширення Jupyter jupyter-cadquery. Бібліотеку також можна використовувати разом з іншими бібліотеками Python.
Початок роботи з CadQuery
Найпростіший спосіб інсталювати стабільну версію CadQuery — використовувати pip. Будь ласка, використовуйте наступну команду для плавного встановлення.
Встановіть CadQuery через pip
pip install cadquery
Ви можете завантажити скомпільовану спільну бібліотеку зі сховища Github.
Працюйте з Polygon через бібліотеку Python 3D
Багатокутник — це двовимірна фігура з прямими сторонами. Полігональне моделювання — це підхід до моделювання об’єктів шляхом представлення або наближення їхніх поверхонь за допомогою полігональних сіток. Бібліотека Python CadQuery з відкритим вихідним кодом дозволяє розробникам програмного забезпечення створювати багатокутники для кожної точки стека за допомогою лише кількох рядків коду Python. Це дуже корисно для 3d-принтерів, чиє мікропрограмне забезпечення не коригує маленькі розміри отворів.
Створюйте робочі площини на гранях за допомогою 3D-бібліотеки Python
Бібліотека Python з відкритим вихідним кодом CadQuery забезпечує повну підтримку створення робочих площин на обличчях у програмах Python. використання робочих площин таким чином є ключовою особливістю CadQuery. Це звільняє користувачів від пошуку положення різних функцій у змінних і дозволяє моделі видаляти зайві розміри. Користувачі можуть вибрати грані отриманого тіла, викликавши метод Workplane.faces (). Пам’ятайте, що за замовчуванням початок нової робочої площини обчислюється шляхом створення площини з вибраної грані та проектування попереднього початку на цю площину.
Створення робочих площин на гранях через 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
Робота з 3D LEGO Bricks через Python
Бібліотека CadQuery забезпечує повну підтримку створення 3D-анімації, що представляє цеглинки Lego різного розміру за допомогою команд Python. Також можна відтворити цеглу, з’єднавши разом кілька кубів і циліндрів. Ми можемо створити складний об’єкт, щоб об’єднати ці 3D-фігури в один об’єкт (цеглинку). Наступний приклад демонструє, як створити звичайну прямокутну цеглину Lego(TM) будь-якого розміру. Це лише складно через логіку щодо нижньої сторони цегли.
Створюйте 3D кубики LEGO за допомогою 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)