This is a space to throw ideas for a new formatting of the documentation homepage, table of contents and hubs (the idea is to merge both into one). Please do not translate!
Inspirations & ideas:
- Tutorials are not a standalone link but each section should have a box with related leaning material and tutorials
- HELP NEEDED! Do some cleanup work on the page marked with "CLEANUP" below, and add the missing tools in workbenches
Aside from the documentation below, this wiki contains a lot of tutorials. See the sideboxes below for tutorials and learning material related to each subject.
This is the documentation website of FreeCAD. It is written by the community of FreeCAD users and developers, and is continuously being updated and extended. It might therefore contain errors, inaccuracies, or articles that describe functionality that is not yet available on the version you have installed. We try our best to fix these and make this documentation better, don't hesitate to help and contribute!
FreeCAD is an open-source general purpose parametric 3D CAD modeler, made for product design, that is, anything you plan to build in the real world. It is mainly made for two categories of users: Professional users from the fields of mechanical engineering and product design but also from a wider range of uses around engineering, such as architecture or other engineering specialties, and also hobbyist and casual users who need a tool to model objects they want to build or 3D print.
Modeling for product design is usually a complex task, where precision is important. FreeCAD is therefore also a complex tool with a fair learning curve. This documentation will hopefully help to make this learning phase an interesting and enjoyable experience.
Basic modeling tutorial: Learn some basic ways to create simple geometry
Video tutorials: Discover the extensive collections of FreeCAD videos made by community members
Discovering and installing FreeCAD
- About FreeCAD: A better and deeper description of the FreeCAD project and application
- Features list: A list of the main features you will find in FreeCAD CLEANUP
- Screenshots: A collection of screenshots showing how the FreeCAD application looks like CLEANUP
- Download instructions, or the best ways to get or update FreeCAD depending on your platform
- Detailed installation instructions for Windows, Linux and Mac
- FAQ: The most frequent asked questions. This will help you with frequent problems and questions
- Getting started: A quick overview of the FreeCAD application and its typical workflows
- Navigating in the 3D space: A complete description of the different ways to use the mouse in FreeCAD
- Working with parametric objects CLEANUP
- Import / Export: How importing and exporting to different file formats work in FreeCAD
Working with workbenches
The FreeCAD interface is based on the concept of workbenches. Workbenches are sets of tools typically designed for a specific task. Switching between these workbenches changes several parts of the FreeCAD interface such as toolbars and menus. Most of the tasks you will do in FreeCAD will take place inside one or more of these workbenches.
The Part Workbench provides basic tools for working with solid parts: primitives, such as cube and sphere, and simple geometric operations and boolean operations. The Part workbench provides the foundation of FreeCAD's geometry system, and is used by almost all other workbenches.
Draft tutorial: A slightly outdated but still useful tutorial showing how to use the Draft tools
The Draft Workbench provides tools to do basic 2D CAD drafting tasks: lines, circles, etc... and also provides generic handy tools that work with all FreeCAD objects, such as move, rotate or scale. It also provides several drawing aids, such as grid and snapping.
The Mesh workbench is dedicated to working with triangular meshes. Although these are not the primary type of geometry to work with in FreeCAD, meshes have a lot of uses, and are fully supported. This workbench contain many tools to work with, fix and analyze meshes.
Sketcher Tutorial: A complete tutorial to show you in depth how the sketcher works
The Sketcher contains tools to build and edit constraint-driven 2D sketches. These are the base blocks on which you can build complex parametric geometry.
The Part design workbench contains advanced tools to build solid parts from sketches. It also contains all the tools from the sketcher, and only produces solid geometry.
Arch tutorial: A complete tutorial that describes the whole process of modeling a building with the Arch workbench step by step
Arch mesh-based tutorial: An article describing how to build architectural models on top of mesh modesl imported from other applications
The Arch workbench contains tools to work with BIM projects (civil engineering and architecture). It also contains all the tools from the Draft workbench.
The Drawing workbench handles the creation and manipulation of 2D drawing sheets, used for displaying views of your 3D work in 2D. These sheets can then be exported to 2D applications or printed.
The Raytracing workbench offers tools to interface with external renderers such as povray or luxrender. Right from inside FreeCAD, this workbench allows you to produce high-quality renderings from your models.
The Fem workbench permits the performing of pre- and post-processing FEM calculations and display the results graphically
The OpenSCAD workbench offer tools for interoperability with OpenSCAD and repairing CSG model history
The Image workbench features tools to work with bitmap images, and import bitmap images as planes in the FreeCAD document, so they can be used for tracing over.
The Robot workbench provides a complete interface to simulate and study robot movements
The Ship workbench is a suite of tools to create and work with ship hulls.
The Plot workbench allows to edit and save output plots created from other modules and tools.
The Spreadsheet workbench permits the creation and manipulation of spreadsheet data, that can be extracted from FreeCAD models.
The workbench system is not to be considered as a limitation to your freedom, but simply a way to organize large quantities of tools and offer different workflows inside a single application. They are however extensively customizable, so you can tailor your interface to your preferences and needs.
- Interface Customization: How to customize the interface, workbench toolbars and keyboard shortcuts.
- User preferences: Understand how those are organized CLEANUP
- Macros: How to create your own tools in FreeCAD
- Macros recipes: Add tools created by FreeCAD users to your installation
Strong support to python scripting is one of the main strengths of FreeCAD. Almost any part of the FreeCAD application is accessible to python scripting: the core application, the interface, the 3D view, and almost all of the modules functionality. Python scripting can be used from the FreeCAD python console, from macros, from external scripts or even from external applications, FreeCAD being importable as a python module.
FreeCAD scripting tutorial: A general look at python scripting in FreeCAD and a gentle introduction to how to work with it...
Tip: If you are interested in helping to develop FreeCAD, even if you work with C++, the python documentation pages are worth reading, since in FreeCAD things work very similarly between python and C++.
- Introduction to Python: See also other Python tutorials at the bottom of this page
- The FreeCAD Document: Description of the FreeCAD document structure CLEANUP
- FreeCAD Scripting Basics: The base concepts of FreeCAD scripting
- Gui Command: Adding custom commands to the GUI
- Using mixed Units in FreeCAD
- The Coin/Inventor scenegraph: How the FreeCAD scene representation works
- Pivy: How to access and modify the scenegraph
- PyQt: How to access the interface, and modify its contents
- Using the FreeCAD GUI in another Qt application with PyQt
- Scripted objects: How to make 100% Python-scripted objects in FreeCAD
- Python API reference: The auto-generated python API reference of FreeCAD
- The Builtin modules contain the general functionality such as opening and saving files
- Mesh Scripting: How to interact with the Mesh Module
- Part scripting: How to interact with the Part Module
- PythonOCC: How to unleash the whole Open CASCADE power
- Mesh to Part: Converting between object types
- Drawing Module: Automating the 3D-to-2D process
- 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
- FreeCAD vector math library : A couple of handy functions to manipulate FreeCAD vectors. This library is part of the Draft module.
The following articles will be useful to you if you wish to look deeper into the FreeCAD source code, modify it, or simply compile FreeCAD yourself on your machine.
- Source code management
- Find assistance when you have a problem or think you may have found a bug
- Compiling on Windows
- Compiling on Unix
- Compiling on Mac
- Licence details about the FreeCAD licences
- Third Party Libraries
- Third Party Tools
- Start up and Configuration
- Source documentation
- The FreeCAD Build Tool
- Adding an application module to FreeCAD
- Debugging FreeCAD
- Testing FreeCAD
- Add Features to FreeCAD or a Workbench
- Branding or how to give FreeCAD a unique look
- Artwork we made for FreeCAD, that you can freely reuse
- Translating FreeCAD
- Extra python modules, or how to extend python functionality within FreeCAD