Hacker News new | past | comments | ask | show | jobs | submit login

Last time I checked (~3 years ago) FreeCAD was riddled with bugs. You make the slightest change to a constraint, everything that depends on it breaks. Degrees of freedom are calculated incorrectly. Multiple times I saved and reopened a file only to see my work get completely destroyed, with all my constraints throwing errors, and a quick search confirms I’m not alone with that problem. [0]

OpenSCAD might not have all the bells and whistles you’d expect from a WYSIWYG editor, but at least it doesn’t fubar hours of your work. As usual, formats you can edit with a text editor are the most robust. It is definitely not an “objectively worse way to do parametric modeling”.

[0] https://forum.freecad.org/viewtopic.php?t=38574




In OpenSCAD, you primarily model by creating shapes and combining them with boolean operations. You can use this same workflow in FreeCAD without using the sometimes-fragile PartDesign workbench - that's what the Part workbench is. You could, if you were so inclined, even do it in text using Python. This approach doesn't usually explode on you.

However, the PartDesign workbench is substantially more capable and more comparable to other CAD programs, and a substantial portion of the dev work on FreeCAD has been targeted at making it less fragile. You can also avoid most breakages in PartDesign by following best practices that can be found on YouTube or the FreeCAD wiki.

A continuing issue is constraint-related issues which you mentioned. I've never seen a file explode after save and load - if that happened, it's likely it was already broken before save and FreeCAD failed to inform you, which I have definitely seen. What I have seen is a similar problem where a sketch is valid, but there are one or more alternative valid configuration under the same constraints. Everything is fine and the file is usable as long until you try to adjust certain parameters driving a sketch and the sketch flips into a totally different configuration. Even after reverting to old parameters, the sketch will be now be stuck in this new configuration and everything built on it will be broke. This is usually avoidable, but it requires seriously thinking about how you're constraining your sketch to avoid this kind of fragility.

It's also important to know that you can combine workbenches. A solid created in the Part workbench can be imported into the PartDesign workbench as a base feature. A PartDesign solid can be used in Part boolean operations.

This is all to say that while FreeCAD definitely has a much steeper learning curve than OpenSCAD, it can generally do the same things as OpenSCAD without any Sketch/PartDesign-related fragility while having many additional capabilities available if you need them.


Sure, functionally OpenSCAD is just a subset of FreeCAD. The problem is, I can't really trust them if they also push out less robust or outright unreliable features alongside them.

> Even after reverting to old parameters, the sketch will be now be stuck in this new configuration

I have definitely experienced that too. Constraint-based design is very powerful, when it works. But it doesn't always work. A boolean operation always has a result (at least in theory), but a set of constraints doesn't always have exactly one solution, or any solution at all. Which would be okay if the program could reliably tell when something is well-constrained, so that changing a parameter doesn't make it jump to a different solution - one that isn't even on the face I'm trying to make a hole into - which causes the hole and the faces created by the hole to cease existing - along with the sketch I drew on one of those faces that now doesn't exist and so neither does my sketch... It all collapses so easily. How to keep track of faces that jump in and out of existence as the parameters defining them change would probably be a good PhD thesis topic.


> Sure, functionally OpenSCAD is just a subset of FreeCAD. The problem is, I can't really trust them if they also push out less robust or outright unreliable features alongside them.

I feel like I perhaps needed to further emphasize the separation between Workbenches. FreeCAD workbenches can interoperate, to a degree, and the output from one can be used in another. Moving through Workbenches is a part of advanced FreeCAD use. However, they are separate and largely self-contained tools. Different Workbenches operate in different manners not just in regards to the interface but also in regards to their underlying function.

The Sketcher Workbench is where the constraints system is, and mainly exists to support the PartDesign Workbench. The Part Workbench is a decent CSG modeling system that works mostly like OpenSCAD or any other boolean operation based modeling system. It is not reliant on the Sketcher Workbench constraints system. You could use a Sketcher Workbench created Sketch to create a Part solid, but you can also use the output of the Draft Workbench (which could even be based on an imported SVG). It also has primitives, so you can model from primitives.

FreeCAD is intended to be modular. It has a ton of Workbenches and there are more available as addons. How things work in one Workbench is not how things work in other Workbenches, and shortcomings in one should not be projected onto others. If you find OpenSCAD useful, I seriously suggest giving FreeCAD's Part workbench a try. I found that the same sort of modeling I did in OpenSCAD was often easier in FreeCAD and it has fillets to boot. I now use the PartDesign workbench more than I do the Part workbench, but I have a nice cosplay prop I drew in Inkscape and then modeled in the Part Workbench after giving up on doing the same thing in OpenSCAD.

I also feel that it is a bit unfair to say you can't trust them. The PartDesign workbench is the most popular, most complex, and most fragile workbench, but I've never seen it take a step back - every stable update has improved its function and reliability. What's more, unlike many open source projects the 'new shiny' (in this case Part Design) has not been forced on people who are using other parts of the project. It's not intended to replace the rest of FreeCAD, but specifically aimed at people looking to model complex solids in a manner comparable to commercial CAD programs, even if the workflow is very different.

edit: The only universal problem in FreeCAD is the topological naming problem, and it almost never comes up outside of PartDesign because outside of PartDesign features are rarely reliant on referencing individual components of a shape by name. CSG modeling isn't really subject to the topological naming problem.


FreeCAD is great today IMO.

If you want to avoid the topological naming problem(something that can be avoided with a 10-20 minute youtube video on the topic), try RealThunder's fork.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: