FreeCAD tutorial on Architecture
FreeCAD is a parametric 3D modeler. Parametric modeling allows you to easily modify your design by going back into your model history and changing its parameters. FreeCAD is open source (LGPL license) and very modular, allowing for very advanced extension and customization, specially thanks to its intensive use of the Python language.
You have the choice to install the latest stable version (as of today, may 2015: version 0.15) or a development version (currently 0.16). In fact, development versions of FreeCAD are usually pretty stable, and you are stongly encouraged to try a development version, unless you have a specific reason not to do so. Since FreeCAD development is quite fast, be sure, if you are downloading manually, to check back from time to time and reinstall/update to benefit from latest improvements.
Additional optional contents:
The collection of tutorials available on the FreeCAD wiki is still very sparse. However, many members of the FreeCAD community use youtube to publish video tutorials. Be sure to search for FreeCAD-related contents on youtube, that is certainly the best source of learning material.
FreeCAD is a very technical application, and its learning curve can be steep. Be sure to rely on tutorials, the documentation wiki and don't hesitate to ask questions on the forum if you meet a specific problem. Questions that are clearly enunciated usually receive very fast and extensive replies.
A very rough list of things you must know:
To showcase a typical workflow in FreeCAD, let's model a roof panel as described on http://opensourceecology.org/wiki/MicroHouse_4_Roof_-_Module_-_Build_Instructions. To do that,we will start from drawing the different pieces in a 2D constrained sketch, then we will take advantage of the special Arch Window object, which is able to build complex 3D objects from a 2D sketch containing the contours of several pieces. Finally, since what we need is not a window but a roof panel, we will simply convert our window object to another Arch type.
In menu Edit → Preferences → General → Units
Usually, unless there is a specific reason not to do so,you'll always want to start drawing your 2D sketches on the ground plane, around the (0,0) origin point. Then, it is the 3D object generated from that, that will be moved/rotated into position.
Don't worry about the dimensions your pieces have when you draw them, the constraints will resize them accordingly. To add a dimension constraint (vertical or horizontal), you can either select a line, or two points (with CTRL pressed).
This ensures that our two rectangles are correctly positioned in relatin to each other.
Add two more rectangles and repeat the process. Note that in the example above, we didn't specify the length of these pieces, but rather placed a distance constraint between their extremities and the long vertical pieces, and we let a small gap of 0.05 inches between them. This is because if we make the rectangles touch each other, FreeCAD might deduce the loops wrongly, and we might get strange results with the Arch window tool. This little trick ensures that each rectangle will be recognized as an independent loop by the Arch window tool.
Same thing. Make them 6 inches wide, and separated them from other rectangles by 0.05 inches.
Depending on your system, FreeCAD might begin to be slow to process new constraints. This is the disadvantage of using constrained objects, they quickly swallow up a lot of system resources. You must always consider if you absolutely need them. You can also delete constraints when they have done their job. These dimensions won't be fixed anymore, but unless you move the pieces around, they won't change. If needed, you can aslo always re-add constraints later.
In our case, our total length is 192 inches, minus the two end pieces (2 x 2 inches) and the two corner reinforcements (2 x 6 inches), = 192 – (4 + 12) = 176. Removing the 7 reinforcement pieces ( 7 x 2 ) = 162. Divinding this by 8 gives us the space between each reinforcement: 20.25.
On the right panel, you can see the message “2 degrees of freedom”. This means that our sketch is not fully constrained (it still has two “ways” of being deformed). This is because, although no piece of it can now move in relation to the others, the whole sketch can still move vertically and horizontally. To prevent this, we can simply take one of its corner points, select the origin point of the grid (where the green and red axes intersect) and press the Point Constraint button. This turns our sketch green, meaning it is fully constrained, no part of it can move anymore.
This is actually not absolutely necessary. But it is always better to keep track of the exact position of objects (we are now certain that our corner is at the (0,0) point). In case something goes wrong later, or we need to figure out the position of an object built upon this sketch, this will be useful.
We can now press the “close” button and our base sketch is built:
Our sketch has now vanished and one of its rectangles has been extruded slightly into a solid piece:
Although this seems wrong, it is simply because the Arch Window tool has created a default piece from the biggest loop it could find in the base sketch. We will fix that soon. Also, notice take note that the sketch has not disappeared, it has simply been turned off and “swallowed” by its new parent object. You can still find it in the tree view, by expanding the window object, and turn its display on/off by pressing the SPACE key.
When double-clicking the window, its base sketch becomes visible again, and we get its edit interface: At the left, a list of the loops found in the base sketch, at the right the solid pieces built on it.
Begin with removing the “Default” piece.
Then, select the first loop (Wire0). It will highlight in the 3D view. Press the “Add” button to create a new piece from it. Give it a name, make sure the correct wire is set, and give it a 6 inches extrusion. The offset should stay 0 since we want it placed “on the ground”.
The “Type” value will be used to attribute materials to the window (not implemented yet), so you can currently leave to “Frame”.
Then press the “Create component” button. Sometimes FreeCAD fails to guess correctly the direction of the extrusion, and you must therefore edit your component and change the 6 inches value by -6 inches.
Repeat this for all the needed pieces:
When closing the edit panel we obtain the object above. Note that by default, window objects are represented semi-transparent. Since this will actually not be a window, we can just turn that off by setting its Transparency value to 0 in its View properties.
We now have our panel frame, but not the base panel itself. To do that, the best way is to open our base sketch, and add a new rectangle. Remember though to not make any of the corners of that rectangle coincident to corners of other rectangles, in order not to confuse our window object, which might require us to redo the whole series of components if the order of the loops would change.
We can therefore constrain this new rectangle 0.05 inches inside the perimeter. This will require us to place 4 new constraints.
We can then edit our window again, and add new components. We can see that a new Wire has been found. This time, we will use it to add a 8mm polycarbonate panel (note that you can mix units without problems in FreeCAD, and write “8mm” as the thickness, even if you are working in inches). We will also give it an offset of 0.05 inches, so it is slightly offsetted from the frame, just for consistency, as all the parts of our object have that offest between them.
We can now create another component based on the same Wire, in order to place another panel on top of our frame. This time, we will give it an offset of 6.05 inches. Our panel is finally complete:
This is not really necessary at the moment, but it might become important later when we export or work to other construction-oriented applications, for example via IFC, we don't want our panel to be identified as a window.
The Arch workbench of FreeCAD provides an easy way to handle that, which is that any object type can always become another, by being the base of another type. In this case, let's turn our window into a Panel object, simply by selecting the window and pressing the Panel tool.
Notice that the color of the resulting panel has changed, that is because materials support in FreeCAD and the Arch module is still incomplete. When it is finished, this will be properly handled.
Our panel can then be duplicated and copied over in several ways, for example by using copy/paste. But a more interesting way is to use the Draft Clone tool (also present on the Arch workbench, like all other Draft tools). The Clone tool keeps the relationship between the base object and its clone, so any modification to the base object will reflect in all its clones.
In the current development version of FreeCAD, clones of Arch objects are now Arch objects themselves too.
While the assembly workbench of FreeCAD is not ready yet, we need to position our pieces manually, either by manipulating their Placement property, or by using the Draft Move and Rotate tools, which are actually only visual ways to modify the Placement of objects.
Both Draft Rotate and Move tools make use of the Draft Snapping system. Different snapping positions (endpoints, midpoints, etc) are available, that can be switched on/off, allowing to perform very precise positionning and rotations.