Sign in with STEVE

steve/v-belt-pulley

Grooved V-belt pulley, ISO 4183: classical Y, Z, A, B, C, D, E and narrow SPZ, SPA, SPB, SPC sections, one or more grooves, plain bore.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 72 lines · Python · STEVE runtime · checked
Download
1"""Grooved pulley for classical and narrow V-belts (ISO 4183): a solid pulley with one or more grooves and a plain bore, axis along Z,
2the first face on the XY plane. The groove profile, its spacing and the groove angle follow the standard's tables for the section and the
3datum diameter. Dimensions from ISO 4183:1995, listed in the README."""
4import math
5
6from steve import Model
7
8section = "A" # Groove profile: Y, Z, A, B, C, D, E (classical) or SPZ, SPA, SPB, SPC (narrow)
9datum_diameter = 94.5 # mm Datum diameter dd (the outside diameter is dd + 2 b)
10grooves = 1 # Number of grooves
11bore = 10.0 # mm Bore diameter
12material = "cast-iron-en-gjl-200" # Material
13
14# ISO 4183:1995 "Belt drives - Classical and narrow V-belts - Grooved pulleys (system based on datum width)", third edition 1995-07-01.
15# Table 2 (with table 1's datum widths): wd, b min, h min, e, f min in mm. Narrow sections share their classical twin's wd, b, e and f and
16# have a deeper h.
17GROOVES = {
18 "Y": (5.3, 1.6, 4.7, 8, 6),
19 "Z": (8.5, 2, 7, 12, 7),
20 "SPZ": (8.5, 2, 9, 12, 7),
21 "A": (11, 2.75, 8.7, 15, 9),
22 "SPA": (11, 2.75, 11, 15, 9),
23 "B": (14, 3.5, 10.8, 19, 11.5),
24 "SPB": (14, 3.5, 14, 19, 11.5),
25 "C": (19, 4.8, 14.3, 25.5, 16),
26 "SPC": (19, 4.8, 19, 25.5, 16),
27 "D": (27, 8.1, 19.9, 37, 23),
28 "E": (32, 9.6, 23.4, 44.5, 28),
29}
30# Table 4: the groove angle in degrees by datum diameter: (largest dd for the smaller angle, smaller angle, larger angle). Y: 32° up to
31# dd 60, 36° above; D and E: 36° up to 475 and 600, 38° above; the rest 34° up to the limit, 38° above.
32ANGLES = {
33 "Y": (60, 32, 36), "Z": (80, 34, 38), "SPZ": (80, 34, 38), "A": (118, 34, 38), "SPA": (118, 34, 38), "B": (190, 34, 38),
34 "SPB": (190, 34, 38), "C": (315, 34, 38), "SPC": (315, 34, 38), "D": (475, 36, 38), "E": (600, 36, 38),
35}
36# Table 5: the smallest datum diameter, mm.
37MIN_DATUM = {"Y": 20, "Z": 50, "A": 75, "B": 125, "C": 200, "D": 355, "E": 500, "SPZ": 63, "SPA": 90, "SPB": 140, "SPC": 224}
38MATERIALS = {"cast-iron-en-gjl-200": "#6f7378", "steel-c45e": "#8d9196", "aluminum-6061-t6": "#c9ccd0"}
39
40if section not in GROOVES:
41 raise ValueError(f"no groove profile {section!r}: {', '.join(GROOVES)}")
42wd, b, h, e, f = GROOVES[section]
43if datum_diameter < MIN_DATUM[section]:
44 raise ValueError(f"ISO 4183 table 5: a {section} pulley's datum diameter is at least {MIN_DATUM[section]} mm")
45if grooves < 1 or grooves != int(grooves):
46 raise ValueError("grooves is a whole number, at least 1")
47limit, small, large = ANGLES[section]
48alpha = small if datum_diameter <= limit else large
49outside = datum_diameter + 2 * b
50root = datum_diameter - 2 * h
51# The bore must leave at least 1 mm of wall under the groove bottoms (a proportion; the standard gives no hub or bore).
52if bore <= 0 or bore > root - 2:
53 raise ValueError(f"bore: up to {root - 2:.1f} mm for a {section} groove at datum Ø {datum_diameter} (groove bottom Ø {root:.1f})")
54if material not in MATERIALS:
55 raise ValueError(f"material: one of {', '.join(MATERIALS)}")
56width = (grooves - 1) * e + 2 * f # face width: f from each face to the nearest groove's centre, e between grooves
57t = math.tan(math.radians(alpha / 2))
58top = wd + 2 * b * t # groove width at the outside diameter
59bottom = wd - 2 * h * t # groove width at its bottom (drawn flat)
60
61model = Model()
62outline = [(bore / 2, 0), (outside / 2, 0)]
63for i in range(grooves):
64 zc = f + i * e
65 outline += [(outside / 2, zc - top / 2), (root / 2, zc - bottom / 2), (root / 2, zc + bottom / 2), (outside / 2, zc + top / 2)]
66outline += [(outside / 2, width), (bore / 2, width)]
67with model.sketch("profile", on="XZ", name="Pulley section") as sk:
68 sk.polyline("section", outline, closed=True)
69model.revolve("pulley", "profile", axis="Z", op="new", body="pulley_body", name="Pulley")
70model.material(material, color=MATERIALS[material])
71result = model.result()
72

