Skip to content

Comment on FreeCAD 0.19parent

Comments

In contrast to FreeCAD I have been using openSCAD. You define basic 3D objects and do transforms, etc on them. It's kind of programming, more like a domain specific language.

Here's a tube, which we can think about like the difference of two cylinders.

Writing and refactoring into modules (functions) is very natural and allowed me to get more perspective about the relationships of my models

    module Tube(height, width, thickness) {
      difference() {
        cylinder(h=height, r=width);
        cylinder(h=height,r=width-thickness);
      };
    };

I tried FreeCAD a couple times, it's good but I always find it very frustrating to use because sooner or later some operation just doesn't work and I have no idea why or how to make it work.

So in the end I always came back to OpenSCAD. It doesn't do curved surfaces all that well, its rendering is sometimes really slow, but it just works. With a couple simple Bezier curve functions certain things can look really nice, thanks to its nice commandline parameters and plain text file format you can always just plug it together with bash scripts or other tools. A list of all its features fit on a single page, and you can do anything with those.

It's just a really great program and the only CAD software I don't find unnecessarily frustrating. It has a few quirks but those are really minor details.

openscad is good, but i wish it had a way to define negative space within a module. if you have something that has positive and negative features (i.e. it's supposed to punch a hole through another object the module is applied to), you always end up with two modules, one for negative features and one for positive

There's a new project in julia. Is that the kind of negative space you're talking about? https://discourse.julialang.org/t/ann-constructivegeometry-j...

isn't that just basically openscad's difference()? I'm talking about defining an object/module with positive space components and negative components. so basically, when you apply union() to that object and another object, the positive parts will be added to the second object, and the negative ones will be subtracted. currently this has to be done in two seperate steps

Anyway it's a real programming language so that feature is probably just a matter of defining a function, which a user can do themselves

Oh, like a mask object.

I've tried openSCAD as a hobbyist. It's a lot of fun.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.