I use free open source 3D CAD software called “OpenSCAD” to design shapes for printing on the 3D printer. This software has a number of functions built in for generating typical shapes and conic sections, and is modular in design, so tools like code to make threads can easily be reused in new projects. Cartesian geometry was one of my favourite topics in Mathematics when I was younger, and it now seems that there is a practical application for all that theoretical knowledge. There is an excellent manual for this software, and a lot of help is available online from other users.