I tried using OpenSCAD to design a mug to be 3D printed as a family Christmas present recently. It seemed to me like there were missing tools. Up until now I&#x27;ve done my hobby &quot;CAD&quot; work using the Diagrams library in Haskell. It works really nice for 2D work that will get sent to a laser cutter. The 3D portion of Diagrams though is still under development. So I tried working with OpenSCAD. I think if I were doing more traditional work it would have worked out ok. There were 2 basic issues I ran into.<p>The first may have been just my wimpy computer but as I approached what I wanted the whole process got slower and slower. Some of that could be combatted by adding tunable resolution parameters to keep the number of polygons down. It should be pointed out that OpenSCAD doesn&#x27;t really do curves. Everything is polygons which at least in the roughing you design out phase are rather visible.<p>The second issue I ran into is that some of the way things are done makes it harder to work than you would like. Complex data structures aren&#x27;t really a thing. If I remember rightly there are arrays but nothing more complex.  You can&#x27;t iterate over the points in a shape. There doesn&#x27;t appear to be a way to extract dimension data from a shape. CSG is nice but sometimes you want more.<p>These may not have been that much of an issue if I were doing something different. Trying to wrap a 3D model around another non-uniformly curved 3D model just isn&#x27;t really what the tool was designed for. And to be fair, I couldn&#x27;t get AutoDesk&#x27;s free tools to do what I wanted either. That is probably due partially to a lack of experience in the area and probably pushing the tools to do things they just didn&#x27;t have in mind.