solid.Shape

Methods

Method Reference: solid.Shape.knurl

solid.Shape: S = knurl (S, F, PITCH)

solid.Shape: S = knurl (S, F, PITCH, DEPTH)

solid.Shape: S = knurl (…, Name, Value, …)

Knurl a cylindrical face of a shape.

S = knurl (S, F, PITCH) knurls the face of S indexed by F, as solid.Shape.faces returns it, with the crossed knurl of DIN 82 type RGE: two sets of grooves at 30 degrees either side of the axis, teeth of 90 degrees, cut to full depth, leaving raised points. F must be the outside of the part, a cylinder all the way round its axis, and must end at each end in a circle on one flat face square to the axis: the free end of the part, or a shoulder. The wall under F must be thicker than the teeth are deep, and than a fillet or chamfer at an end of F is large: a bore, its thread or anything else reaching into it is an error. So is a hole or pocket in F: knurl first, then cut it.

PITCH is in millimetres, measured square to the grooves as DIN 82 gives it, whose series is 0.5, 0.6, 0.8, 1.0, 1.2 and 1.6. A whole number of grooves must go round the face, so the pitch is fitted to the nearest that gives one: the count is pi d cos (A) / PITCH rounded, d the diameter of F and A the angle of the grooves from the axis. Rings, at 90 degrees, are counted along the length of F the same way.

S = knurl (S, F, PITCH, DEPTH) cuts the grooves DEPTH millimetres deep, which leaves flat lands at the diameter of F between them. By default they are cut to full depth, where the flanks of neighbouring grooves meet in a point: P / (2 tan (PROFILE / 2)), half the pitch at 90 degrees, P the pitch as fitted. A deeper DEPTH is an error.

The knurl is built on the surfaces of its teeth directly rather than cut, which makes it many times faster than cutting its grooves: a knob 28 across knurled at 0.8 takes about two seconds.

That knob has nearly 5000 faces, and every later operation on the shape takes them all in: a boolean or a hole takes seconds, and a projection for a drawing over half a minute. Knurl a part after its other features, and draw it from the shape before knurling, as a drawing shows a knurl: the blank, with the knurl’s type and pitch stated, never its teeth.

Name/Value pairs choose the knurl and finish its ends:

'Pattern'
'crossed', the default, for two sets of grooves, or 'single' for one.
'Angle'
The angle of the grooves from the axis, in degrees, 30 by default. A single knurl takes one angle in the range (-90, 90), a positive one running right-handed, as a thread does, and 0 giving straight grooves along the axis. A crossed knurl takes one angle A in the range (0, 90), for grooves at A and -A, or two different angles from -90 to 90, 90 being rings round the axis.
'Points'
For a crossed knurl only: 'raised', the default, for points standing between the grooves, or 'indented' for pits sunk between ridges.
'Profile'
The angle between the flanks of a tooth, in degrees, in the range (0, 180), 90 by default.
'Fillet'
A radius R rounds every free end of F, an end at a shoulder being left as it is. A cell array {E, R} rounds the end at the edge E to R, and with a row for each end, {E1, R1; E2, R2}, gives each its own radius. The edges are the circles at the ends of F, as solid.Shape.edges returns them, and the knurl runs out over the fillet as it does on a blank whose edge was rounded before knurling.
'Chamfer'
As 'Fillet', for a chamfer of 45 degrees set back D millimetres both ways: a distance D for every free end, or {E, D} with a row for each end.

An end of F takes one fillet or chamfer at most, and an end at a shoulder takes neither, so naming its edge is an error. The ends given by their edges are treated first, and a single size given to the other option treats the free ends left: 'Fillet', 0.5, 'Chamfer', {E, 1} chamfers the end at E and rounds the other. A single size with no free end left to take it is an error, as are single sizes for both. The fillets and chamfers must be smaller than the radius of F and must not overlap.

The types of DIN 82 are made so:

TypeKnurlOptions
RAAstraight 'Pattern', 'single', 'Angle', 0
RBLsingle, left-hand 'Pattern', 'single', 'Angle', -30
RBRsingle, right-hand 'Pattern', 'single'
RGEcrossed, raised pointsnone
RGVcrossed, indented points 'Points', 'indented'
RKEsquare, raised points 'Angle', [0, 90]
RKVsquare, indented points 'Angle', [0, 90], 'Points', 'indented'
 
 ## A knob 28 across, knurled RGE 0.8 with its top edge chamfered 0.5
 S = solid.cylinder (14, 10);
 F = faces (S, 'Type', 'cylinder');
 E = edges (S, 'Type', 'circle', 'Within', [-15, -15, 10, 15, 15, 10]);
 S = knurl (S, F, 0.8, 'Chamfer', {E, 0.5});

See also: solid.Shape.faces, solid.Shape.edges, solid.Shape.fillet, solid.Shape.chamfer

Source Code: solid.Shape