FreeCAD Arch module development news

It's been a long time I didn't post any update about the Arch module here, but that doesn't mean nothing has happened! It has been about 8 months now since FreeCAD's release 0.13, and release 0.14 should happen around the end of the year. It depends mainly on Jürgen's Assembly module, which now is being contributed to not only by Jürgen himself but also several other people (the branch can already be compiled and tested, if you are brave enough).

On my side, I've been working mainly on 3 things: 1) a couple of improvements to the Draft module, so it becomes easier to use for pure 2D (remember, not the focus, etc, etc... but can be useful here and there anyway), and I plan to add a coule of more tools so you can have a basic autocad workflow there. 2) the spreadsheet module and 3) new Arch objects.

What is implemented so far, besides what I showed in this post about 2D workflow in FreeCAD is this:

Draft hatching

The Draft module now brings basic hatching in the 3D view:

Draft objects have received a "Pattern" property, which list the 5 default patterns of the Draft module (more to come) plus any custom pattern you might have installed via the Draft preferences. Those patterns are simple svg files, that are turned into transparent textures and applied to the object. If these svg files contain attributes, those are used when placing the Draft objects on a Drawing sheet, so the pattern you set in the 3D view gets printed too.

There are still opengl-related problems (the visual artifact you can see on the screenshot), which also appear in other areas of FreeCAD that use transparent textures, that we must fix at some point, but it begins to look good, and making such svg patterns is very easy, so it can be easily extended.

The spreadsheet module

A new workbench is born, with a new object: the spreadsheet:

It is a very simple object, that lives inside the FreeCAD document, and can hold cell contents (a1="yorik", b2="1.93m etc...). It has a simple parser that can evaluate expressions like "=b3*5", like it is commonly used in spreadsheet applications. That object can also be used as a pure python object, with no relationship to FreeCAD.

When editing a spreadsheet object, a spreadsheet view opens, like shown on the screenshot above. Every change you made is saved on the fly, so when finished, you just close the tab.

That spreadsheet object is very simple, very dumb, and is intended that way. We won't recreate a spreadsheet application here, the idea is just to be able to handle spreadsheet data (and save it inside a FreeCAD file).

Another object provided by the spreadsheet module is a cell controller. A cell controller is an object meant to be nested inside a spreadsheet object, and takes control over a series of cells, filling them automatically with values. These values can be taken from the FreeCAD document, and can cover a wide range of uses such as counting objects of a certain type or getting a certain property from certain objects. In the screenshot below, one cell controller extracts the name of all shape-based objects of the document, the other extracts their volume.

The spreadsheet module was coded in python (my very feeble C++ superpowers, as always...) , but a courageous FreeCAD user has already undertaken to convert it to C++, so it becomes more stable, faster, and last but not least, usable by non-python workbenches of FreeCAD.

Arch structural profiles

The structural element of the Arch module has also received some work. The can now have an automatic profile from a simple mouse click (most standard steel beams profiles are there, courageously encoded by the FreeCAD community):

Those structural elements can now also take a wire as extrusion path:

Arch space

A new long-awaited object has appeared in the Arch module: the space.

It works like this: A space always encompasses a solid volume. You can define it from an existing volume, or from bordering faces, or both combined. If you define it only from bordering faces, it is calculated by taking the bounding volume of all those faces, and subtracting what's behind the faces. So we make sure to always have a solid volume. It can also display the floor area (using the "detailed" dislay mode), by taking an horizontal section of the space at its center of mass.

You can also build walls from space faces:

I am not sure this is so useful as it looks, but many people requested to be able to do that, "model with spaces"... To me it looks more like an academic dream, but I'll be happy to be proved wrong.

Arch stairs

Stairs have also been born:

Currently you cannot do very complex stairs, only straight stairs work, but they can already be based on a line, or on nothing at all, in which case you define all parameters numerically. If you use a line as a guide, that line can also be non-horizontal, then it is used to also define the slope. Many properties are already working, such as defining the thickness and nosing of threads, and the structure, that can be massive (concrete) or made of stringers:

I plan of course to add more complex stairs type, but then we will be entering deep and horrible math calculations, from which nobody has ever come back alive...

That's all for now I'm afraid, hope you liked, check the FreeCAD page for ways to be kept informed (google+, facebook, etc) about what happens in the FreeCAD world. And drop on our cool and friendly forum for deeper talk!