The FreeCAD team continues getting rid of the myth that there can be no usable open source CAD software. The newly released v0.13 includes massive improvements in almost every workbench.
There’s a ton of new production-critical features like loft, sweep, offset and thickness tools. Chamfer and fillet tools were improved too. Plus the new snapping system, available in Draft and Arch workbenches, is just awesome.
The team did a good job at documenting changes in the official release notes. Instead of duplicating the efforts let’s focus on two important aspects of the release and talk about its future.
In the makers community OpenSCAD is a rather common tool to produce models of 3D-printable objects. The new version of FreeCAD features an experimental OpenSCAD workbench contributed by Sebastian Hoogen. The release notes are incomplete here, so let’s fix that.
First of all, you can open existing OpenSCAD files, both SCAD and CSG. For that you only need to point FreeCAD to the OpenSCAD binary once. Here’s a rather familiar example from the OpenSCAD’s examples folder:
You can also generate new objects from your own code or from presets, apply boolean operations, extrude and revolve, and then analyze geometry for errors.
When you’re done, you can export the project as either SCAD or CSG file, and it will open just fine in OpenSCAD:
Exporting to SCAD could be skipped though, because you can export to STEP from FreeCAD directly.
Sebastian has some plans for further development of the workbench:
One of the mayor drawbacks i see, is with the use of modules. Like for gears or threads. The libraries in OpenSCAD produce mesh (polygonal) data which is not appropriate for the import module. I’d like to provide substitutes in FreeCAD that would create the appropriate base geometry.
Another similar thing is the use of minkowski sums to fillet shapes in OpenSCAD, as this operation is not available in our geometry kernel.
All in all, FreeCAD is becoming a kind of WYSIWYG editor for OpenSCAD. How about that?
For an overview of changes in the Arch workbench I suggest you to have a go at Yorik van Havre’s “FreeCAD Arch module how-to”. It’s great introduction into the new workflow and new features written by the developer himself.
In a nutshell, the new things are:
- new axes system;
- new floor and building objects;
- new wall, roof, and window tools;
- new sections system for easy creation of 2D plans;
- producing walls and structures from closed meshes with manifold edges.
One thing worth focusing here on is the newly introduced IFC importing. As most of the Arch workbench, the code was written by Yorik who reused the IfcOpenShell library by Thomas Krijnen (see our earlier interview with Thomas on his project).
Yorik considers IFC support essential for FreeCAD, which is why his works closely with Thomas to ensure that IfcOpenShell does the job. As a matter of fact, the library got its own major update on February 11, featuring various fixes and an importer for Blender 2.65.
However, using the IFC loader on real projects in FreeCAD 0.13 might give you the wrong impression of where the project is heading. Firrst of all, it’s slow up to a point where you want to just kill the FreeCAD process and start anew. There are several reasons for that.
- Problems in IfcOpenShell. Here is what Thomas says:
IfcOpenShell currently is not fast. IFC solids like extrusions are OK, but one of the main obstacles is the reconstruction of triangular meshes, e.g. for furniture, which takes a lot of time in Open CASCADE.
- Non-optimized integration of IfcOpenShell into FreeCAD. Over to Yorik:
Today the IfcOpenShell integration in FreeCAD is very, very rough… But it is also a good thing, because it allows us to shape both applications better. We already found a system to pass native Open CASCADE data between the two in a way that would never have been possible with more “finished” apps.
Thomas and me have a lot of discussion about the future of IFC and FreeCAD. We also already thought about strategies to speed up some points — namely, use mesh data directly instead of complex Open CASCADE geometry in some cases.
- Finally, FreeCAD has its own issues, as Yorik explains:
The problem of big files is not only a problem of IFC and IfcOpenShell, but a problem of FreeCAD itself. At the moment the application reads first the entire IFC file with a Python parser (Python is notoriously slow when processing big lists), then calls IfcOpenShell to get the shape of objects.
What I’ll do is make IfcOpenShell process the file itself, and only that will cut import times by half. Addressing slow handling of big files is also one of the main objectives of Jürgen’s new assembly module.
Another existing shortcoming is that some IFC and BIM concepts are currently missing in FreeCAD, and you can’t yet save IFC files from the application. So at this point FreeCAD isn’t a complete BIM solution yet. But don’t be too upset.
IfcOpenShell already comes with some initial code for writing IFC files, and that’s what FreeCAD is soon going to do as well. Besides, it’s not just about geometry. Yorik’s plans for the Arch wrokbench also involve handling materials and adding the concepts of space, floors, and multilayer objects like walls.
None of that is going to happen overnight, but since releases in the project are more of a formality, you are free to test unstable builds as they arrive.
It seems that the team is exploring the possibility to advance towards becoming a PLM/PDM solution. The team is in touch with the OpenPLM project. Jürgen Riegel is actively working on the Assembly workbench lately, and Yorik van Havre is planning to add a basic spreadsheet object and a viewer which, among other things, would be useful for generating bills of materials.
That leaves us a few more questions, the first of them being, whether FreeCAD is going to stabilize any time soon.
Werner Mayer, another core team member, thinks that stability issues mainly fall under two categories: the first one is bugs in the CAD kernel (Open CASCADE), and the second one is graphic driver/OpenGL problems, especially on Linux. Both of them are something the team has no control over.
And what about meeting the requirements of users? Jürgen speaks emphatically on that:
I’m working in a big automotive company and see in my every day work what the big CAD and CAE systems can do in a development process. I also see the upcoming maker movement and the home-made mills and printers, and they need exactly the tools used in the industry now!
They need a modeler to design the parts, FEM to validate stress and frequencies and a CAM system to bring it on a machine to manufacture.
And the most, they need a Assembly system for groups working together. Assembly in FreeCAD could be, what was Git for software development: massive decentralized working groups on designs.
Do I have time for that? Surely not! The most I can hope for is to lay the groundwork and lead the way. But we need tons of developers to reach all that goals!
Still, I’m very optimistic they are coming. We already have a lot of people who share the same sense of the changes coming and want participating in a big open source 3D modeler.
Which leads us to the last part…
According to Yorik, the most important contributions the team can get at this point are examples/tutorials and end-user tools. To him those are the two weakest points of FreeCAD.
There are many other things that could easily be done and added: wizards, small macros, helpers, small tools to do a very particular kind of an object etc. None of that requires exorbitant programming skills.