The hole tool is slowly but surely coming together. The most challenging part has not really been the ruby backend and the various manipulations of the API with the floor geometry. My biggest challenge has been how best to design the HTML "Edit Menu". The issue is that each side of the hole may have different values for the header/trimmer that skirt that side of the hole.
For example the hole below has six sides and each side may have a completely different header with unique requirements. I narrowed the parameters down to 10 per side as previously given in a post on this thread back in November. The data structure that stores all of this information is fairly straight forward but I am still working on how to display this data and make is intuitively manageable.

As far as the actual hole cutting there are two solids under the hood that perform this operation. The first one cuts the sheathing, flooring and gypsum and is the same size as the hole. This is working now and is very straight forward.
The second cutting solid is typically larger and only cuts the joists and insulation, the amount that it insets into the floor is determined by the (header thickness x ply) on each respective side.
It's not rocket science but there is actually quite a bit going on here. The code that creates the headers (or rim of boards around the hole) will borrow heavily from my existing module that creates the rim joists around the perimeter of the floor. The nice thing is that I now have so much code to borrow from that it often helps me generate new code, since I don't usually have to start from complete zero.
Just a little update on how the sausage is made. :slight_smile:
For example the hole below has six sides and each side may have a completely different header with unique requirements. I narrowed the parameters down to 10 per side as previously given in a post on this thread back in November. The data structure that stores all of this information is fairly straight forward but I am still working on how to display this data and make is intuitively manageable.

As far as the actual hole cutting there are two solids under the hood that perform this operation. The first one cuts the sheathing, flooring and gypsum and is the same size as the hole. This is working now and is very straight forward.
The second cutting solid is typically larger and only cuts the joists and insulation, the amount that it insets into the floor is determined by the (header thickness x ply) on each respective side.
It's not rocket science but there is actually quite a bit going on here. The code that creates the headers (or rim of boards around the hole) will borrow heavily from my existing module that creates the rim joists around the perimeter of the floor. The nice thing is that I now have so much code to borrow from that it often helps me generate new code, since I don't usually have to start from complete zero.
Just a little update on how the sausage is made. :slight_smile: