FreeCAD

 
 

Відкритий 3D параметричний CAD-моделлер

Створюйте, змінюйте та автоматизуйте 3D проекти за допомогою Python API для машинобудування, архітектури та промислового дизайну.

Що таке FreeCAD?

FreeCAD — потужний, відкритий 3D‑параметричний CAD‑моделлер, призначений для створення реальних об’єктів будь-якого розміру. Він підтримує параметричне моделювання, що дозволяє користувачам легко змінювати проєкти, коригуючи параметри в історії моделі. Побудований на надійній архітектурі з використанням OpenCASCADE, Coin3D, Qt та Python, FreeCAD орієнтований на машинобудування, архітектуру, промисловий дизайн та інше. Його гнучкий Python API дає змогу розробникам і досвідченим користувачам автоматизувати завдання, розширювати функціональність та інтегруватися з зовнішніми інструментами. Незалежно від того, чи ви хобіст, студент, інженер чи викладач, FreeCAD пропонує професійний інструмент для 3D‑дизайну без ліцензійних витрат.

Основна сила FreeCAD полягає у його здатності поєднувати 2D-ескізування та 3D-моделювання, дозволяючи користувачам створювати геометрично обмежені 2D-профілі та виштовхувати їх у 3D-особливості. Він включає спеціалізовані робочі середовища для проектування деталей, збірки, креслення, архітектури та інше. Програма працює нативно на Windows, macOS та Linux, забезпечуючи широку доступність. Завдяки активній підтримці спільноти, всебічній документації та модульній архітектурі плагінів, FreeCAD ідеальний як для новачків, так і для досвідчених професіоналів CAD, які шукають прозору, налаштовувану та безкоштовну альтернативу пропрієтарним інструментам. Його інтеграція з процесами симуляції та виробництва робить його придатним для всього життєвого циклу розробки продукту.

Previous Next

Початок роботи з FreeCAD

FreeCAD доступний у вигляді попередньо скомпільованих інсталяторів для Windows, macOS та Linux на сторінці останніх випусків. У Linux його часто можна отримати через менеджер пакетів вашого дистрибутива або центр програм. Для розробників та досвідчених користувачів підтримується збірка з вихідного коду за допомогою CMake. Офіційний Посібник розробника містить докладні інструкції зі збірки. Після встановлення запустіть FreeCAD і досліджуйте робочі середовища через панель інструментів. Консоль Python та система макросів дозволяють автоматизацію та налаштування. Для навчальних ресурсів відвідайте посібник Початок роботи на вікі FreeCAD.

Встановіть FreeCAD через менеджер пакетів (Linux) або завантажте

# Ubuntu/Debian
sudo apt install freecad

# macOS (Homebrew)
brew install --cask freecad

# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest

Параметричне 3D-моделювання за допомогою Python API

Параметричний движок моделювання FreeCAD дозволяє користувачам визначати об’єкти з редагованими параметрами, забезпечуючи ітерації дизайну простим коригуванням значень. Python API відкриває весь стек моделювання, даючи розробникам можливість програмно створювати складну геометрію. Використовуючи робочі середовища Part та PartDesign, ви можете генерувати примітиви, виконувати булеві операції, додавати філети/загострення та створювати функції, такі як pads, pockets і revolutions — все за допомогою Python. Ця можливість є важливою для генеративного дизайну, топологічної оптимізації та інтеграції CAD з симуляцією або виробничими процесами. API підтримує як об’єктно‑орієнтований, так і функціональний підходи, що робить його придатним для скриптів, макросів та повнофункціональних плагінів. Завдяки доступу до базового ядра OpenCASCADE, FreeCAD забезпечує професійні геометричні операції, зберігаючи простоту використання для новачків.

Створіть параметричний куб і змініть його розміри за допомогою Python

import FreeCAD as App
import Part

# Create document and object
doc = App.newDocument()
cube = doc.addObject("Part::Box", "Cube")
cube.Length = 10
cube.Width = 20
cube.Height = 30
App.ActiveDocument.recompute()

# Modify dimensions later
cube.Length = 15
App.ActiveDocument.recompute()

Робоча середа 2D-ескізів та креслення

FreeCAD включає потужне середовище 2D ескізування, інтегроване з 3D конвеєром моделювання. Робоча середа Sketcher дозволяє користувачам малювати геометрично обмежені 2D профілі за допомогою ліній, дуг, кіл та сплайнів. Обмеження, такі як горизонтальні, вертикальні, паралельні, перпендикулярні та розмірні, забезпечують точний контроль над геометрією ескізу. Після завершення ці ескізи слугують основою для 3D функцій, таких як екструзії, обертання та підйоми. Крім того, робоча середа Draft надає інструменти для створення 2D векторних креслень без обмежень, ідеальні для архітектурних планів поверхонь або технічних ілюстрацій. Робоча середа Drawing дозволяє генерувати ортогональні проекції, розрізи та анотовані креслення з 3D моделей, підтримуючи технічну документацію, сумісну з ISO, з розміткою, допусками та функціями специфікації матеріалів.

