The post is outdated, as ImplicitCAD solves all of these issues most handily.
OpenSCAD is most annoying - as it isn’t Turing-complete, and can’t deal with reassigning variables or module-level recursion. Its parameterization (the big selling point) is thus of a rather weak sort: you can abstract over things like size and number of parts, but god help you if you want to do anything interesting.
Right now, I’m playing around with cable-holders for organizing my desk. These are most effective if completely customized for the sizes of cables that they need to hold - inputing a vector of the cable diameters would be ideal (eg. [7,3,2,2], for a vga cable, then an audio cable, and two small charging cables). Unfortunately, OpenSCAD is unable to express this model if you want a constant spacing between the cables.
Options I’m considering:
- Embedding lua!
- An instruction to call out to an external program
- Generating OpenSCAD from Haskell
- Implementing something like Haskell’s scanl as a function