(outdated) complaining about the inadequacies of OpenSCAD.

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