solid.Shape.thread
solid.Shape: S = thread (S, P, NAME, DEPTH)
solid.Shape: S = thread (…, Name, Value, …)
Cut screw threads into a shape.
S = thread (S, P, NAME, DEPTH) cuts
the ISO metric thread NAME at every row of the M-by-3
matrix P, each along an axis starting at its point and running
down the z axis, DEPTH millimetres deep. NAME is
named as for solid.Shape.hole: a coarse thread by its diameter,
as 'M6', a fine one with its pitch, as 'M10x1.25', from
M1 to M64 with a diameter and pitch of ISO 261, or any diameter and
pitch with 'Custom', cut by the same profile and turned to the
same class 6g as an ISO thread. P and
DEPTH are those of solid.Shape.hole, so a thread is placed
as its tapping hole is: DEPTH is the usable length of thread,
the full profile reaching it, and a blind tapped hole is drilled deeper
than it is threaded. An Inf DEPTH threads right through,
and no thread runs more than a pitch past the far side of the part.
What the axis meets decides the thread. Where it runs through a bore
between the thread’s minor diameter D_1 = D - 1.0825 P and its
nominal diameter, the thread is internal and is cut from the bore as
drilled, so its crest stands where the drill left it: a hole drilled
with solid.Shape.hole for steel or for stainless steel models
the engagement each gives. Where it runs into a solid cylinder from
halfway between the pitch diameter d - 0.6495 P and the nominal
diameter up to the nominal diameter, 5.675 to 6 for M6, the thread is
external and is cut from the cylinder as turned. A cylinder at the
nominal diameter, which is how a rod is designed, is first turned down
over the threaded length to the largest major diameter of tolerance
class 6g, as a machinist turns a blank before threading it: the
nominal diameter plus the fundamental deviation of position g,
-(15 + 11 P) micrometres, of ISO 965-1:1998, 13.1, rounded as
its table 1 is, to the R 40 series of ISO 3 and then to a whole
number. M6 is turned to 5.974. A blank of another diameter is turned
in the design. An axis that meets neither is an error naming the
thread and the point, and so is a thread that would cut beyond its
bore or cylinder: the bore must run on 0.03 pitches past the thread,
and a cylinder must reach as far before any shoulder.
A tube is threaded inside or outside, by whichever of its bore and its cylinder fits: a tube of 6 with a bore of 2 takes an external M6. A wall whose bore and cylinder both fit is thinner than either thread is deep, and is an error, as is an internal thread that would cut through the wall round its bore: a cylinder, or any other outline, as the flats of a hexagon or the teeth of a knurl.
The profile is the basic profile of ISO 68-1, its 60 degree flanks
swept round the axis by solid.helix: an internal thread’s root
is flat at the nominal diameter, an external thread’s flat at
D_1. The thread is right-handed, and starts a pitch before the
point so that it runs out of the surface clean.
Open CASCADE fails to cut some threads, at depths no rule predicts. Such a thread is cut again by a tool built another way, and kept only when it removes the volume its groove holds inside the part; otherwise it is an error naming the thread and the point.
Name/Value pairs place the threads as for solid.Shape.hole:
'Direction'[0, 0, -1] by default. It cannot be given when P is a
geom.UCS.'At'geom.UCS
P, one thread at each, all against its normal; the UCS origin
alone by default. It applies only when P is a geom.UCS.'Custom'solid.Shape.hole, false by default.Threading the empty shape leaves it empty.
## A block tapped M6 12 deep, its hole drilled 15 deep S = solid.box (20, 20, 20); S = hole (S, [10, 10, 20], 'M6', 15); S = thread (S, [10, 10, 20], 'M6', 12); |
## A rod of 10 threaded M10 for 15 from its end S = solid.cylinder (5, 40); S = thread (S, [0, 0, 40], 'M10', 15); |
See also: solid.Shape.hole, solid.threadspec, solid.helix
Source Code: solid.Shape