I really hope CADmium can wean me off of OpenSCAD. With OpenSCAD, I don't really have to think at first; I use a simple language to write modules that build on other modules. The problem with OpenSCAD is there's no solver: I have variables, but no constraints. As I make changes, suddenly I have to think hard and solve the constraints manually and it's easy to introduce errors. However, the problem isn't severe enough…
Can you explain the problem with openscad a little more? I’m not quite following.
As a trivial example, let's say I want a square and a diamond and I want the diamond's corner to touch the square on the side. It would look something like this:
square([10, 10], center=true); dx = 5 + 5 * sqrt(2); translate([dx, 0, 0]) rotate([0, 0, 45]) square([10, 10], center=true);
This is a simple case, but what if either shape is replaced with a hexagon, a gear, or a duck? What if I decide there should be some other shapes between them? What about...?
Ideally, it seems like I should be able to tell OpenSCAD that the square contains a reference point on one side, and one of the corners of the diamond is also a reference point, and OpenSCAD should translate the diamond however is needed to make those two reference points match.
Alternatively, I should use some other software that lets me do something like that.