# FreeCAD

FreeCAD é um modelador CAD paramétrico em 3D, multiplataforma (Windows, Linux e MacOS), livre e de código aberto (sob a licença LGPLv2+) de aplicações gerais. O FreeCAD é voltado diretamente para uso em engenharia mecânica e design de produto, mas também se aplica a uma ampla variedade de utilizações em outros ramos da engenharia, tais como arquitetura ou outras especialidades. O FreeCAD está atualmente em fase beta de desenvolvimento.
O FreeCAD lê e escreve em diversos formatos de arquivo aberto como STEP, IGES, STL, SVG, DXF, OBJ, IFC, DAE e alguns formatos proprietários como DXF e DWG. Lista completa dos formatos compatíveis
O FreeCAD permite utilizar a linguagem de programação Python para criação programada de diversos elementos, sem que seja necessário o uso da interface gráfica de usuário. Além disso, diversos workbenches e ferramentas do FreeCAD são programadas em Python.

## Características Gerais

* Multi-platforma: roda e se comporta da mesma maneira em Windows, Linux e MacOS
* GUI: Possui uma interface gráfica de usuário completa desenvolvida no Qt Framework, um visualizador 3D baseado no Open Inventor; possibilitando rápida renderização de cenas 3D
* Roda em linha de comando: Possibilidade de rodar sem sua interface, mas com acesso a todas as ferramentas. Este modo consome pouca memória, e pode ser usado por outras aplicações para produção de conteúdo.
* Pode ser importado como um módulo Python: Pode ser importado para qualquer aplicação que rode script Python. Tal qual no modo linha de comando, a interface não está disponível, mas todas as ferramentas podem ser acessadas.
* Workbench: As ferramentas são agrupadas por "bancadas de trabalho". Isso permite visualizar apenas as ferramentas necessárias a uma tarefa, mantendo um fluxo de trabalho limpo e permite que a aplicação rode com fluidez.
* Módulos e plug-ins: O FreeCAD é dividido em uma aplicação central (core) com módulos que são carregados quando necessário. Quase todas as ferramentas e geometrias são armazenadas em módulos separados. Módulos se comportam com plugins. Módulos podem ser adicionados ou removidos de uma instalação já existente do FreeCAD
* Associação paramétrica dos objetos do documento: Todos os objetos em um documento FreeCAD podem ser definidos por seus parâmetros. Estes parâmetros podem ser modificados e recomputados a qualquer momento. Desde que a relação entre os objetos sejam mantidas, a modificação de um objeto irá automaticamente se propagar para todos os objetos dependentes.
* Criação paramétrica de primitivos: Objetos primitivos, como caixas, esferas e cilindros, podem ser criados pela especificação de suas restrições geométricas.
* Operações gráficas de modificação: O FreeCAD pode translatar, rotacionar, escalar, espelhar, dar offset e converter formatos, em uma espaço 3D ou plano.
* Geometrias sólidas construtivas (operações booleanas). FreeCAD pode fazer operações construtivas com geometrias sólidas (união, diferença, interseção).
* Criação gráfica de geometrias planas: Criação de linhas, arestas, retângulos e arcos circulares e elípticos em espaço 3D e 2D.
* Modelagem com extrusões retas ou de revolução, seções e filetes
* Componentes de topologia como: vértices, cantos, arestas e planos.
* Teste e reparação de malhas
* Anotações de textos e dimensões.
* Desfazer e refazer: Tudo no FreeCAD pode ser desfeito e refeito. Multiplos passos podem ser desfeitos/refeitos de uma única vez.
* Orientado a transações: A função desfazer/refazer documenta as transações, não apenas ações, permitindo que a ferramenta saiba exatamente o que deve ser desfeito/refeito
* Framework de script integrado: O FreeCAD disponibiliza um interpretador Python integrado, com uma API que cobre quase todas as partes da aplicação, da interface, das geometrias e representações no visualizador 3D. O interpretador pode executar comandos de uma linha e scripts complexos. Módulos inteiros podem ser completamente escritos em Python.
* Console Python integrado: O interpretador Python inclui realce de sintaxe, autocompletar, e navegador de classes. Comandos Python podem ser inseridos diretamente no FreeCAD e imediatamente são retornado os resultados, permitindo que desenvolvedores testem funcionalidades enquanto o FreeCAD está rodando, explorando o conteúdo dos módulos do FreeCAD e aprendendo de maneira fácil como o FreeCAD funciona.
* Iteração entre usuários: Tudo que é feito no FreeCAD com Python pode ser impresso no console e gravado em macros.
* Capacidade completa de gravação e edição de macros: Os comando Python inseridos enquanto o usuário manipula a interface podem ser gravados, editados e salvos para posterior reprodução
* Formato proprietário de documento: Por padrão, os documentos do FreeCAD são salvos na extensão .fcstd (FreeCAD Standart File Format). O documento pode conter diferentes tipos de informações como geometrias, scripts ou ícones. O formato .fcstd é um conteiner zip, já comprimido, salvo através do FreeCAD.
* GUI totalmente customizável e scriptável: A GUI baseada em Qt do FreeCAD é totalmente acessível pelo interpretador Python. O usuário pode modificar qualquer coisa na GUI, como criar, adicionar, modificar e remover itens e/ou barras de ferramentas.
* Ícones de documentos: (Por enquanto, apenas em sistemas Linux) Os ícones de um documento do FreeCAD mostram o seu conteúdo em gerenciadores como o Gnome Nautilus.
* Instalador MSI modular: O instalador do FreeCAD permite uma instalação flexível e limpa nos sistemas Windows.