steve/cylindrical-roller-bearing
Cylindrical roller bearing, NU2 and NU3 series, bore 10 to 50 mm,.
Tapered roller bearing, 302 and 303 series, bore 15 to 50 mm,.
| 1 | """Tapered roller bearing, 302 and 303 series, bore up to 50 mm. Bore d, outside diameter D, overall width T, cone width B, cup width C and chamfers r (cone back) and r1 (cup back) are sourced and make the fit. detail = "full": the cone with its back rib, the cup and the tapered rollers at an angle between them. The 14 degree angle, roller size, rib and roller count are proportions for looks, not for design, and never change the fit dimensions; the cage is not drawn. detail = "simple": one solid ring d x D x T. Axis along Z, centred on the origin; cone back face at z = -T/2, cup back face at z = +T/2.""" |
| 2 | import math |
| 3 | |
| 4 | from steve import Model |
| 5 | |
| 6 | designation = "30204" # Bearing number |
| 7 | detail = "full" # full: rings and rolling elements; simple: one solid |
| 8 | |
| 9 | # number: (d, D, T, B, C, r, r1). NTN Ball and Roller Bearings CAT. No. 2203-3/E (2024), PDF pages 165-167, https://www.ntnglobal.com/en/products/catalog/pdf/2203E.pdf |
| 10 | BEARINGS = {"30203": (17, 40, 13.25, 12, 11, 1, 1), "30204": (20, 47, 15.25, 14, 12, 1, 1), "30205": (25, 52, 16.25, 15, 13, 1, 1), "30206": (30, 62, 17.25, 16, 14, 1, 1), "30207": (35, 72, 18.25, 17, 15, 1.5, 1.5), "30208": (40, 80, 19.75, 18, 16, 1.5, 1.5), "30209": (45, 85, 20.75, 19, 16, 1.5, 1.5), "30210": (50, 90, 21.75, 20, 17, 1.5, 1.5), "30302": (15, 42, 14.25, 13, 11, 1, 1), "30303": (17, 47, 15.25, 14, 12, 1, 1), "30304": (20, 52, 16.25, 16, 13, 1.5, 1.5), "30305": (25, 62, 18.25, 17, 15, 1.5, 1.5), "30306": (30, 72, 20.75, 19, 16, 1.5, 1.5), "30307": (35, 80, 22.75, 21, 18, 2, 1.5), "30308": (40, 90, 25.25, 23, 20, 2, 1.5), "30309": (45, 100, 27.25, 25, 22, 2, 1.5), "30310": (50, 110, 29.25, 27, 23, 2.5, 2)} |
| 11 | |
| 12 | d, D, T, B, C, r, r1 = BEARINGS[designation] |
| 13 | W = T |
| 14 | model = Model() |
| 15 | if 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") |
| 21 | else: |
| 22 | angle = math.radians(14) |
| 23 | section = (D - d) / 2 |
| 24 | mean_r = (D + d) / 4 |
| 25 | roller = 0.2 * section # mean roller radius |
| 26 | roller_length = 0.72 * C |
| 27 | slope = math.tan(angle) |
| 28 | offset = (roller * 1.04) / math.cos(angle) |
| 29 | |
| 30 | def cone_race(z): |
| 31 | return mean_r - offset - z * slope |
| 32 | |
| 33 | def cup_race(z): |
| 34 | return mean_r + offset - z * slope |
| 35 | |
| 36 | cone_top = -T / 2 + B |
| 37 | cup_low = T / 2 - C |
| 38 | rib = 0.35 * roller |
| 39 | rib_z = -T / 2 + 0.16 * B |
| 40 | cone = [(d / 2 + r, -T / 2), (cone_race(rib_z) + rib, -T / 2), (cone_race(rib_z) + rib, rib_z), (cone_race(rib_z), rib_z), (cone_race(cone_top), cone_top), (d / 2 + 0.3 * r, cone_top), (d / 2, cone_top - 0.3 * r), (d / 2, -T / 2 + r)] |
| 41 | cup = [(cup_race(cup_low), cup_low), (D / 2 - 0.3 * r1, cup_low), (D / 2, cup_low + 0.3 * r1), (D / 2, T / 2 - r1), (D / 2 - r1, T / 2), (cup_race(T / 2), T / 2)] |
| 42 | with model.sketch("cone_section", on="XZ", name="Cone section") as sk: |
| 43 | sk.polyline("cone_ring", cone, closed=True) |
| 44 | model.revolve("cone", "cone_section", axis="Z", op="new", body="cone_body", name="Cone") |
| 45 | with model.sketch("cup_section", on="XZ", name="Cup section") as sk: |
| 46 | sk.polyline("cup_ring", cup, closed=True) |
| 47 | model.revolve("cup", "cup_section", axis="Z", op="new", body="cup_body", name="Cup") |
| 48 | ux, uz = -math.sin(angle), math.cos(angle) |
| 49 | nx, nz = math.cos(angle), math.sin(angle) |
| 50 | r_big, r_small = roller * 1.12, roller * 0.88 |
| 51 | a = (mean_r - ux * roller_length / 2, -uz * roller_length / 2) |
| 52 | b = (mean_r + ux * roller_length / 2, uz * roller_length / 2) |
| 53 | with model.sketch("roller_section", on="XZ", name="Roller section") as sk: |
| 54 | sk.polyline("roller_half", [a, b, (b[0] + nx * r_small, b[1] + nz * r_small), (a[0] + nx * r_big, a[1] + nz * r_big)], closed=True) |
| 55 | model.revolve("roller", "roller_section", axis=((mean_r, 0, 0), (ux, 0, uz)), op="new", body="roller_body", name="Roller") |
| 56 | rollers = max(6, int(2 * math.pi * mean_r / (2.5 * r_big))) |
| 57 | model.circular_pattern("rollers", axis="Z", count=rollers, bodies=["roller_body"], name="Rollers") |
| 58 | model.material("steel-generic") |
| 59 | model.appearance(color="#b9bdc2") |
| 60 | result = model.result() |
| 61 |
| 1 | name = "steve/tapered-roller-bearing" |
| 2 | version = "1.1.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Tapered roller bearing, 302 and 303 series, bore 15 to 50 mm,." |
| 6 | description = """Tapered roller bearing, 302 and 303 series, bore up to 50 mm. Bore d, outside diameter D, overall width T, cone width B, cup width C and chamfers r (cone back) and r1 (cup back) are sourced and make the fit. detail = \"full\": the cone with its back rib, the cup and the tapered rollers at an angle between them. The 14 degree angle, roller size, rib and roller count are proportions for looks, not for design, and never change the fit dimensions; the cage is not drawn. detail = \"simple\": one solid ring d x D x T. Axis along Z, centred on the origin; cone back face at z = -T/2, cup back face at z = +T/2. Dimensions from a maker's public catalogue (see the README); not affiliated with any maker.""" |
| 7 | tags = ["bearing", "roller-bearing", "tapered-roller", "iso-355", "metric"] |
| 8 | changes = "Looks like a bearing: rings and rolling elements. detail = simple keeps one solid ring." |
| 9 | |
| 10 | [parameters.designation] |
| 11 | type = "choice" |
| 12 | default = "30204" |
| 13 | choices = ["30203", "30204", "30205", "30206", "30207", "30208", "30209", "30210", "30302", "30303", "30304", "30305", "30306", "30307", "30308", "30309", "30310"] |
| 14 | label = "Bearing number" |
| 15 | |
| 16 | [parameters.detail] |
| 17 | type = "choice" |
| 18 | default = "full" |
| 19 | choices = ["full", "simple"] |
| 20 | label = "Detail" |
| 21 | description = "full: rings and rolling elements. simple: one solid ring with the same boundary dimensions, for big assemblies." |
| 22 | |
| 23 | [[presets]] |
| 24 | id = "30203" |
| 25 | title = "30203 (17 × 40 × 13.25)" |
| 26 | params = { designation = "30203" } |
| 27 | aliases = ["30203 bearing", "tapered roller bearing 30203", "4T-30203"] |
| 28 | standard = "ISO 355" |
| 29 | |
| 30 | [[presets]] |
| 31 | id = "30204" |
| 32 | title = "30204 (20 × 47 × 15.25)" |
| 33 | params = { designation = "30204" } |
| 34 | aliases = ["30204 bearing", "tapered roller bearing 30204", "4T-30204"] |
| 35 | standard = "ISO 355" |
| 36 | |
| 37 | [[presets]] |
| 38 | id = "30205" |
| 39 | title = "30205 (25 × 52 × 16.25)" |
| 40 | params = { designation = "30205" } |
| 41 | aliases = ["30205 bearing", "tapered roller bearing 30205", "4T-30205"] |
| 42 | standard = "ISO 355" |
| 43 | |
| 44 | [[presets]] |
| 45 | id = "30206" |
| 46 | title = "30206 (30 × 62 × 17.25)" |
| 47 | params = { designation = "30206" } |
| 48 | aliases = ["30206 bearing", "tapered roller bearing 30206", "4T-30206"] |
| 49 | standard = "ISO 355" |
| 50 | |
| 51 | [[presets]] |
| 52 | id = "30207" |
| 53 | title = "30207 (35 × 72 × 18.25)" |
| 54 | params = { designation = "30207" } |
| 55 | aliases = ["30207 bearing", "tapered roller bearing 30207", "4T-30207"] |
| 56 | standard = "ISO 355" |
| 57 | |
| 58 | [[presets]] |
| 59 | id = "30208" |
| 60 | title = "30208 (40 × 80 × 19.75)" |
| 61 | params = { designation = "30208" } |
| 62 | aliases = ["30208 bearing", "tapered roller bearing 30208", "4T-30208"] |
| 63 | standard = "ISO 355" |
| 64 | |
| 65 | [[presets]] |
| 66 | id = "30209" |
| 67 | title = "30209 (45 × 85 × 20.75)" |
| 68 | params = { designation = "30209" } |
| 69 | aliases = ["30209 bearing", "tapered roller bearing 30209", "4T-30209"] |
| 70 | standard = "ISO 355" |
| 71 | |
| 72 | [[presets]] |
| 73 | id = "30210" |
| 74 | title = "30210 (50 × 90 × 21.75)" |
| 75 | params = { designation = "30210" } |
| 76 | aliases = ["30210 bearing", "tapered roller bearing 30210", "4T-30210"] |
| 77 | standard = "ISO 355" |
| 78 | |
| 79 | [[presets]] |
| 80 | id = "30302" |
| 81 | title = "30302 (15 × 42 × 14.25)" |
| 82 | params = { designation = "30302" } |
| 83 | aliases = ["30302 bearing", "tapered roller bearing 30302", "4T-30302"] |
| 84 | standard = "ISO 355" |
| 85 | |
| 86 | [[presets]] |
| 87 | id = "30303" |
| 88 | title = "30303 (17 × 47 × 15.25)" |
| 89 | params = { designation = "30303" } |
| 90 | aliases = ["30303 bearing", "tapered roller bearing 30303", "4T-30303"] |
| 91 | standard = "ISO 355" |
| 92 | |
| 93 | [[presets]] |
| 94 | id = "30304" |
| 95 | title = "30304 (20 × 52 × 16.25)" |
| 96 | params = { designation = "30304" } |
| 97 | aliases = ["30304 bearing", "tapered roller bearing 30304", "4T-30304"] |
| 98 | standard = "ISO 355" |
| 99 | |
| 100 | [[presets]] |
| 101 | id = "30305" |
| 102 | title = "30305 (25 × 62 × 18.25)" |
| 103 | params = { designation = "30305" } |
| 104 | aliases = ["30305 bearing", "tapered roller bearing 30305", "4T-30305"] |
| 105 | standard = "ISO 355" |
| 106 | |
| 107 | [[presets]] |
| 108 | id = "30306" |
| 109 | title = "30306 (30 × 72 × 20.75)" |
| 110 | params = { designation = "30306" } |
| 111 | aliases = ["30306 bearing", "tapered roller bearing 30306", "4T-30306"] |
| 112 | standard = "ISO 355" |
| 113 | |
| 114 | [[presets]] |
| 115 | id = "30307" |
| 116 | title = "30307 (35 × 80 × 22.75)" |
| 117 | params = { designation = "30307" } |
| 118 | aliases = ["30307 bearing", "tapered roller bearing 30307", "4T-30307"] |
| 119 | standard = "ISO 355" |
| 120 | |
| 121 | [[presets]] |
| 122 | id = "30308" |
| 123 | title = "30308 (40 × 90 × 25.25)" |
| 124 | params = { designation = "30308" } |
| 125 | aliases = ["30308 bearing", "tapered roller bearing 30308", "4T-30308"] |
| 126 | standard = "ISO 355" |
| 127 | |
| 128 | [[presets]] |
| 129 | id = "30309" |
| 130 | title = "30309 (45 × 100 × 27.25)" |
| 131 | params = { designation = "30309" } |
| 132 | aliases = ["30309 bearing", "tapered roller bearing 30309", "4T-30309"] |
| 133 | standard = "ISO 355" |
| 134 | |
| 135 | [[presets]] |
| 136 | id = "30310" |
| 137 | title = "30310 (50 × 110 × 29.25)" |
| 138 | params = { designation = "30310" } |
| 139 | aliases = ["30310 bearing", "tapered roller bearing 30310", "4T-30310"] |
| 140 | standard = "ISO 355" |
| 141 | |
| 142 | [[presets]] |
| 143 | id = "30204-simple" |
| 144 | title = "30204, simple (one solid)" |
| 145 | params = { designation = "30204", detail = "simple" } |
| 146 | aliases = ["30204 simple"] |
| 147 | standard = "ISO 355" |
| 148 |
Tapered roller bearing, 302 and 303 series, bore up to 50 mm. Bore d, outside diameter D, overall width T, cone width B, cup width C and chamfers r (cone back) and r1 (cup back) are sourced and make the fit. detail = "full": the cone with its back rib, the cup and the tapered rollers at an angle between them. The 14 degree angle, roller size, rib and roller count are proportions for looks, not for design, and never change the fit dimensions; the cage is not drawn. detail = "simple": one solid ring d x D x T. Axis along Z, centred on the origin; cone back face at z = -T/2, cup back face at z = +T/2.
For the fit: the sourced dimensions below. For looks only, not for design: every other proportion named above.
NTN, Ball and Roller Bearings, CAT. No. 2203-3/E (2024), https://www.ntnglobal.com/en/products/catalog/pdf/2203E.pdf, PDF pages 165 to 167.
| Number | d | D | T | B | C |
|---|---|---|---|---|---|
| 30203 | 17 | 40 | 13.25 | 12 | 11 |
| 30204 | 20 | 47 | 15.25 | 14 | 12 |
| 30205 | 25 | 52 | 16.25 | 15 | 13 |
| 30206 | 30 | 62 | 17.25 | 16 | 14 |
| 30207 | 35 | 72 | 18.25 | 17 | 15 |
| 30208 | 40 | 80 | 19.75 | 18 | 16 |
| 30209 | 45 | 85 | 20.75 | 19 | 16 |
| 30210 | 50 | 90 | 21.75 | 20 | 17 |
| 30302 | 15 | 42 | 14.25 | 13 | 11 |
| 30303 | 17 | 47 | 15.25 | 14 | 12 |
| 30304 | 20 | 52 | 16.25 | 16 | 13 |
| 30305 | 25 | 62 | 18.25 | 17 | 15 |
| 30306 | 30 | 72 | 20.75 | 19 | 16 |
| 30307 | 35 | 80 | 22.75 | 21 | 18 |
| 30308 | 40 | 90 | 25.25 | 23 | 20 |
| 30309 | 45 | 100 | 27.25 | 25 | 22 |
| 30310 | 50 | 110 | 29.25 | 27 | 23 |
Maker names identify the source; this part isn't made by or affiliated with any maker.
Chamfers r and r1 are in part.py (BEARINGS), from the same tables. No tolerance class is stated yet.
| 1 | # Tapered roller bearing |
| 2 | |
| 3 | ## Geometry |
| 4 | |
| 5 | Tapered roller bearing, 302 and 303 series, bore up to 50 mm. Bore d, outside diameter D, overall width T, cone width B, cup width C and chamfers r (cone back) and r1 (cup back) are sourced and make the fit. detail = "full": the cone with its back rib, the cup and the tapered rollers at an angle between them. The 14 degree angle, roller size, rib and roller count are proportions for looks, not for design, and never change the fit dimensions; the cage is not drawn. detail = "simple": one solid ring d x D x T. Axis along Z, centred on the origin; cone back face at z = -T/2, cup back face at z = +T/2. |
| 6 | |
| 7 | **For the fit:** the sourced dimensions below. **For looks only, not for design:** every other proportion named above. |
| 8 | |
| 9 | ## Source |
| 10 | |
| 11 | NTN, *Ball and Roller Bearings*, CAT. No. 2203-3/E (2024), <https://www.ntnglobal.com/en/products/catalog/pdf/2203E.pdf>, PDF pages 165 to 167. |
| 12 | |
| 13 | | Number | d | D | T | B | C | |
| 14 | |---|---|---|---|---|---| |
| 15 | | 30203 | 17 | 40 | 13.25 | 12 | 11 | |
| 16 | | 30204 | 20 | 47 | 15.25 | 14 | 12 | |
| 17 | | 30205 | 25 | 52 | 16.25 | 15 | 13 | |
| 18 | | 30206 | 30 | 62 | 17.25 | 16 | 14 | |
| 19 | | 30207 | 35 | 72 | 18.25 | 17 | 15 | |
| 20 | | 30208 | 40 | 80 | 19.75 | 18 | 16 | |
| 21 | | 30209 | 45 | 85 | 20.75 | 19 | 16 | |
| 22 | | 30210 | 50 | 90 | 21.75 | 20 | 17 | |
| 23 | | 30302 | 15 | 42 | 14.25 | 13 | 11 | |
| 24 | | 30303 | 17 | 47 | 15.25 | 14 | 12 | |
| 25 | | 30304 | 20 | 52 | 16.25 | 16 | 13 | |
| 26 | | 30305 | 25 | 62 | 18.25 | 17 | 15 | |
| 27 | | 30306 | 30 | 72 | 20.75 | 19 | 16 | |
| 28 | | 30307 | 35 | 80 | 22.75 | 21 | 18 | |
| 29 | | 30308 | 40 | 90 | 25.25 | 23 | 20 | |
| 30 | | 30309 | 45 | 100 | 27.25 | 25 | 22 | |
| 31 | | 30310 | 50 | 110 | 29.25 | 27 | 23 | |
| 32 | |
| 33 | Maker names identify the source; this part isn't made by or affiliated with any maker. |
| 34 | |
| 35 | Chamfers r and r1 are in `part.py` (`BEARINGS`), from the same tables. No tolerance class is stated yet. |
| 36 |
Tapered roller bearing, 302 and 303 series, bore up to 50 mm. Bore d, outside diameter D, overall width T, cone width B, cup width C and chamfers r (cone back) and r1 (cup back) are sourced and make the fit. detail = "full": the cone with its back rib, the cup and the tapered rollers at an angle between them. The 14 degree angle, roller size, rib and roller count are proportions for looks, not for design, and never change the fit dimensions; the cage is not drawn. detail = "simple": one solid ring d x D x T. Axis along Z, centred on the origin; cone back face at z = -T/2, cup back face at z = +T/2. Dimensions from a maker's public catalogue (see the README); not affiliated with any maker.
Tapered roller bearing, 302 and 303 series, bore up to 50 mm. Bore d, outside diameter D, overall width T, cone width B, cup width C and chamfers r (cone back) and r1 (cup back) are sourced and make the fit. detail = "full": the cone with its back rib, the cup and the tapered rollers at an angle between them. The 14 degree angle, roller size, rib and roller count are proportions for looks, not for design, and never change the fit dimensions; the cage is not drawn. detail = "simple": one solid ring d x D x T. Axis along Z, centred on the origin; cone back face at z = -T/2, cup back face at z = +T/2.
For the fit: the sourced dimensions below. For looks only, not for design: every other proportion named above.
NTN, Ball and Roller Bearings, CAT. No. 2203-3/E (2024), https://www.ntnglobal.com/en/products/catalog/pdf/2203E.pdf, PDF pages 165 to 167.
| Number | d | D | T | B | C |
|---|---|---|---|---|---|
| 30203 | 17 | 40 | 13.25 | 12 | 11 |
| 30204 | 20 | 47 | 15.25 | 14 | 12 |
| 30205 | 25 | 52 | 16.25 | 15 | 13 |
| 30206 | 30 | 62 | 17.25 | 16 | 14 |
| 30207 | 35 | 72 | 18.25 | 17 | 15 |
| 30208 | 40 | 80 | 19.75 | 18 | 16 |
| 30209 | 45 | 85 | 20.75 | 19 | 16 |
| 30210 | 50 | 90 | 21.75 | 20 | 17 |
| 30302 | 15 | 42 | 14.25 | 13 | 11 |
| 30303 | 17 | 47 | 15.25 | 14 | 12 |
| 30304 | 20 | 52 | 16.25 | 16 | 13 |
| 30305 | 25 | 62 | 18.25 | 17 | 15 |
| 30306 | 30 | 72 | 20.75 | 19 | 16 |
| 30307 | 35 | 80 | 22.75 | 21 | 18 |
| 30308 | 40 | 90 | 25.25 | 23 | 20 |
| 30309 | 45 | 100 | 27.25 | 25 | 22 |
| 30310 | 50 | 110 | 29.25 | 27 | 23 |
Maker names identify the source; this part isn't made by or affiliated with any maker.
Chamfers r and r1 are in part.py (BEARINGS), from the same tables. No tolerance class is stated yet.
Looks like a bearing: rings and rolling elements. detail = simple keeps one solid ring.
Cylindrical roller bearing, NU2 and NU3 series, bore 10 to 50 mm,.
Deep groove ball bearing, metric: 6xx, MR, 60, 62, 63, 68 and 69 series, open, ZZ or 2RS, optional flange.
Angular contact ball bearing, 72 and 73 series, bore 10 to 50 mm,.
Single-direction thrust ball bearing, 511, 512 and 513 series, bore 10 to 50 mm,.