TLDR; Solvespace is good despite its UI.
A long time ago I created a post looking for good options for open-source or free CAD software. At some point I found Solvespace. Which I found particularly enticing due to its parametric qualities.
To evaluate some of these CAD programs, I decided to make some tests, which also served as a nice way to make some of my first precise cuts on the Glowforge.
To test Solvespace, I created a design of a bracket (source files in thingiverse). A simple bracket made of three unique pieces, pictured below. The design was simple, I found it easiest to use a series of line segments and specify constraints on them after the fact. Using primitives works well, too, but you have to be aware of the default constraints that they enforce, the may cause you to easily over-constrain your part.
Once I had the individual parts designed, I fitted them together in a separate file. Assembling in a separate file is really neat, I can imagine that this could be used to not only check your assembly, but also layout all parts for easy printing/cutting.
Cutting was easy and extremely fast. I simply dropped the exported PDFs into glowforge, did the thing, pressed the button, etc.
Assembly was easy. Between not accounting for the kerf of my laser, and my crude use of calipers, the fit came out touching on all edges nicely, but not press-fit. Glue will be necessary for it to survive much handling.
- Its parametric design allows for very specific and accurate setting of measurements.
- Parametric design allows for designs to adapt to different actual material measurements.
- Designs can link other files as parts of an “assembly” (this is how I tested fit).
- Linked designs update with changes to underlying parts.
- It is easy to layout and export very precise vectors (though they come out as PDF)
- Wrestling with constraints is tedious, and sometimes it is impossible to tell exactly why parameters are impossible to resolve.
- Isolating degrees of freedom without over constraining your design is almost an art form.
- The UI, it has a lot of a learning curve. There are recurring frustrations that mean that I have more to learn, but also that the UI is not quite there.
Initially I designed this whole assembly for 1/4" plywood. When I realized that I’d have to change all of the finger-joints in the assembly to be .13" of the actual material, I didn’t fret. My previous experience with parametric modeling software had led me to base all parameters off of the thickness of the stock, off of one defined measurement. So, instead of changing a bunch of measurements, I only had to change one parameter in each part file. Upon opening the assembly file, I found that everything had updated and fit perfectly. Had I made this mistake in Tinkercad, I’d nearly have to start over.
Tip for Solvespace (and other parameterized CADs?)
Before designing a part, consider what parameters of your part are likely to change. Create construction lines that represent that feature of your part (eg. feedstock thickness), instead of specifying that thickness everywhere, define edges as having an equivalent length to that one construction line. Now you can easily change your part with minimal work if you use a different material, or you need to adapt your part for different conditions.