Sign in with STEVE

steve/thrust-ball-bearing

Single-direction thrust ball bearing, 511, 512 and 513 series, bore 10 to 50 mm,.

v1.1.0 Latest STEVE MIT 0
Isometric
part.py 46 lines · Python · STEVE runtime · checked
Download
1"""Single-direction thrust ball bearing, 511, 512 and 513 series, bore up to 50 mm. Bore d, outside diameter D, height T, shaft washer outside d1, housing washer bore D1, washer thickness t and chamfer r are sourced and make the fit. detail = "full": two washers with raceways and the balls between them. The rolling element size and count, shoulder heights and clearances are proportions for looks, not for design, and never change the fit dimensions. The cage is not drawn. detail = "simple": one solid ring. Axis along Z, centred on the origin."""
2import math
3
4from steve import Model
5
6designation = "51104" # Bearing number
7detail = "full" # full: rings and rolling elements; simple: one solid
8
9# number: (d, D, T, housing washer bore D1, washer thickness t, r). NTN Ball and Roller Bearings CAT. No. 2203-3/E (2024), pp. B-150 to B-151 (PDF pages 226-227), https://www.ntnglobal.com/en/products/catalog/pdf/2203E.pdf
10BEARINGS = {"51100": (10, 24, 9, 11, 2.5, 0.3), "51101": (12, 26, 9, 13, 2.5, 0.3), "51102": (15, 28, 9, 16, 2.5, 0.3), "51103": (17, 30, 9, 18, 2.5, 0.3), "51104": (20, 35, 10, 21, 2.5, 0.3), "51105": (25, 42, 11, 26, 3, 0.6), "51106": (30, 47, 11, 32, 3, 0.6), "51107": (35, 52, 12, 37, 3.5, 0.6), "51108": (40, 60, 13, 42, 3.8, 0.6), "51109": (45, 65, 14, 47, 4, 0.6), "51110": (50, 70, 14, 52, 4, 0.6), "51200": (10, 26, 11, 12, 3.3, 0.6), "51201": (12, 28, 11, 14, 3.3, 0.6), "51202": (15, 32, 12, 17, 3.5, 0.6), "51203": (17, 35, 12, 19, 3.5, 0.6), "51204": (20, 40, 14, 22, 4.1, 0.6), "51205": (25, 47, 15, 27, 4.3, 0.6), "51206": (30, 52, 16, 32, 5, 0.6), "51207": (35, 62, 18, 37, 5.2, 1), "51208": (40, 68, 19, 42, 5.5, 1), "51209": (45, 73, 20, 47, 6, 1), "51210": (50, 78, 22, 52, 7, 1), "51305": (25, 52, 18, 27, 5, 1), "51306": (30, 60, 21, 32, 6.4, 1), "51307": (35, 68, 24, 37, 7.2, 1), "51308": (40, 78, 26, 42, 7.6, 1), "51309": (45, 85, 28, 47, 8.3, 1), "51310": (50, 95, 31, 52, 9.2, 1)}
11
12d, D, T, D1, t, r = BEARINGS[designation]
13W = T
14model = Model()
15if detail == "simple":
16 outline = [(d / 2 + r, -W / 2), (D / 2 - r, -W / 2), (D / 2, -W / 2 + r), (D / 2, W / 2 - r), (D / 2 - r, W / 2), (d / 2 + r, W / 2),
17 (d / 2, W / 2 - r), (d / 2, -W / 2 + r)]
18 with model.sketch("section", on="XZ", name="Section") as sk:
19 sk.polyline("ring", outline, closed=True)
20 model.revolve("inner", "section", axis="Z", name="Bearing")
21else:
22 pitch_r = (D + D1) / 4
23 depth = 0.25 * t # raceway depth in each washer
24 ball = T - 2 * t + 2 * depth
25 race = ball / 2 + 0.02 * ball
26 half = math.sqrt(race * race - (race - depth) ** 2)
27 angles = [math.asin(half / race) * (i - 4) / 4 for i in range(9)]
28 low_face_z, low_top = -T / 2, -T / 2 + t
29 high_top, high_face_z = T / 2 - t, T / 2
30 low_groove = [(pitch_r + race * math.sin(a), -race * math.cos(a)) for a in reversed(angles)]
31 high_groove = [(pitch_r + race * math.sin(a), race * math.cos(a)) for a in angles]
32 shaft_washer = [(d / 2 + r, low_face_z), (D / 2 - r, low_face_z), (D / 2, low_face_z + r), (D / 2, low_top)] + low_groove + [(d / 2, low_top), (d / 2, low_face_z + r)]
33 housing_washer = [(D1 / 2, high_face_z - r), (D1 / 2, high_top)] + [p for p in reversed(high_groove)][::-1][:0] + high_groove + [(D / 2, high_top), (D / 2, high_face_z - r), (D / 2 - r, high_face_z), (D1 / 2 + r, high_face_z)]
34 with model.sketch("shaft_section", on="XZ", name="Shaft washer section") as sk:
35 sk.polyline("shaft_ring", shaft_washer, closed=True)
36 model.revolve("shaft_washer", "shaft_section", axis="Z", op="new", body="shaft_washer_body", name="Shaft washer")
37 with model.sketch("housing_section", on="XZ", name="Housing washer section") as sk:
38 sk.polyline("housing_ring", housing_washer, closed=True)
39 model.revolve("housing_washer", "housing_section", axis="Z", op="new", body="housing_washer_body", name="Housing washer")
40 balls = max(5, int(2 * math.pi * pitch_r / (1.25 * ball)))
41 model.sphere("ball", ball / 2, at=(pitch_r, 0, 0), op="new", body="ball_body", name="Ball")
42 model.circular_pattern("balls", axis="Z", count=balls, bodies=["ball_body"], name="Balls")
43model.material("steel-generic")
44model.appearance(color="#b9bdc2")
45result = model.result()
46

