Power users hub
Este é o local ideal para você, se for um usuário experiente e deseja aprender mais sobre como personalizar e expandir o FreeCAD.
O FreeCAD é extensível por meio de código Python que é executado diretamente no console Python, ou carregado a partir de módulos na inicialização. Isso significa que você pode modificar o FreeCAD sem precisar recompilar o programa. Por exemplo, você pode:
- Criar e modificar geometria: você pode criar um novo tipo de objeto, seja do zero ou adaptando um tipo existente.
- Criar ferramentas e comandos personalizados: adicione seu próprio conjunto de ferramentas que executam seu código.
- Modificar a interface: crie barras de ferramentas para adicionar suas ferramentas, crie janelas especiais, painéis ou interfaces para interagir com suas ferramentas.
- Modificar a representação do scenegraph: O FreeCAD possui processos separados para construir a geometria e exibi-la na tela. Você tem acesso total à maneira como o conteúdo da cena é exibido, portanto, pode modificar essa representação, interagir com ela ou adicionar comportamentos personalizados. Também é possível adicionar widgets de tela personalizados, como informações, manipuladores, âncoras ou entidades temporárias.
Se quiser contribuir com conteúdo para estas páginas, solicite uma conta wiki com permissões de editor no fórum e leia as WikiPages para obter as directrizes gerais que deve seguir. Para outras formas de contribuir para o projeto, consulte a página Ajuda do FreeCAD.
Customizando o FreeCAD
- Personalização da Interface: Começar pelo princípio: Barras de ferramentas e atalhos
- Trabalhar com Macros: Grava facilmente tarefas repetidas com frequência ou código Python
- Receitas de Macros
- Personalizar Barras de Ferramentas
- Installing more workbenches
Scripting no FreeCAD
Geral
- Scripting e Macros - Uma lista de páginas wiki relevantes
- Introdução ao Python - Veja também outros tutoriais de Python no final desta página
- Tutorial de script do FreeCAD - Uma visão geral do script em Python no FreeCAD
- Noções básicas de script no FreeCAD: Bem, o básico
- Manual do FreeCAD - Secção Script em Python: Introdução em vários capítulos ao script em Python no FreeCAD
- Comando GUI: Adicionar comandos personalizados à interface gráfica
- Utilização de Unidades mistas no FreeCAD
- Criando perfil o código Python
- Debug o código Python código
- Ambiente de Desenvolvimento Python - Um ambiente de desenvolvimento simplificado para Python dentro do FreeCAD
Modulos
A funcionalidade do FreeCAD está dividida em Módulos, que lidam com tipos de dados e aplicações especiais. O FreeCAD possui módulos integrados e Módulos de Extensão (plug-ins). Após a instalação dos módulos plugin, estes ficam disponíveis para si com a mesma facilidade dos módulos integrados. Os módulos descritos abaixo são os módulos standard, incluídos em todas as instalações do FreeCAD.
- Os Módulos integrados são os principais módulos do FreeCAD. Eles contêm ferramentas para manipular as definições gerais do FreeCAD, documentos e os seus conteúdos.
- Criação de bancada mostra como criar a sua própria bancada
Trabalhando com Malhas
- Mesh Scripting: Como interagir com o Mesh Workbench
Trabalhando com peças
- Part Workbench: Como as ferramentas e a estrutura da Open CASCADE Technology são utilizadas no FreeCAD
- Scripting de dados topológicos: Como interagir com o Módulo Parts
- PythonOCC: Como libertar todo o poder do Open CASCADE
- Malha para Peça: Conversão entre tipos de objetos
Aceder ao gráfico de cena da moeda
- The Coin/Inventor Scenegraph: Como funciona a representação de cenas do FreeCAD
- Pivy: Como aceder e modificar o Scenegraph
Controlling the Qt interface
- PySide: How to access the interface, and modify its contents
- Using the FreeCAD GUI in another Qt application with PyQt
Working with parametric objects
- Scripted objects: how to make 100% Python-scripted objects.
- Scripted objects with attachment: how to make scripted objects attachable to other objects.
- Scripted objects saving attributes: how to save and restore attributes of the proxy class with
dumpsandloads. - Scripted objects migration: how to migrate old scripted objects to a new class.
Exemplos
- Code snippets : A collection of pieces of FreeCAD Python code, to serve as ingredients in your scripts...
- Line drawing function: How to build a simple tool to draw lines
- Dialog creation: How to construct dialogs with Qt designer, and use them in FreeCAD
- Embedding FreeCAD: How to import FreeCAD as a Python module in other applications
- The Draft Workbench adds basic 2d drawing functions to freecad. It is written entirely in Python, so it can be a good example if you want to write your own modules.
- FreeCAD vector math library : A couple of handy functions to manipulate FreeCAD vectors. This library is also included in the Draft module.
API Functions
The complete API documentation of FreeCAD is located at https://freecad.org/api/ . It contains both C++ and Python APIs, and is not totally well formatted yet, which can be confusing when looking for python-only code. An easier to browse version can be found here. Note that it can be incomplete, since it is updated manually. For more accurate information, browse the modules directly from FreeCAD's Python console.
Related: Exposing C++ to Python
Advanced modification
- Start up and Configuration: Startup and command line options
- Installing on Windows: Using the windows installer
- Compiling FreeCAD on Windows and Compiling FreeCAD on Linux
- Branding: Simple modifications you can do to the source code to change some aspects of FreeCAD
- Extra python modules : Extend the FreeCAD python interpreter with these powerful modules!
Python tutorials
These are good generic tutorials, not specific to FreeCAD, that might interest you if you are totally new to python.
Python
- Official python tutorial - A very complete tutorial for discovering python
- Non-programmer tutorial for python - an excellent wikibook
- Python for newbies - one big tutorial covering all the basics
PySide - Como criar e gerir a interface Qt UI do FreeCAD em Python
- Tutorial do PySide: Um tutorial independente da plataforma que mostra a utilização do PySide com exemplos
- Tutorial do PySide/PyQt: Um tutorial de fácil leitura que aborda o PySide e o PyQt com exemplos
- Documentação do PySide: do Qt Project (os mesmos autores)
- Usando o QtCreator no PySide: também do Qt Project
- PySide Reference: Detalhes infinitos sobre os detalhes do PySide e do Qt, uma fonte de referência fiável
- Fragmentos de código do PySide: uma base de dados pesquisável de fragmentos de código do PySide
As duas referências seguintes são específicas para PyQt (não para PySide), mas podem oferecer algumas informações úteis:
- PyQt basic tutorial: Um tutorial simples e curto baseado em Linux que explicará como trabalhar com PyQt e Qt Designer
- Programação de aplicações Qt em Python: Um tutorial mais aprofundado que abrange todo o processo de trabalho com QT e Python
Pivy - Como interagir com cenas 3D do FreeCAD
- Pivy - Incorporando uma Linguagem de Script Dinâmico numa Biblioteca de Gráficos de Cena: Tese que explica o Pivy em detalhe
- Programação de Gráficos 3D de Alto Nível em Python: Exemplo de Pivy do Pycon 2004
- Apresentando o Pivy ao studierstube (Mirror): Um artigo que não é propriamente um tutorial, mas que ilustra bem o funcionamento do Pivy (requer uma conta académica)
Projetos comunitários
No Portal da Comunidade, você pode encontrar outros projetos baseados no FreeCAD, geridos pela comunidade de utilizadores do FreeCAD. Se estiver a iniciar um novo projeto no FreeCAD, não deixe de o listar lá! Temos também uma página com dicas para si se quiser Ajudar o FreeCAD.
- FreeCAD scripting: Python, Introduction to Python, Python scripting tutorial, FreeCAD Scripting Basics
- Modules: Builtin modules, Units, Quantity
- Workbenches: Workbench creation, Gui Commands, Commands, Installing more workbenches
- Meshes and Parts: Mesh Scripting, Topological data scripting, Mesh to Part, PythonOCC
- Parametric objects: Scripted objects, Viewproviders (Custom icon in tree view)
- Scenegraph: Coin (Inventor) scenegraph, Pivy
- Graphical interface: Interface creation, Interface creation completely in Python (1, 2, 3, 4, 5), PySide, PySide examples beginner, intermediate, advanced
- Macros: Macros, How to install macros
- Embedding: Embedding FreeCAD, Embedding FreeCADGui
- Other: Expressions, Code snippets, Line drawing function, FreeCAD vector math library (deprecated)
- Hubs: User hub, Power users hub, Developer hub