FreeCAD Arch module development status

There is quite some time I didn't write about what's going on with the FreeCAD Arch module development, so here it goes. Keep in mind that all this is still in heavy development, so it will only be available in next release (unless you use a development version of course!) and it still has many bugs. Even so, I think there is some interesting stuff to show...

The first main improvement is not in the Arch module itself but in the Draft module. The whole snapping system has been fully redone, and now features proper and extensible API and interface, clear icons, and a control toolbar. The Draft snap system is used by all Draft commands and by the Arch Wall tool, which is at the moment the only tool which has a drawing system.

The Arch Wall tool has been redone too. You have now 2 ways to make a wall: Either by selecting a 2D shape (wire, sketch, etc...) and pressing the Wall button, in which case the new wall will take the selected object as baseline, or without anything selected. In the latter case, you enter a wall drawing mode, where walls can be drawn as easily as lines.

Walls also have a new way to connect to each other, and will now auto-connect when you snap to an existing wall segment. This is done in 2 manners: If both wall segments have same width, height and alignment, the baseline of the new segment is simply added to the base sketch of the existing segment. If not, then the new wall receives its own base sketch, and it is added to the existing wall as addition.

The window tool has also been completely redone. Windows can now only be created on top of an existing 2D object (draft or sketch). Which leads to the extremely intuitive new way to make windows in FreeCAD: Draw them directly on the walls!

The technique is simple, you must simply draw a sketch with a serie of closed wires. Then these wires can be used to define window parts (frames, panels, etc...). When pressing the window button, a default window is created, with a default window part, by subtracting the inner wires from the biggest one. you can then edit these window parts, add new ones, etc... By double-clicking the window object in the tree.

The windows also automatically create a hole in the walls they are inserted in. To insert a window in a wall, select the window and the wall, and press the Arch Subtract button. If you create a window with another window selected, you'll create a clone of that window, which can be moved and inserted in other walls, but keeps the same shape of the base one.

Another new tool that has been added is the Arch Roof tool. It works only with a face selected. It then creates a sloped roof on top of that face. You can change the slope angle in its properties. It is still bery basic, all panes have the same angle, and it fails in many complex cases such as angles different than 90°, but for most roofs it already works pretty well:

The Arch group objects (floor, building, site) are also being reworked, and are now based on FreeCAD group objects, which means you can drag&drop to/from them in the tree.

And finally, I also did some further work in the Vector renderer and the Drawing module. The vector renderer is getting more stable, and is now able to work with rather complex models without errors (although it is beginning to be slow... It might be time to redo it in C++ soon). The Drawing workbench also has a new clip object, which can be used to clip a Drawing view to a certain rectangle.

We're now slowly going towards next release, so I think most of my efforts until then will go into bugfixing rather than adding new features. Anyway, I believe we're kind of reaching a state where it begins to be possible to do quite complex architecture models already. I'll try to post some examples soon...