FreeCAD BIM development news - July/August/September 2020

Hi all,

After a very, very long delay, here comes finally another development report about the BIM tools for FreeCAD. Awfully sorry about the black-out during these last months, lots of things happened (all the 3D&BIM done with FreeCAD and Blender) and of course the pandemic didn't ease things either. Anyway, that doesn't mean nothing happened on the FreeCAD front, on the contrary, bugs still get addressed, things get fin-tuned, ideas get discussed, and FreeCAD gets everyday better.

This last month we also had a hectic turnover, because Autodesk changed the terms of the free version of their Fusion360. There is a full load of new limitations that restrain much the use for personal/hobby users. For example, the g-code you export from Fusion360 to CNC machines (that cut objects out of a block of material), is now making the machine running slower (and therefore raising the production costs), for no apparent reason other than nagging the users into buying a subscription. As a result, we saw a massive migration of users to FreeCAD, and it's really thrilling to see people discovering FreeCAD and learning it and liking it.

Thanks once more to everybody who contributes to my Patreon or Liberapay campaigns, I'm really grateful you guys didn't just drop me away when I fail to write for 3 months.

Also, for who didn't notice, FreeCAD now has a proper Liberapay teams account where all money received is divided equally between the FreeCAD developers registered there (currently 7). This account has seen a huge raise of donations these last weeks (it receives around 1000 USD/month at the moment), thanks to the flow of new ex-Fusion360 users, and the impressive job Kunda1 is doing on the official FreeCAD twitter account (subscribe to it if you are a twitter user, that account used to be just a mirror of the FreeCAD Facebook page, but is now very, very well maintained) and the campaigning of other people (special thanks to my girlfriend, the most awesome person in the world).

So, no more loitering, to the news! Here is what we got this month:

Customizable section color

Materials now have a new Section Color property, which allows to give a different color when the material is viewed and when it is cut through. So for example you can now have your walls appear white when viewed, but black when cut and seen on a TechDraw page.

This is a small improvement so far, but it laid the structure to have more advanced things, such as supporting hatch patterns. The main problem for this, is that, although the SVG format has an excellent support for hatch patterns (anything can become a hatch pattern, even bitmap images), the Qt implementation of the SVG format lacks support for it (it has its own system but it's not very practical to make that compatible with SVG). Therefore at the moment we have no clear idea of how to go further.

TechDraw's implementation of hatch patterns internally recreates OpenCasCade geometry, which works very well but might be heavy for large BIM models. In any case, that's a track I'm exploring too.

Default windows are now openable

Another very small fix, but the default door and windows created with the Door and windows tools now have a hinge edge defined, so their Opening property now works out-of-the-box. It might not open in the direction you want, though, so you might still need to tweak this. But next items on my list are adding a couple of controls to easily switch opening directions.

Default pattern size option

The Draft patterns system is now working again (hatch patterns can be added to all closed Draft objects such as rectangles, polylines, circles, etc). I also added a preferences option under Edit -> Preferences -> Draft -> Visual settings to set a default hatch pattern scale, which is useful when you always work with objects of a similar size range, for example building plans. I still have to experiment a bit (0.0025 seems like a very good default setting for BIM), but will add that to the BIM setup screen once I found a couple of good settings.

Section plane label

Section planes now have a Show Label property, which, when turned on, show the section plane label on the plane in the 3D view. This is useful to easily identify these section planes when there are many in your document. The text size currently depends on the arrow size, but I'll make all this better customizable later on.

We have further plans too for the section planes, such as be able to double-click or activate them somehow, and find yourself in a separate 2D view with all needed geometry cut or turned off, where you can still work on the model in a 2D environment. This would be a bit like an intermediary step between the full 3D model and a TechDraw view. You can see a first draft of that coded by Carlo Pavan on the experimental tools palette in the BIM workbench.

TechDraw tools in BIM workbench

Among the annotation tools on the BIM workbench, you'll now find two TechDraw tools, Create page and Create view. The first one is the same of the Create page from template TechDraw tool, except that it remembers the last template you used and gets you right there when you use the tool again, so it gives a little bit faster workflow. The second tool is currently the same as the TechDraw ArchView tool but I plan to make it a bit more flexible in the future so it would become a mix of TechDraw's ArchView and DraftView tools, depending on the selected objects.

TSV export

The Schedule tool has been extended to now allow to export results to the .tsv (Tab-Separated Values) format, which is basically the same as the .csv (Comma-Separated Values) format, but using tab characters to separate columns, instead of commas. The big problem of csv, of course, is if there are commas in the columns texts. Usually spreadsheet apps are pretty tolerant with .csv files, they will usually ask you what character to consider as column separator on import, but others (for example GitHub) doesn't display them correctly if they don't use a comma as separator. So from now on there is a correct way to please everybody

Blender exporter upgrade

The FreeCAD exporter for Blender has seen several small fixes, it now automatically adds the .FCStd extension to the generated file if you haven't added it yourself, it now correctly handles object rotation and scaling, and it applies modifiers before exporting. It now also supports faceless objects (wireframe objects).

This coupled with the BlenderBIM improvements, it now becomes increasingly easy to work on BIM models in Blender, or parts of BIM models, and when needed, integrate everything seamlessly in FreeCAD. There are many more joint FreeCAD/Blender developments going on, such as the new Sverchok nodes that use FreeCAD internally, literally creating a kind of new interface for FreeCAD withing Blender.

Detect and suggest development version

The BIM workbench will now detect your FreeCAD version on the setup screen, and suggest you to install a development version if you are not using one. This will help people to be aware of the existence of development versions, and become more used to them and how to install and mange them.

Grid extension setting in Working Plane panel

The overall size of the grid is now settable directly from the Working Plane task panel.

Multiple custom folders on start page

The start page can now show multiple custom folders. To achieve that, go to the start page preferences under menu Edit -> Preferences -> Start and instead of choosing one custom folder, type manually several folder paths, separated by ;;

For example: /home/yorik;;/home/yorik/Examples;;/home/yorik/FreeCAD/Examples

Image Plane scaling

The Draft Scale tool now support image planes created with the Image workbench. So it is now easy to import reference images such as scanned floor plans, position them on a common reference point, and scale them to the desired size.

Unit and Show Unit in Draft dimension preferences

You can now set default value for these two settings under Edit -> Preferences -> Draft -> Dimensions and Texts, that will affect all newly created dimensions.

Manual upgrade

And last but not least, I started upgrading the manual to FreeCAD 0.19, and this time I intend well to produce a printed book with it. To be continued!

That's it for this month I guess, I promise to do everything I can to resume posting once per month!