Solid grooved pulley for classical and narrow V-belts. The groove profile, groove spacing, edge distance and groove angle follow ISO 4183's tables for the section and datum diameter. The outside diameter is the datum diameter plus twice b. Plain bore, no hub, keyway or set screw. Axis along Z, first face on the XY plane. See the README.

V-belt pulley

A solid grooved pulley for classical and narrow V-belts, with a plain bore. The axis is along Z and the first face lies on the XY plane.

The section, datum diameter and number of grooves give the whole pulley:

  • the outside diameter is the datum diameter plus 2 b, and the groove bottom diameter is the datum diameter minus 2 h;
  • the groove is the datum width wd wide at the datum diameter, with sides at the groove angle α;
  • the grooves are e apart, and the outer grooves' centres are f from the faces, so the face width is (grooves - 1) e + 2 f.
Section wd b min h min e f min Groove angle α by datum Ø dd dd min
Y 5.3 1.6 4.7 8 6 32° up to 60, 36° above 20
Z 8.5 2 7 12 7 34° up to 80, 38° above 50
SPZ 8.5 2 9 12 7 34° up to 80, 38° above 63
A 11 2.75 8.7 15 9 34° up to 118, 38° above 75
SPA 11 2.75 11 15 9 34° up to 118, 38° above 90
B 14 3.5 10.8 19 11.5 34° up to 190, 38° above 125
SPB 14 3.5 14 19 11.5 34° up to 190, 38° above 140
C 19 4.8 14.3 25.5 16 34° up to 315, 38° above 200
SPC 19 4.8 19 25.5 16 34° up to 315, 38° above 224
D 27 8.1 19.9 37 23 36° up to 475, 38° above 355
E 32 9.6 23.4 44.5 28 36° up to 600, 38° above 500

The part uses the minimum b, h and f, and the nominal e. A datum diameter under the section's minimum is refused.

Source

ISO 4183:1995, "Belt drives - Classical and narrow V-belts - Grooved pulleys (system based on datum width)", third edition, 1995-07-01. This is the iTeh Standards public preview of the standard, which carries the whole text: https://cdn.standards.iteh.ai/samples/25817/ae47c2ed867549cbadc47a63b459cf35/ISO-4183-1995.pdf. ISO 4183:2026 has since replaced this edition.

  • Table 1: datum widths wd.
  • Table 2 and figure 1: b min, h min, e, f min.
  • Table 4: the groove angle α by datum diameter.
  • Table 5: the minimum datum diameter.
  • Table 3 lists the preferred datum diameters (R 40). The extra presets use some of them.

Not from the standard:

  • The standard gives the groove and rim, not the body. This part is a solid pulley with a plain bore, and has no hub, web, keyway or set screw.
  • The groove bottom is drawn flat.
  • The bore must leave at least 1 mm of wall under the groove bottoms. That's a limit this part sets, not the standard's.
  • The extra presets' bores are 0.2 x the datum diameter, for show.
  • The materials and colours are a choice: grey cast iron EN-GJL-200 (the default), C45E steel or 6061-T6 aluminium.

Catalogue models

The old catalogue's v belt A pulley and v belt B pulley names give an outside diameter and a bore, with one groove. Its model for every one of them was a plain disc, 10 thick, with no groove. This part builds the real pulley for a name where the standard allows one: the datum diameter is the outside diameter minus 2 b, and it must reach table 5's minimum.

  • A section, outside Ø 100 and 120: datum Ø 94.5 and 114.5, 34°, face width 18, bores 5 to 15. These map.
  • A section, outside Ø 20 to 80: left out. The datum diameter would be under 75; outside Ø 80 gives 74.5.
  • B section, every outside Ø (20 to 120): left out. The datum diameter would be under 125, which needs an outside Ø of at least 132.

The old catalogue's flat-belt and round-belt pulleys aren't here. Their model was the same plain disc. Their names give only the outside diameter and bore, not a flat pulley's face width and crown or a round belt's size and groove, so they don't describe one real pulley.

  1. 1.0.0 Latest
More #pulley
STEVEMIT

steve/timing-pulley

Flanged timing pulley envelope: GT2 (2GT), GT3 (3GT) and MXL, tooth counts, belt widths and bores as presets.

0 219 sizes 0 8 hours ago v1.1.1
STEVEMIT

steve/timing-belt

GT2 (2GT) open timing belt as a straight envelope: width and length as parameters, with common lengths as presets.

0 15 sizes 0 8 hours ago v1.1.1
STEVEMIT

steve/spur-gear

Involute spur gear, ISO 53 basic rack, ISO 54 modules 0.5 to 2: teeth, bore and width as presets.

1 300 sizes 0 8 hours ago v1.0.1
STEVEMIT

steve/miter-gear

Straight miter gear (1:1 bevel, 90 degree) envelope, modules 1 to 3, with catalogue numbers as presets.

1 22 sizes 0 8 hours ago v1.1.1