Spiral hole gauge (improve my design challenge)
Posted: Mon Nov 21, 2022 8:35 pm
Hey guys,
I spent far too much time designing a hole gauge that I intend to 3D-print, for the purpose of serving as a test piece for various bolts and screws to determine exactly what size hole I need to use in actual CAD models of other 3D printed parts to get the right clearances and the right amount of screwing force required for a given application. I printed a few gauges like this one before, and they are incredibly useful, but now I wanted a fancy one.
My design requirements were:
1. Holes must range from 1mm to 12mm, with an increment of 0.1mm (111 holes)
2. Neighboring holes must have a constant clearance between them (1mm, to provide exactly 2 perimeter lines in between)
3. Needs to be compact - as little wasted space between holes as possible
4. Needs to have markings (text) for hole sizes - not necessarily for each hole, but at least every 10 holes
5. Fully parametric, of course. Markings included.
7. Has to be a spiral, just because!
I would like to share how I did it (it is far more complicated than it looks!), and perhaps you'll want to try and improve on this design. Maybe for your own hole gauge, maybe just for a fancy drill holder.
The main issue here is that hole spacing must increase as holes increase in size, to preserve equal spacing. Curve Driven Pattern on Spiral won't work, because it doesn't support Instances to Vary. So it has to be a Circular Pattern, incrementing how far each hole is from the center axis, therefore creating a spiral.
1. Since it is difficult to predict the final shape, first I extruded oversized base plate, enough to experiment on.
2. Then I defined some global variables to reference later on. Pretty much self-explanatory. "Spiral Increment" is how much each hole offsets further away from the center compared to the previous hole. This could have been expressed as a spiral pitch, but I'm not that good with spiral math.
3. Then, a plan sketch that establishes how the spiral begins, getting two important figures - the pattern angle, and how far the first hole must be from the center in order to maintain sufficient hole clearance.
4. First hole is created (Hole Wizard), and then the rest of the holes are created with Circular Pattern, incrementing both the hole size, and the offset increment. This required some manual tinkering with the Spiral Increment to make sure the largest holes don't overlap. And this is also the main issue of this approach - with constant pitch of the spiral, this pitch must be set high enough so that the largest holes get their clearance, but for the small holes it is too large, resulting in wasted space at the middle of the part. Ideally, the spiral should have variable pitch to keep hole clearances more consistent between the different "laps" of the spiral. I have no idea how to do it, though. Unfortunately Circular Pattern Instances to Vary does not allow dynamic equations to modify offset increment with each new instance. Tried incrementing pattern angle - doesn't work, it only ruins the equal clearances between holes.
5. Holes are now complete. Now, the really crazy part - parametric markings. They need to be built with Sketch Text, this text has to be patterned, and each marking must be right next to it's corresponding hole with more or less consistent clearance. There is a clever trick to do patterned text - have it reference a dimension, and then modify that dimension with Instances to Vary (learned it from here: https://www.beacon-india.com/incrementa ... olidworks/). So basically there has to be a dimension inside the text sketch that has the hole size.
Now here's the bummer... Turns out, when feature with a sketch is patterned, equations inside that sketch are not updated for each instance. Basically you can only reference some static values from outside the sketch, and that's it. This means that the equation that turns text offset distance into a hole number, must be solved geometrically. Enter Descartes geometric division/multiplication triangles.
This thing took me ages to get right. Lines on top of lines on top of lines and a mess of relations, all to get a simple number of the hole. Unfortunately, I had to start at the second hole marking, because geometric solving won't work for the first one - some lines become zero-length. First hole marking had to be done in a separate feature, which is fully referencing this one. Sketch positioning had to be also solved with geometric equations, to offset that text as the hole size increases.
6. And then pattern with some more equations, incrementing text offset from the axis just like for the holes to make that sketch work it's magic.
7. Finally, the trim for the base plate with a nice spiral following the contour of the holes. Unfortunately, I had to guesstimate spiral pitch, as well as the start and end locations. Not parametric at all There is probably some smart way to mathematically work out where the final hole will end up, but due to the way I built this spiral, I just have no idea. Another place for improvement.
And, that's it. A few more rounds, chamfers, and it's done.
Kind of posting this to show off, but I am also very interested to know if there is a way to build a spiral hole pattern with variable pitch - that would keep similar clearances not only between neighboring holes, but also between holes in different "laps" of the spiral. That would save some space and make this gauge more compact, and probably better looking
Attaching the part, saved in SW 2021, and also a Parasolid for the pre-2021 folks.
I spent far too much time designing a hole gauge that I intend to 3D-print, for the purpose of serving as a test piece for various bolts and screws to determine exactly what size hole I need to use in actual CAD models of other 3D printed parts to get the right clearances and the right amount of screwing force required for a given application. I printed a few gauges like this one before, and they are incredibly useful, but now I wanted a fancy one.
My design requirements were:
1. Holes must range from 1mm to 12mm, with an increment of 0.1mm (111 holes)
2. Neighboring holes must have a constant clearance between them (1mm, to provide exactly 2 perimeter lines in between)
3. Needs to be compact - as little wasted space between holes as possible
4. Needs to have markings (text) for hole sizes - not necessarily for each hole, but at least every 10 holes
5. Fully parametric, of course. Markings included.
7. Has to be a spiral, just because!
I would like to share how I did it (it is far more complicated than it looks!), and perhaps you'll want to try and improve on this design. Maybe for your own hole gauge, maybe just for a fancy drill holder.
The main issue here is that hole spacing must increase as holes increase in size, to preserve equal spacing. Curve Driven Pattern on Spiral won't work, because it doesn't support Instances to Vary. So it has to be a Circular Pattern, incrementing how far each hole is from the center axis, therefore creating a spiral.
1. Since it is difficult to predict the final shape, first I extruded oversized base plate, enough to experiment on.
2. Then I defined some global variables to reference later on. Pretty much self-explanatory. "Spiral Increment" is how much each hole offsets further away from the center compared to the previous hole. This could have been expressed as a spiral pitch, but I'm not that good with spiral math.
3. Then, a plan sketch that establishes how the spiral begins, getting two important figures - the pattern angle, and how far the first hole must be from the center in order to maintain sufficient hole clearance.
4. First hole is created (Hole Wizard), and then the rest of the holes are created with Circular Pattern, incrementing both the hole size, and the offset increment. This required some manual tinkering with the Spiral Increment to make sure the largest holes don't overlap. And this is also the main issue of this approach - with constant pitch of the spiral, this pitch must be set high enough so that the largest holes get their clearance, but for the small holes it is too large, resulting in wasted space at the middle of the part. Ideally, the spiral should have variable pitch to keep hole clearances more consistent between the different "laps" of the spiral. I have no idea how to do it, though. Unfortunately Circular Pattern Instances to Vary does not allow dynamic equations to modify offset increment with each new instance. Tried incrementing pattern angle - doesn't work, it only ruins the equal clearances between holes.
5. Holes are now complete. Now, the really crazy part - parametric markings. They need to be built with Sketch Text, this text has to be patterned, and each marking must be right next to it's corresponding hole with more or less consistent clearance. There is a clever trick to do patterned text - have it reference a dimension, and then modify that dimension with Instances to Vary (learned it from here: https://www.beacon-india.com/incrementa ... olidworks/). So basically there has to be a dimension inside the text sketch that has the hole size.
Now here's the bummer... Turns out, when feature with a sketch is patterned, equations inside that sketch are not updated for each instance. Basically you can only reference some static values from outside the sketch, and that's it. This means that the equation that turns text offset distance into a hole number, must be solved geometrically. Enter Descartes geometric division/multiplication triangles.
This thing took me ages to get right. Lines on top of lines on top of lines and a mess of relations, all to get a simple number of the hole. Unfortunately, I had to start at the second hole marking, because geometric solving won't work for the first one - some lines become zero-length. First hole marking had to be done in a separate feature, which is fully referencing this one. Sketch positioning had to be also solved with geometric equations, to offset that text as the hole size increases.
6. And then pattern with some more equations, incrementing text offset from the axis just like for the holes to make that sketch work it's magic.
7. Finally, the trim for the base plate with a nice spiral following the contour of the holes. Unfortunately, I had to guesstimate spiral pitch, as well as the start and end locations. Not parametric at all There is probably some smart way to mathematically work out where the final hole will end up, but due to the way I built this spiral, I just have no idea. Another place for improvement.
And, that's it. A few more rounds, chamfers, and it's done.
Kind of posting this to show off, but I am also very interested to know if there is a way to build a spiral hole pattern with variable pitch - that would keep similar clearances not only between neighboring holes, but also between holes in different "laps" of the spiral. That would save some space and make this gauge more compact, and probably better looking
Attaching the part, saved in SW 2021, and also a Parasolid for the pre-2021 folks.