upvote
The only thing FreeCAD has going for it is that it's free, everything else about it is far behind the serious commercial tools.

> Ideally I'd like to see some sort of editing graph where you can see intermediate steps and pick visually parts to operate on for the next step - all underpinned by a concise textual representation that can be versioned.

This is exactly how most[1] commercial 3D CAD packages have worked for at least the last 30 years, they've done it longer than Git or SVN have existed. Specifically everything is represented as a list of operations (sketches, extrusions, chamfers, etc.) and you can freely go back and edit any step, or you can click on any part of a model and see exactly what step was used to generate it.

Some CAD packages will let you see a textual representation, but it's only really useful for scripting when they do. The versioning tools that are built in to any CAD package are far better than trying to work with text.

[1]: Excluding the more obscure CAD packages like Creo that do things differently to fit in to a specific niche.

reply
As an example of this:

Here's a hinge mechanism: https://files.catbox.moe/06g9cg.png

Here's the very first sketch in the timeline, I've just clicked on this to edit it, there was no undoing required: https://files.catbox.moe/xzr3un.png

Here it is overlaid on the model, which just requires a single mouse click to toggle: https://files.catbox.moe/339fvg.png

Here it is after I changed a bunch of numbers: https://files.catbox.moe/pvykrx.png

Here's what it looks like when I press the button to show the final model again: https://files.catbox.moe/6bjc0c.png

Just like that the entire model has changed based on the initial sketch. I didn't have to go edit any other features here.

As a bonus here's the assembly being moved by dragging the mouse after those changes, showing that this might not be the most well-designed hinge after those changes: https://files.catbox.moe/eztkja.mp4

Also here's the timeline I mentioned, you can see how I've clicked on a feature and it shows me exactly what it did, this also works when clicking on part of the model: https://files.catbox.moe/f0bb2k.png

reply
Well, like I said: From open tools I had available b123d was the one that relatively quickly (within a weekend from picking up the tool) allowed me to mock up something to the point where I became confident enough to keep going.

I tried to do that with FreeCAD without too much success. I assume someone proficient with it could probably crank out the whole thing within an afternoon, but not me.

I'm sure professional tools are many times more productive, but you need to spend thousands of dollars and presumably months if not years of training to become proficient in them.

And admittedly that's more of a weird hangup of mine but to me it also sort-of misses the point to use a proprietary tool for building an open source project. No one without the tool could open the source files and make modifications.

reply
> For me FreeCAD was highly unintuitive. Everything is a chain of operations/modifications on solids(good!) but for some reason it won't let you modify anything but the last element in the chain?

This has been a longstanding issue in FreeCAD. A big issue is that it is really difficult algorithm-wise to deal with changing geography: a tiny change might result in two objects which look the same, but have a completely different internal representation. If the next operation is attached to "face #23", it's going to freak out. This is called the "topological naming problem"[0], and it is pretty much impossible to solve completely.

FreeCAD itself can support the kind of parametric modeling you want, but because it's so fragile the UX is pretty horrible. To do it properly you essentially have to specifically design your entire model around being parametric from the start.

Luckily FreeCAD made some massive improvements in 1.0, and issues due to topological naming are now far less likely to occur. Hopefully it'll eventually turn from "guaranteed to ruin your day every time you try altering something" to "might need some manual adjustment in weird edge cases" - and that would also make it far more sensible to invest in UX for making mid-change modifications, or for modeling using variables.

[0]: https://wiki.freecad.org/Topological_naming_problem

reply