3D printing seems like it takes forever when you’re waiting for a part to come out. But if you’re like us, the real time spent in making something new is in modelling and refining the piece. There are tons of CAD programs out there, and finding one that meets your needs is part functionality and part personal preference. Reader [Leibowitz] pointed us to Solvespace, and it looks like it fills the gap between something like OpenSCAD and something more feature-full (and complicated) like FreeCAD.
We’re wondering why we hadn’t heard of Solvespace before. It looks great. It has a lot of what we like about OpenSCAD — the ability to quickly and easily specify two 5 mm holes exactly 21 mm from each other, center-to-center and then change that distance easily. But it also has other features like constraint solvers for mechanisms and linkages. It looks like a great way to design your next Strandbeest. The tutorials seem like a good way to get started quickly.
As we said above, choosing a 3D modeller is partly based on your requirements, but also partly on your feelings. If you’re feeling limited by OpenSCAD, there’s also ImplicitCAD. Or try out Autodesk’s free (but not open) Fusion 360. And now there’s Solvespace. It’s great to have options.
IMHO Solvespace’s constraint solver and ease of use are it’s greatest strengths. I can’t use FreeCAD even after going through a tutorial, and OpenSCAD has no dynamic movement at all. While Solvespace doesn’t have any collision checking/response the constraint system is good enough for simulating a lot of mechanisms.
OpenSCAD has some movement if you use the “animate” function, but even then you need to set the rotation in your scripts. (for example sin($t) or something)
As for why you haven’t heard of it before, it was windows only and I think closed source until recently.
Yes, the Windows install base is pretty tiny, that’s probably why.
Around here, most are Linux zealots. That’s what I was getting at.
Solvespace was GPL’ed in 2013, and @whitequark’s branch builds on Windows, OSX, and linux.
I love the parametric programmatic design approach that OpenSCAD provides, and i prefer designing in it over the FreeCAD “Part Design” which i find a bit laborious.
Some things are easier in OpenSCAD, some are easier in FreeCAD, some things are easier in blender.
I will prefer OpenSCAD for a lot of things because of the parametric design. I like to construct a set of 3D models from a few input parameters, so that i only have to design everything only once, if any changes are needed, all i need to do is change a parameter and re-compile. Going back to make changes in FreeCAD’s Part Designer has been unreliable and very laborious for me. (better since v0.15, but still)
The biggest problem with OpenSCAD is of course the long CGAL rendering times. Very, very long.
I there was a way to fix that, i think i would use it almost exclusively.
These tools are both amazing however, and i’m prepared to put up with their issues because they’re free and open.
I will definitely be taking a closer look at ImplicitCAD now. Thanks for the tip.
also watch the video for Antimony… it’s a good option too for these sorts of things…. http://hackaday.com/2015/05/29/otherworldy-cad-software-hails-from-a-parallel-universe/
There is also onshape.com which has a free option. It works in any half decent browser.
FreeCAD is not terrible, but it is quite buggy. One time I did something and it would crash every time it was trying to open the saved model.
FreeCAD irrecoverably corrupting my data two or three times in a row is exactly what’s motivated me to toss it out and start working on improving SolveSpace. :) Incidentally, it has an autosave function that’s virtually guaranteed to bring you back to a valid sketch even if it crashes.
Why didn’t it motivate to improve freecad? Though i guess if you already had solvespace, sure, improving it is a good thing. Still i wonder why people rather do their own thing, than improve existing, which would bring something towards being complete instead of having two same halfs of incomplete.
Well, I considered that, briefly. Then I looked at its guts, and at the state of its basic features, which at the point meant that there were two or possibly three assembly workbenches, none of them were in a usable state, and one of them reimplemented half of the parametric solver, badly, in Python.
So I had a choice: go improve FreeCAD, which lacks basic necessities, has a horrible UI and is a codebase that evidently isn’t managed well, or go improve SolveSpace, which is lacking in complex geometry operations (like lofting or chamfering) but which has 90% of the things I want, has never lost my data, has a pretty decent UI, and a codebase that’s somewhat rigid yet well amenable to the modifications I want to make.
Does my choice surprise you now?
Better codebase is the one that should be improved, even if it was lacking behind. Unfortunately that does create “fragmentation”, but it can’t always be avoided, and it shouldn’t always be avoided. So keep up the good work.
Hey! Current maintainer of SolveSpace here. I’ve some exciting things planned next, like true hierarchical sketches, the ability to specify parameters when linking/assembling (say n in Mn-screw), and the ability to constrain inner sketches in an assembly (like treating a length of a 80/20 profile as something you can pin to other lines or points in your sketch).
And as always I am listening to the community!
Ah, so you’re officially the maintainer now :)
Been using your branch for half a year, nice fixes :)
Thanks for the Debian build.
Can you tell me is there anyway to constrain a point to the intersection of two or three rays and or the intersection of rays and curves or curves and curves, or even with surfaces? I wondered because I am familiar with Geogebra and doing constructions that way, which is very powerful, but only 2D.
Sure. Constraining a point to a line does not confine it between the endpoints, so that’s just two or three point-line constraints. Constraining points to arcs works the same way, but not beziers; the math involved makes that pretty hard and it’s not yet implemented (but probably will be at some point). The surfaces aren’t accessible to the parametric core at all, so you can’t constrain anything to them.
Thanks for your contributions to SolveSpace, whitequark! It has become my go-to modeler for my projects and for good reason.
Is a Debian package available, or do I have to copile from source?
Sure! https://github.com/solvespace/solvespace/releases/download/v2.1/solvespace_2.1_amd64.deb
will be in the future a 32-bit deb package? Here, in the third world we don’t have many new machines and we can’t buy expensive software too. Great job.
Okay. The next release will feature 32-bit debs. What OS do you use? Ubuntu? This is important as not all debs are created equal.
Yes, Ubuntu
That is an amazing personal project from Jonathan Westhues. So compact yet so powerful.
I use freecad regularly. I don’t find the issues described here. I use the daily build, not what is available in the normal repos. In the past, I occasionally had a crash, but with the latest. I have lots of programming experience, so openscad is no big deal, but visualizing a part as I create it is just better IMO. Even more so when it is part of an assemby. Family of parts is possible in most packages that have a scripting capability. If you really want animation, take the parts into Blender, it can handle constraints AND physics. (You’ll get no argument from me that that has a LONG learning curve… ;)
This is exactly what I’ve been looking for to get back in to CAD. I can’t stand Sketchup and can’t bring myself to re-use Inventor. Thanks for the heads up, Hackaday!
Woot! We aim to please.
Wow has anyone looked at SolveSpace recently… there has been some good progress on it. I went to it from FreeCAD because of edge and face numbering issues. The constraint system is waaaay better too, IMHO.
Am literally a newbie in 3D designing and my very first will be Solvespace if the installation of version 2.3 works because unfortunately, my service computer is a windows professional :(
Anyways, I hope I could design a cup lid on this?
can I import AI or jpeg files? Im in the packaging industry so I want to know if importing jpeg as graphic design for a structure works here like in ArtiosCAD.