Well, my other code simply grabbed ALL Interior points on the face and added holes to them.
With the External dogbones, you are wanting to only get SOME of the points on the face to add dogbones to. The issue is establishing what those "some" are with code as it's not as easy as saying "angle at 90" degrees because it depends on what side of the origin the point is on, etc, and I don't think that method would be reliable.
One idea I had was to use TransientBReps (if they are the right thing) and then create a cylinder at each point. Then you could calculate the intersection of material. If the area of the intersection of the shapes is approx 75% of the the area of the circle, then you would know it's an internal point. I'm not sure of how to make this happen.
Nor is there a feature that says whether a face is "facing away from the material" in order to use that to establish angles between faces to establish what points actually need to be dogboned.
The simplest way currently is to just use the manual code to do the exterior dog bones. Maybe someone else who has more experience with BReps or who has though of a different algorithm will step in and provide some help.
--------------------------------------
Did you find this reply helpful ? If so please use the 'Accept as Solution' or 'Like' button below.