Getting started

What's new

 * Version 0.17 Release notes : Check what's new in the 0.17 release of FreeCAD
 * Version 0.16 Release notes : Check what's new in the 0.16 release of FreeCAD
 * Version 0.15 Release notes : Check what's new in the 0.15 release of FreeCAD
 * Version 0.14 Release notes : Check what's new in the 0.14 release of FreeCAD
 * Version 0.13 Release notes : Check what's new in the 0.13 release of FreeCAD
 * Version 0.12 Release notes : Check what's new in the 0.12 release of FreeCAD
 * Version 0.11 Release notes : Check what's new in the 0.11 release of FreeCAD

Foreword
FreeCAD is a 3D CAD/CAE parametric modeling application. It is primarily made for mechanical design, but also serves all other uses where you need to model 3D objects with precision and control over modeling history.

FreeCAD has been under development for some time now, and it offers you a large list of features. Capabilities are still missing, especially compared to commercial solutions, and may not be complete enough to use in most production environments, but it is powerful enough for most hobbyist use, and many smaller workshops. There is a fast-growing community of enthusiastic users who participate in the FreeCAD forum, and you can find many examples of quality projects developed with FreeCAD there.

Like all open-source projects, the FreeCAD project is not a one-way work delivered to you by its developers. It depends much on its community to grow, gain features, and stabilize (get bugs fixed). So don't forget this when using FreeCAD; if you like it, you can directly influence and help FreeCAD!

Installing
First of all (if not done already) download and install FreeCAD. See the Download page for information about current versions and updates, and the Installing page for information about how to install FreeCAD. There are install packages ready for Windows (.msi), Ubuntu & Debian (.deb) openSUSE (.rpm) and Mac OSX. FreeCAD is available to install from the package managers of many other Linux distros, and a standalone executable AppImage is available that will run on most 64-bit linux systems. As FreeCAD is open-source, if you are adventurous, but want to have a look at the brand-new features being developed right now, you can also grab the source code and compile FreeCAD yourself.

Exploring FreeCAD



 * 1) The 3D view, showing the contents of your document
 * 2) The tree view, which shows the hierarchy and construction history of all the objects in your document
 * 3) The properties editor, which allows you to view and modify properties of the selected object(s)
 * 4) The report view (or output window), which is where FreeCAD prints messages, warnings and errors
 * 5) The python console, where all the commands executed by FreeCAD are printed, and where you can enter python code
 * 6) The workbench selector, where you select the active workbench

The main concept behind the FreeCAD interface is that it is separated into workbenches. A workbench is a collection of tools suited for a specific task, such as working with meshes, or drawing 2D objects, or constrained sketches. You can switch the current workbench with the workbench selector (6). You can customize the tools included in each workbench, add tools from other workbenches or even self-created tools, that we call macros. Widely used starting points are the PartDesign Workbench and Part Workbench

When you start FreeCAD for the first time, you are presented with the start center. Here is what it looks like for version 0.16:

For FreeCAD 0.17 see this [[Media:Startcenter0.17.jpg|start center]] screenshot.

The Start Center allows you to quickly jump to one of the most common workbenches, open one of the recent files, or see the latest news from the FreeCAD world. You can change the default workbench in the preferences.

Navigating in the 3D space
FreeCAD has several different navigation modes available, that change the way you use your mouse to interact with the objects in the 3D view and the view itself. One of them is specifically made for touchpads, where the middle mouse button is not used. The following table describes the default mode, called CAD Navigation (You can quickly change the current navigation mode by right-clicking on an empty area of the 3D view):

You also have several view presets (top view, front view, etc) available in the View menu, on the View toolbar, and by numeric shortcuts (,, etc...). By right-clicking on an object or on an empty area of the 3D view, you have quick access to some common operations, such as setting a particular view, or locating an object in the Tree view.

First steps with FreeCAD
FreeCAD's focus is to allow you to make high-precision 3D models, to keep tight control over those models (being able to go back into modelling history and change parameters), and eventually to build those models (via 3D printing, CNC machining or even construction worksite). It is therefore very different from some other 3D applications made for other purposes, such as animation film or gaming. Its learning curve can be steep, especially if this is your first contact with 3D modeling. If you are struck at some point, don't forget that the friendly community of users on the FreeCAD forum might be able to get you out in no time.

