Since they're "just variables", not some funky CAD abstraction of variables (like you get with Fusion 360 I think?), you can do any level of arithmetic you want with them, and you can very easily define variables in terms of other variables and add conditionals.
Personally I absolutely hate measuring stuff, measuring stuff is my least favorite part of the entire 3d printing process. What I love about SCAD is I can just define my variables with dummy placeholder values, get a design that more or less looks right, and then measure everything right before I print, and everything will automatically readjust because it was all defined as variables.
This of course isn't specific just to OpenSCAD, but any code-based CAD program. I have no desire to try and go back to vanilla GUI programs.
Tbh, that workflow is also how you approach proper visual CAD programs. When I draw something in Solid Edge, I create sketches, extrude, etc until I've achieved roughly what I want, then I take measurements and set them as constraints in the model and it'll adapt accordingly.
And if I'm unsure about a measurement, I can just export a few models with slightly different values, 3D print all of them and try which works best.
Agreed, accounting for the complex imperfections in design specific plastic geometry can be hard to predict without successive approximation in parametric designs.
OpenSCAD does have some limitations, in that you will never really hit "perfect" tolerances in the output files either. However, the guess->print->measure->correct->repeat workflow is usually as good as it gets after a few cycles.
It can be more convenient than manually coding g-code macros, but OpenSCAD does certainly make 3D printing practical for actual parts.
Since they're "just variables", not some funky CAD abstraction of variables (like you get with Fusion 360 I think?), you can do any level of arithmetic you want with them, and you can very easily define variables in terms of other variables and add conditionals.
Personally I absolutely hate measuring stuff, measuring stuff is my least favorite part of the entire 3d printing process. What I love about SCAD is I can just define my variables with dummy placeholder values, get a design that more or less looks right, and then measure everything right before I print, and everything will automatically readjust because it was all defined as variables.
This of course isn't specific just to OpenSCAD, but any code-based CAD program. I have no desire to try and go back to vanilla GUI programs.