Single-direction thrust ball bearing, 511, 512 and 513 series, bore up to 50 mm. Bore d, outside diameter D, height T, shaft washer outside d1, housing washer bore D1, washer thickness t and chamfer r are sourced and make the fit. detail = "full": two washers with raceways and the balls between them. The rolling element size and count, shoulder heights and clearances are proportions for looks, not for design, and never change the fit dimensions. The cage is not drawn. detail = "simple": one solid ring. Axis along Z, centred on the origin. Dimensions from a maker's public catalogue (see the README); not affiliated with any maker.

Single-direction thrust ball bearing

Geometry

Single-direction thrust ball bearing, 511, 512 and 513 series, bore up to 50 mm. Bore d, outside diameter D, height T, shaft washer outside d1, housing washer bore D1, washer thickness t and chamfer r are sourced and make the fit. detail = "full": two washers with raceways and the balls between them. The rolling element size and count, shoulder heights and clearances are proportions for looks, not for design, and never change the fit dimensions. The cage is not drawn. detail = "simple": one solid ring. Axis along Z, centred on the origin.

For the fit: the sourced dimensions below. For looks only, not for design: every other proportion named above.

Source

NTN, Ball and Roller Bearings, CAT. No. 2203-3/E (2024), https://www.ntnglobal.com/en/products/catalog/pdf/2203E.pdf, pp. B-150 to B-151 (PDF pages 226 and 227). ISO 104 sets the boundary dimensions of these series.

Number d D T
51100 10 24 9
51101 12 26 9
51102 15 28 9
51103 17 30 9
51104 20 35 10
51105 25 42 11
51106 30 47 11
51107 35 52 12
51108 40 60 13
51109 45 65 14
51110 50 70 14
51200 10 26 11
51201 12 28 11
51202 15 32 12
51203 17 35 12
51204 20 40 14
51205 25 47 15
51206 30 52 16
51207 35 62 18
51208 40 68 19
51209 45 73 20
51210 50 78 22
51305 25 52 18
51306 30 60 21
51307 35 68 24
51308 40 78 26
51309 45 85 28
51310 50 95 31

Maker names identify the source; this part isn't made by or affiliated with any maker.

Washer thickness t, housing washer bore D1 and chamfers r are in part.py (BEARINGS), from the same tables. No tolerance class is stated yet.

  1. 1.1.0 Latest Compare with 1.0.0

    Looks like a bearing: rings and rolling elements. detail = simple keeps one solid ring.

  2. 1.0.0
More #bearing
STEVEMIT

steve/deep-groove-ball-bearing

Deep groove ball bearing, metric: 6xx, MR, 60, 62, 63, 68 and 69 series, open, ZZ or 2RS, optional flange.

3 52 sizes 0 2 hours ago v2.2.0