
FreeCAD
Modelador CAD 3D Paramétrico de Código Aberto
Crie, Modifique e Automatize Projetos 3D com API Python para Engenharia Mecânica, Arquitetura e Design de Produto.
O que é o FreeCAD?
FreeCAD é um poderoso modelador CAD paramétrico 3D de código aberto projetado para criar objetos do mundo real de qualquer tamanho. Ele suporta modelagem paramétrica, permitindo que os usuários modifiquem facilmente os projetos ajustando parâmetros no histórico do modelo. Construído sobre uma arquitetura robusta usando OpenCASCADE, Coin3D, Qt e Python, o FreeCAD atende a engenharia mecânica, arquitetura, design de produtos e muito mais. Sua flexível API Python capacita desenvolvedores e usuários avançados a automatizar tarefas, estender funcionalidades e integrar com ferramentas externas. Seja você um hobbyista, estudante, engenheiro ou educador, o FreeCAD oferece uma plataforma de nível profissional para design 3D sem custos de licenciamento.
A principal força do FreeCAD reside em sua capacidade de conectar esboço 2D e modelagem 3D, permitindo que os usuários criem perfis 2D restritos por geometria e os extruam em recursos 3D. Inclui bancadas de trabalho especializadas para Design de Peças, Montagem, Desenho, Arquitetura e mais. O aplicativo roda nativamente no Windows, macOS e Linux, garantindo ampla acessibilidade. Com suporte ativo da comunidade, documentação abrangente e uma arquitetura modular de plugins, o FreeCAD é ideal tanto para iniciantes quanto para profissionais de CAD experientes que buscam uma alternativa transparente, personalizável e gratuita às ferramentas proprietárias. Sua integração com fluxos de trabalho de simulação e fabricação o torna adequado para todo o ciclo de vida de desenvolvimento de produtos.
Começando com o FreeCAD
FreeCAD está disponível como instaladores pré-compilados para Windows, macOS e Linux na página de lançamentos mais recentes. No Linux, costuma estar disponível através do gerenciador de pacotes ou centro de software da sua distribuição. Para desenvolvedores e usuários avançados, a compilação a partir do código-fonte é suportada usando CMake. O Manual do Desenvolvedor oficial fornece instruções detalhadas de compilação. Após a instalação, inicie o FreeCAD e explore as bancadas de trabalho via a barra de ferramentas. O console Python e o sistema de macros permitem automação e personalização. Para recursos de aprendizado, visite o guia Começando na wiki do FreeCAD.
Instale o FreeCAD via Gerenciador de Pacotes (Linux) ou Baixe
# Ubuntu/Debian
sudo apt install freecad
# macOS (Homebrew)
brew install --cask freecad
# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest
Modelagem 3D paramétrica com API Python
O motor de modelagem paramétrica do FreeCAD permite que os usuários definam objetos com parâmetros editáveis, possibilitando iterações de design simplesmente ajustando valores. A API Python expõe toda a pilha de modelagem, permitindo que desenvolvedores criem geometrias complexas programaticamente. Usando as bancadas Part e PartDesign, você pode gerar primitivas, realizar operações booleanas, adicionar chanfros/arredondamentos e criar recursos como pads, pockets e revoluções — tudo via Python. Essa capacidade é essencial para design generativo, otimização topológica e integração do CAD com fluxos de trabalho de simulação ou fabricação. A API suporta abordagens orientadas a objetos e funcionais, tornando-a adequada para scripts, macros e plugins completos. Com acesso ao kernel OpenCASCADE subjacente, o FreeCAD oferece operações geométricas de nível profissional mantendo a facilidade de uso para iniciantes.
Crie um cubo paramétrico e modifique suas dimensões via 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()
Estação de trabalho de esboço 2D e desenho
FreeCAD inclui um ambiente robusto de esboço 2D integrado ao pipeline de modelagem 3D. O workbench Sketcher permite que os usuários desenhem perfis 2D com restrições geométricas usando linhas, arcos, círculos e splines. Restrições como horizontal, vertical, paralela, perpendicular e restrições dimensionais garantem controle preciso sobre a geometria do esboço. Uma vez concluídos, esses esboços servem como base para recursos 3D como extrusões, revoluções e lofts. Além disso, o workbench Draft fornece ferramentas para criar desenhos vetoriais 2D sem restrições, ideal para plantas arquitetônicas ou ilustrações técnicas. O workbench Drawing permite a geração de projeções ortográficas, vistas de seção e desenhos anotados a partir de modelos 3D, suportando documentação técnica compatível com ISO, com dimensionamento, tolerâncias e recursos de lista de materiais.
Crie um Esboço, Adicione Restrições e Extruda para Formar um Elemento 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()
Projeto de montagem e resolução de restrições
FreeCAD suporta modelagem de montagem complexa através das bancadas Assembly4 e Assembly3, permitindo que os usuários combinem várias peças em mecanismos funcionais. As montagens são construídas usando restrições como coincidente, paralela, perpendicular, tangente e de distância para definir posições relativas e movimentos entre os componentes. O solucionador atualiza automaticamente a montagem quando qualquer peça ou restrição é modificada, garantindo a integridade do projeto. Essa capacidade é vital para tarefas de engenharia mecânica como cascatas de engrenagens, articulações e projetos de carcaças. As montagens podem ser exportadas como arquivos STEP para colaboração com outros sistemas CAD, e a simulação de movimento é possível através da integração com ferramentas externas como Yade ou scripts Python personalizados. A natureza paramétrica do FreeCAD garante que alterações em peças individuais se propaguem automaticamente para a montagem, reduzindo atualizações manuais e minimizando erros.
Crie uma Montagem Simples com Duas Peças e Aplique uma Restrição Coincidente
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()
Ferramentas BIM e de modelagem arquitetônica
FreeCAD inclui ferramentas especializadas para Modelagem da Informação da Construção (BIM) e design arquitetônico através da bancada Arch. Os usuários podem criar paredes, pisos, telhados, janelas, portas e elementos estruturais usando objetos paramétricos intuitivos. Esses objetos são atualizados automaticamente quando seus parâmetros mudam, suportando design iterativo e conformidade com códigos de construção. A bancada suporta importação/exportação IFC (Industry Foundation Classes), permitindo interoperabilidade com softwares BIM padrão da indústria como Revit e Archicad. Recursos como planejamento de local, configuração de análise energética e quantificação de materiais tornam o FreeCAD adequado para design arquitetônico e documentação em estágios iniciais. Além disso, as bancadas Draft e Sketcher se integram perfeitamente para criar plantas baixas e elevações precisas, enquanto a bancada Drawing gera documentos de construção com anotações, dimensões e cronogramas.
Crie uma Parede e Adicione uma Janela Usando a API Python
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()
