FreeCAD Workbench Python Programming
Contents
Introduction
This page is meant as a comprehensive collection of resources for how to create a FreeCAD workbench using Python programming.
Target Audience
This page is meant for people who are comfortable with Python Programming already.
Please refer to other resources for Programming or Python, and do not include them here.
Environment Setup
1. Install FreeCAD
See FreeCAD for instructions.
2. Setting up a Modern Code Editor - VS Code
Related Blog Article: FreeCAD External Editor With Code – OSS
The above resources cover how to enable auto-completion and debugging features.
Where to Learn
Introduction to Scripting in FreeCAD
Articles
Videos
Getting Started with Workbench Programming
- FreeCAD Wiki - Workbench Creation
- FreeCAD Wiki - Module Creation: Setting up a new module manually
- GitHub - Tutorials on how to create your own Python workbench in FreeCAD
- GitHub - (skaiser) Example for getting a basic FreeCAD workbench started
- GitHub - (official) FreeCAD Workbench-Starterkit (NOT COMPATIBLE WITH FREECAD 16)
FeaturePython, Scripted, or Custom Objects
- FreeCAD Wiki - FeaturePython objects
- FreeCAD Wiki - Creating a FeaturePython Box, Part II
- FreeCAD Wiki - App FeaturePython
- FreeCAD Wiki - Scripted objects`
- FreeCAD Wiki - Property
- FreeCAD Wiki - FeaturePython Custom Properties
- FreeCAD Wiki - Scripted objects saving attributes
- FreeCAD Wiki - Viewprovider
Reference
- FreeCAD Wiki - Placement
- FreeCAD Wiki - Command
- FreeCAD Wiki - App GeoFeature
- FreeCAD Wiki - App DocumentObject
- FreeCAD Wiki - Embedding FreeCAD
- FreeCAD Wiki - Matrix API
- FreeCAD Wiki - API Documentation
GUI
Advanced GUI
Part
- FreeCAD Wiki - Part API
- FreeCAD Wiki - Part scripting
- FreeCAD Wiki - Part Module
- FreeCAD Wiki - Topological data scripting
- FreeCAD Wiki - Part TopoShape
- FreeCAD Wiki - TopoShape API
- FreeCAD Wiki - Part Feature
- FreeCAD Wiki - Part Primitives
- FreeCAD Wiki - Std Part
- FreeCAD Wiki - Constructive solid geometry
Part Attachment
- FreeCAD Wiki - Part Attachment
- FreeCAD Forum - Parametric attachment of scripted object
- FreeCAD Forum - Port attachment to be an extension