Hole variants
Four hole variants share the same anchor convention: pass a sketch
Point (typically a translated Sketch.origin) and the depth is
measured along the sketch normal.
Hole(point, radius, depth)
CounterBoreHole(point, radius, depth, cbore_radius, cbore_depth)
CounterSinkHole(point, radius, depth, csink_radius, csink_angle_deg)
TappedHole(point, thread_size, depth) # bore at radius = thread_size / 2CounterBoreHole and CounterSinkHole desugar to a Lathe of a
stepped profile with cut=true, so the bore and the recess come out
as a single subtraction. TappedHole itself is just the clearance bore;
the example sweeps a real helical Thread into its wall so it reads as
tapped. Threads are a helical Sweep — accurate but compute-heavy — so add
one explicitly only where you need the actual thread rendered.