You might get some mileage out of OpenSCAD if you can define your object parametrically (I used it to make a Switch controller middle-bit.) Or there's stuff like https://github.com/fogleman/sdf which I've used to make resin-printed buttons for my mother.
(I also cannot get the hang of Blender despite dipping into it for a couple of weeks every year since about 2013.)
Holy crap, why have I not seen this before?!?!!? I was even planning to start coding something like this myself. This is awesome! Thanks!!!!