Creating an implant for spinal surgery - workflow questions Pretty new to Blender here and with a pretty specific set of questions.

The situation: I'm a vet looking to operate on a dog's spine.  I want to put screws in a very specific location to avoid damaging the spinal cord (the corridor is about 4mm in diameter - I'm going to use 2.7mm screws with a 2mm hole drilled at exactly the right angle).

My strategy:  I have a CT of the spine that I have extracted into CT slicer, exported as an .stl file and made a 3D printed model of.  I am planning to 3D print guides on the left and right side of the spine that are shaped to snugly fit the spine with holes already placed to guide drilling before the screws are placed.  I have imported the .stl of the spine into blender.  

My plan (halfway through completion):


Make a new cube (several thereof), size and rotate for the
approximate angle, place over the appropriate region of the spine
Add a Boolean (difference) modifier to the cube with the spine as the target
Slice the (now shaped) cube in half to give a left and right side that can be placed on the spine in surgery to fit
Make a new cylinder the right diameter and length for the drill guide.  Rotate and place into each guide, add a Boolean (difference) modifier to each guide with the cylinder as a target


My problem: 


With a complicated 3D shape such as a spine, I need to carve the guides appropriately so that they can be slotted into place onto the spine from either side.
I have been doing my carving with Boolean modifiers applied to each guide and extra cubes as needed for targets to shave off appropriate areas
Sometimes the carving leaves the external mesh of the guides intact, sometimes it doesn't and I have to make new faces where old ones have been removed (not very straightforward but achievable by tabbing into edit mode, selecting edge loops via multiple vertex selection, using the C button to highlight select vertices then F to make faces where necessary)
Overall I'm getting there but this is an incredibly slow process given that I still need to print the shapes and test them for fit on my printed spine before going into surgery.


Surely there is a quicker way to do this?  I tried placing each guide on the spine and moving it along the X axis in incremental stages towards the middle (where it is supposed to be), applying Boolean modifiers along the way, but this invariably disrupts the mesh and leaves me with a million faces to recreate (and not confident I'm recreating them in the right places).

Carving as required:


Recreating faces when the carving doesn't work:
Hopefully this is captures the problem and a solution. 

To create geometry for a fixure which can be lifted off a complex geometry like a spine, you can use a high resolution mesh and the shrinkwrap modifier. The resulting object should be 'water-tight' and able to be 3D printed.







Detailed instructions:


Import the spine geometry.

Add a plane which will be the dividing plane between the upper and lower clamps.

Select the spine and the plane. Use ctrl-J to join the geometry. 
Add a cube for the upper portion of the clamp. Size it so it covers the area to the clamped. Keep it above the spline. This block should NOT intersect the spine geometry.

Select the cube and use tab to enter the 'edit mode'. In the edit mode, select the vertices on the bottom of the cube. Use subdivide to create a high resolution mesh on the bottom of the cube. With the bottom of the cube selected, add a vertex group and name it 'bottom'.

Use tab to return to object mode.
Add a shinkwrap modified to the cube. Project the shrinkwrap modified in the 'z' direction and only shinkwrap the 'bottom' vertex group. Set the spine as the target. This will project all of the vertices in the bottom group down onto the spine. Because the plane was added earlier, the shrinkwrap will either touch the bone or the separation plane. Since the vertices only project downward, the block can be removed by lifting off the spine.

You are done! Some other things to consider are increasing the mesh resolution in areas of interest to better match the scanned geometry and adding offset to the meshes to provide some fitting tolerance for installing and removing the blocks.






If additional clearance is needed between the scanned spine and the mold, the diplace modifier can be applied to the geometry. This will project the surfaces of the bones outward a little and give additional room. The image below shows the original spine in geometry as a solid and the displaced geometry in the wire mesh.