I tried FreeCAD last night, following up to a thread from the OP. It’s clearly very powerful and if I spent lots of time learning what to expect I could work very quickly in it. I’m moderately experienced in OpenSCAD, and of course FreeCAD is very different; that’s basically the point. Since I’m new to FreeCAD, my early impressions might be completely wrong. But I thought I’d share them.

First, as I commented in the thread from the OP, I found myself in the extremely unusual situation for me of needing to watch some video introductions to FreeCAD; I was just missing too much in the written documentation to connect the dots. Probably there’s something written that would have helped more, but I haven’t found it yet. It is clearly not aimed at the tyro. That’s OK. I don’t mind steep learning curves because I know what can be at the end of those curves; I use vi for text editing, after all…

With OpenSCAD, I can not only make changes to items in the tree; I can completely change the way I construct the tree. With FreeCAD, the tree seems to be an artifact of the construction process which seems to be intentionally analogous to physical construction methods. I ran into a case where I realized that I wished I had taken an intermediate step earlier and wanted to add steps in the middle of what I had already defined, and as far as I can tell the only way to do that is to delete all the later steps. When I made a relevant search, I found myself at a feature request to drag-reorder operations, where the developers were saying that they couldn’t reorder the elements of the tree because it would be possible to create nonsense.

There’s a bit of “the experienced user will usually know what went wrong” in things like fillets and chamfers. For example, if it can’t figure out how to apply the fillet or chamfer you have asked for, the whole part just becomes invisible. I get the impression that “part turns invisible” is generic error display in FreeCAD.

I ended up with a pocket that just magically disappeared from the rendered part. (It is the one actually functionally-required element of the part, because of course it is.) I wonder whether I missed some need for “convert to solid” in the middle of designing my part, made some tyro error, or just ran into a bug.

I did have one crash. The usual caution to save work applies. ☺

Darren Hart

I’ve created my first OpenSCAD model and thanks to some generous friends with 3D printers, I’ve been able to create 3 iterations of the model. To my surprise, it actually works! I’m new to parametric modeling, and I’m sure I’ve made some pretty rookie mistakes. So in the spirit of write-it-once-then-write-it-right, I’d welcome any feedback regarding my approach.


Curtis Olson January 16, 2018 07:23

I played around some with FreeCAD a year ago and thought their approach meshed well with the way my brain is wired together. I was looking at it from the backend, using the python api to write scripts that would generate my parts (versus interactively drawing things.) I converted my ‘madesigner’ software to use freecad as the back end (versus the adhoc combination of my own coding I had been using previously.) I still have to use all of that to actually build a real thing … there is no where close to enough time in the world!


Michael K Johnson January 16, 2018 11:38

+Curtis Olson so that would be using the UI to understand what FreeCAD can do, and then using it roughly the way I use OpenSCAD now, so I would still be able to use code to model and version management would make sense, but I could use FreeCAD’s additional capabilities.

That sounds intriguing. I want to learn more!

Curtis Olson January 16, 2018 11:48

+Michael K Johnson I think we are on the same wavelength. FreeCAD is just a gui pasted on top of a python library backend. So presumably, anything you can do interactively, you could also do via scripts by importing the python libs and calling the functions in the right order with the right parameters.

One important point of distinction. FreeCAD has in-gui scripts (plugins?) and that’s not what I’m talking about. I’m talking about standalone scripts that run at the OS level. They import the FreeCAD backend libraries and run independently with no gui interaction at all.

So for my model airplane wing design software, The user can make high level choices like airfoil, span, sweep, taper, washout, etc. and then the code will autogenerate the FreeCAD model. So everything gets parameterized and the scripts dump out the final result. Changing your wing design to a different airfoil means 1 change in one spot, and then everything gets regenerated/recut/rebuilt automatically … like the spar cutouts, etc. to fit the new airfoil. You don’t have to go back through and redo everything manually. I’m probably one of the few people in the world that wants to do complex 3d designs by filling in a form, but I’ll act like it’s normal and the smarter way to do things and maybe start a new movement someday. :-) It’s getting harder and harder to collect crazy people these days though … too much competition!

Alan Cox January 16, 2018 12:12

I’d also take a look at ImplicitCAD on github if you like openscad. For a lot of things it’s much faster

Curtis Olson January 16, 2018 12:27

I just took a looked at ImplicitCAD, very interesting. Nice to know I’m not the only person in the world who sees value in generating things programatically instead of interactively. Haskell, hmmm …. trying my very best here not to turn into one of those annoying python snobs here! :-)

Michael K Johnson January 16, 2018 12:59

+Curtis Olson yeah, in the same page, that’s exactly what makes sense to me.

+Alan Cox​ thanks, that looks interesting! But it doesn’t seem to implement the one thing that I find really slow in OpenSCAD, minkowski() — I don’t think it will help me with my fillet/chamfer needs…

Alan Cox January 16, 2018 13:14

It supports rounding and proper filleting so for my uses I’ve not needed minkowski but yes

Michael K Johnson January 16, 2018 14:15

+Alan Cox oh, I didn’t see that in the API docs. I’ll have to look more closely.

Michael K Johnson January 16, 2018 19:41

How do you do proper filleting in ImplicitCAD? I found the rounding parameter applying most places, which I assume is what I want for chamfering, but nothing about filleting.

Often I want to fillet or chamfer only some edges of a part, which is easy in FreeCAD—except when it isn’t and the part disappears, of course! :)

Do you just construct fillets with subtracting rounded parts?

Alan Cox January 17, 2018 10:28

Just round the union of your two cylinders

Imported from Google+ — content and formatting may not be reliable