Створіть ескіз, додайте обмеження та екструдуйте, щоб сформувати 3D‑особливість

import FreeCAD as App
import Sketcher
import PartDesign

doc = App.newDocument()
Part = doc.addObject("PartDesign::Body")
Sketch = doc.addObject("Sketcher::SketchObject", "Sketch")
Sketch.Placement = App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(0,0,1),0))

# Add geometry
Sketch.addGeometry(Part.LineSegment(App.Vector(-10,0,0),App.Vector(10,0,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(10,0,0),App.Vector(10,10,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(10,10,0),App.Vector(-10,10,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(-10,10,0),App.Vector(-10,0,0)),False)

# Add constraints
Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,1,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',2,2,3,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',3,2,0,1))
Sketch.addConstraint(Sketcher.Constraint('Horizontal',0))
Sketch.addConstraint(Sketcher.Constraint('Vertical',1))

# Extrude
Pad = doc.addObject("PartDesign::Pad", "Pad")
Pad.Profile = Sketch
Pad.Length = 5
doc.recompute()

Проектування збірок та розв’язання обмежень

FreeCAD підтримує складне моделювання збірок за допомогою робочих середовищ Assembly4 та Assembly3, дозволяючи користувачам поєднувати кілька деталей у функціональні механізми. Збірки створюються за допомогою обмежень, таких як збігаються, паралельні, перпендикулярні, дотичні та відстані, щоб визначити відносні позиції та рухи між компонентами. Розв’язувач автоматично оновлює збірку, коли будь-яка деталь або обмеження змінюються, забезпечуючи цілісність дизайну. Ця можливість є важливою для завдань машинобудування, таких як шестеренні передачі, зв’язки та конструкції корпусів. Збірки можна експортувати у вигляді STEP‑файлів для співпраці з іншими CAD‑системами, а симуляція руху можлива через інтеграцію з зовнішніми інструментами, такими як Yade, або власними скриптами Python. Параметрична природа FreeCAD гарантує, що зміни окремих деталей автоматично поширюються на збірку, зменшуючи ручні оновлення та мінімізуючи помилки.

Створіть просту збірку з двох деталей і застосуйте збігальне обмеження

import FreeCAD as App
import Assembly4

doc = App.newDocument("Assembly")
# Add parts
Part1 = doc.addObject("Part::Box", "Block1")
Part1.Length, Part1.Width, Part1.Height = 10, 10, 10
Part2 = doc.addObject("Part::Cylinder", "Cylinder1")
Part2.Radius, Part2.Height = 3, 15

# Create assembly
asm = doc.addObject("App::Part", "Assembly")
asm.Type = "Assembly"
asm.addObject(Part1)
asm.addObject(Part2)

# Apply constraint (simplified)
# In practice, use Assembly4's Constraint class for full functionality
App.ActiveDocument.recompute()

Інструменти BIM та архітектурного моделювання

FreeCAD включає спеціалізовані інструменти для моделювання будівельної інформації (BIM) та архітектурного проектування за допомогою робочого середовища Arch. Користувачі можуть створювати стіни, підлоги, дахи, вікна, двері та конструктивні елементи, використовуючи інтуїтивні параметричні об’єкти. Ці об’єкти автоматично оновлюються при зміні їх параметрів, підтримуючи ітеративний дизайн та відповідність будівельним нормам. Робоче середовище підтримує імпорт/експорт IFC (Industry Foundation Classes), забезпечуючи взаємодію з промисловими BIM‑програмами, такими як Revit та Archicad. Такі функції, як планування ділянки, налаштування енергетичного аналізу та підрахунок матеріалів, роблять FreeCAD придатним для раннього етапу архітектурного проектування та документації. Крім того, робочі середовища Draft і Sketcher безшовно інтегруються для створення точних планів поверхів та фасадів, а робоче середовище Drawing генерує будівельні документи з анотаціями, розмірами та графіками.

Створіть стіну та додайте вікно за допомогою Python API

import FreeCAD as App
import Arch

doc = App.newDocument("Building")
# Create wall
Wall = Arch.makeWall(length=5000, width=200, height=3000)
Wall.Base = Arch.makeSketch([0,0,0], [5000,0,0], [5000,200,0], [0,200,0])

# Create window
Window = Arch.makeWindow(1200, 1500)
Window.Base = Arch.makeSketch([1000,100,0], [2200,100,0], [2200,1600,0], [1000,1600,0])
Window.Host = Wall

App.ActiveDocument.recompute()
 Українська