I had a thought the other day that it's 100 % waste to have either a solid or hollow 3D-printed model in relation to utilizing the space inside of it for different modules, e.g. secret compartments, modules like salt/pepper shakers, etc.

So I thought the best way of achieving this in a streamlined semi-automated manner is creating a simple script in OpenSCAD / FreeCAD and I would love some professional input on how to achieve this exact process:

1. Split any given model at X height with Y angle Z times (eg. slicing a model in half & keeping both parts separate)

2. Make a hollow compartment inside the model with working 3D-printable threads sticking out from one part fitting into the other with definable shape, tolerance & size in relation to the parts size (eg. a cylindrical hidden compartment or a space where specific user-made modules fits into)

I'm thinking a few simple yet potent lines of OpenSCAD code or a FreeCAD script should do the trick but my knowledge is limited in this field at the moment so any input is highly appreciated.

Note that there's no canonical module for doing threads in OpenSCAD. You can either derive the cross section for your thread profile (can be done with OpenSCAD code) then linear_extrude it with twist (needs really fine division to be accurate though) or skin a polyhedron for the thread. There are a few published modules for the latter and I have an unpublished one I prefer.