Powerful, Open-Source, Programmatic CAD

147 points
1/20/1970
4 months ago
by omeid2

Comments


mdaniel

relevant top comment from the author in the prior submission: https://news.ycombinator.com/item?id=9249268

> Author here. Sorry, I abandoned this two or three years ago. Please look at this in the context of a project done several years ago and never completed.

> Honestly, I no longer believe ImplicitCAD was the right approach to the problem, or that there's even as much of a problem as I originally thought. In particular, the system ImplicitCAD uses to represent objects, a variant of f-rep (http://en.wikipedia.org/wiki/Function_representation) has issues.

4 months ago

jhvkjhk

It seems that this project has been taken over by other people. The latest commit is just two months ago. https://github.com/Haskell-Things/ImplicitCAD

4 months ago

sitkack

ImplicitCAD is unusable, the CSG algorithms it uses are not stable and give horrible results. There is zero chance that you can use it to make engineered objects.

It is entirely possible to write broken software in Haskell.

4 months ago

naasking

The Wikipedia page doesn't really describe any issues, so I'm not sure what they're supposed to be or if maybe they've been resolved since that comment was written in 2015.

4 months ago

tempodox

Or you can download OpenSCAD.

https://openscad.org

4 months ago

mkl

But see the current OpenSCAD thread for plenty of reasons you might not want to, and for alternatives: https://news.ycombinator.com/item?id=41543386

4 months ago

naasking

ImplicitCAD is more powerful than OpenSCAD. See the FAQ:

https://www.implicitcad.org/docs/faq

4 months ago

sitkack

It isnt because it doesn't work. The CSG algorithms they use are broken.

4 months ago

naasking

In what way?

4 months ago

sitkack

Run this in both implicitcad and openscad

https://github.com/Haskell-Things/ImplicitCAD/blob/master/Ex...

Try and form a clean ring by subtracting a cylinder from it, you have to dial the resolution so high that it takes minutes to get a result that approximates what you can get min milliseconds in openscad.

The team is not interesting in fixing it and shows a fundamental flaw with how they handle thin intersections. ImplicitCad is sadly nothing more than a non-functioning hobby project and should be labeled as such.

4 months ago

Zopieux

Every time this is posted I look at the "API reference" which sadly is severely lacking. Perhaps the software is actually limited to just a few primitives.

4 months ago

omeid2

The readme is much better, but generally, this kind of CAD is a bit like OpenGL, very few primitives to create crazy staff.

Also, it is written in Haskell, so maybe there is finally some other useful project in Haskell other than the Haskell Compiler, as the joke goes.

https://github.com/Haskell-Things/ImplicitCAD

4 months ago

vincent-manis

Pandoc

4 months ago

zem

and xmonad!

4 months ago

[deleted]
4 months ago

peppertree

Libfive is the closest successor. Blender also starts to support implicit modeling. https://libfive.com/

4 months ago

mytwoscents

https://build123d.readthedocs.io/ is IMO a much better choice than openscad and implicitcad. Describing your objects in Python is just how things should be (at least for me ;)

4 months ago

ValentinA23

Writing a transpiler targeting OpenScad is trivial, at least the part that is comparable to a markup language. Control flow, arithmetic and datastructures can be handled one level above in the transpiled language, because OpenScad never produces data – you can't ask it to determine the volume of an union for instance – so two way communication between your code and the geometric engine is not an issue. Just like build123d it seems.

4 months ago

[deleted]
4 months ago

w4rh4wk5

Is there support for rounding / chamfering edges?

I no longer use OpenSCAD because its annoyingly complicated to do for non-trivial shapes.

4 months ago

itishappy

Second example from the repository:

    //example2.escad -- A rounded union of a square and a circle.
    union(r=14) {
        square([80,80]);
        translate ([80,80]) circle(30);
    }
https://github.com/Haskell-Things/ImplicitCAD
4 months ago

johnnyApplePRNG

So i have recently begun learning jewelry design using blender since there are a lot of videos on it out there but i have this sneaking suspicion i should be learning CAD instead... Thoughts?

4 months ago

adfm

If you're learning jewelry design, I'd like to point you towards Rhino, which is popular in the jewelry design community. It's not OSS, but since you're learning, I'll point out that they have a generous educational discount.

https://www.rhino3d.com/for/jewelry/

4 months ago

iancmceachern

There are CAD packages specific to the jewelry industry, they really speed up the work. If you are wanting to do it professionally I'd look into learning those.

Source - Dad was a master jeweler and my parents ran a shop for nearly 40 years

4 months ago

Centigonal

They are both useful skillsets. CAD is nice when you want to manufacture your end result, but you have to think more about constraints and parameters up front.

4 months ago

johnnyApplePRNG

It's mostly the cost aspect that is preventing me from even exploring the jewelry CAD options... Matrix Gold which is apparently the preeminent CAD software in the jewelry industry... Costs a few thousand dollars and only runs on Windows... Both of which are completely out of touch with my open source Linux setup.

4 months ago

iancmceachern

Solidworks is the same way, I just run windows, it's worth it.

4 months ago

Animats

It's really surface vs. volume representations. Blender, Maya, and most 3D graphics programs, define surfaces. Modern 3D CAD programs such as FreeCAD, Fusion, and SolidWorks use constructive solid geometry, where everything is a volume. There are exceptions - SketchUp was a constructive solid geometry program, and original AutoCAD was just lines.

The big difference comes when you combine objects or operate on them. Surface-based programs are not that good at combining surfaces. CSG-based programs have to be really good at combining volumes, including subtracting from them. This requires a very difficult geometry program underneath.

4 months ago

bmicraft

Okay so this is a from-the-ground-up rewrite of OpenSCAD with a couple of bonus features?

4 months ago

DidYaWipe

"Bet your expecting"

After that I'm not expecting much.

4 months ago

[deleted]
4 months ago

[deleted]
4 months ago

dvh

Not in Ubuntu repository

4 months ago

injidup

Just use onshape and learn to use their API for creating custom nodes in the history tree. Ie write a small module that generates planetary gears and then use them in the context of a standard, sketch and extrude history based CAD system.

4 months ago

[deleted]
4 months ago