The workbench you will start using in FreeCAD depends on the type of job you need to do: If you are going to work on mechanical models, or more generally any small-scale objects, you'll probably want to try the PartDesign Workbench. If you will work in 2D, then switch to the Draft Workbench, or the Sketcher Workbench if you need constraints. If you want to do BIM, launch the Arch Workbench. If you are working with ship design, there is a special Ship Workbench for you. And if you come from the OpenSCAD world, try the OpenSCAD Workbench.

You can switch workbenches at any time, and also customize your favorite workbench to add tools from other workbenches.

Working with the PartDesign and Sketcher workbenches
The PartDesign Workbench is specially made to build complex objects, starting from simple shapes, and adding or removing pieces (that we call "features"), until you get to your final object. All the features you applied during the modelling process are stored in a separate view called the tree view, which also contains the other objects in your document. You can think of a PartDesign object as a succession of operations, each one applied to the result of the preceding one, forming one big chain. In the tree view, you see your final object, but you can expand it and retrieve all preceding states, and change any of their parameter, which automatically updates the final object.

The PartDesign workbench makes heavy use of another workbench, the Sketcher Workbench. The sketcher allows you to draw 2D shapes, which are defined by applying Constraints to the 2D shape. For example, you might draw a rectangle and set the size of a side by applying a length constraint to one of the sides. That side then cannot be resized anymore (unless the constraint is changed).

Those 2D shapes made with the sketcher are used a lot in the PartDesign workbench, for example to create 3D volumes, or to draw areas on the faces of your object that will then be hollowed from its main volume. This is a typical PartDesign workflow:


 * 1) Create a new sketch
 * 2) Draw a closed shape (make sure all points are joined)
 * 3) Close the sketch
 * 4) Expand the sketch into a 3D solid by using the pad tool
 * 5) Select one face of the solid
 * 6) Create a second sketch (this time it will be drawn on the selected face)
 * 7) Draw a closed shape
 * 8) Close the sketch
 * 9) Create a pocket from the second sketch, on the first object

Which gives you an object like this:



At any moment, you can select the original sketches and modify them, or change the extrusion parameters of the pad or pocket operations, which will update the final object.

Working with the Draft and Arch workbenches
The Draft Workbench and Arch Workbench behave a bit differently than the other workbenches above, although they follow the same rules, which are common to all of FreeCAD. In short, while the Sketcher and PartDesign are made primarily to design single pieces, Draft and Arch are made to ease your work when working with several, simpler objects.

The Draft Workbench offers you 2D tools somewhat similar to what you can find in traditional 2D CAD applications such as AutoCAD. However, 2D drafting being far away from the scope of FreeCAD, don't expect to find there the full array of tools that these dedicated applications offer. Most of the Draft tools work not only in a 2D plane but also in the full 3D space, and benefit from special helper systems such as Work planes and object snapping.

The Arch Workbench adds BIM tools to FreeCAD, allowing you to build architectural models with parametric objects. The Arch workbench relies extensively on other modules such as Draft and Sketcher. All the Draft tools are also present in the Arch workbench, and most Arch tools make use of the Draft helper systems.

A typical workflow with Arch and Draft workbenches might be:


 * 1) Draw a couple of lines with the Draft Line tool
 * 2) Select each line and press the Wall tool to build a wall on each of them
 * 3) Join the walls by selecting them and pressing the Arch Add tool
 * 4) Create a floor object, and move your walls in it from the Tree view
 * 5) Create a building object, and move your floor in it from the Tree view
 * 6) Create a window by clicking the Window tool, select a preset in its panel, then click on a face of a wall
 * 7) Add dimensions by first setting the working plane if necessary, then using the Draft Dimension tool

Which will give you this:



More on the Tutorials page.

Scripting
And finally, one of the most powerful features of FreeCAD is the scripting environment. From the integrated python console (or from any other external Python script), you can gain access to almost any part of FreeCAD, create or modify geometry, modify the representation of those objects in the 3D scene or access and modify the FreeCAD interface. Python scripting can also be used in macros, which provide an easy method to create custom commands.