steve/oldham-coupling
Oldham shaft coupling, clamping type: 15 to 26, bores 4 to 12 mm.
Bellows shaft coupling, clamping type: 12 to 32 mm outside diameter, bores 4 to 14 mm.
Not affiliated with or endorsed by MISUMI.
| 1 | """Bellows shaft coupling, clamping type: two hubs and a bellows. Axis along Z, the first hub's end face on the XY plane, bore d1 in the first hub, bore d2 in the second. |
| 2 | Fit dimensions from MISUMI's table; see the README.""" |
| 3 | import cadquery as cq |
| 4 | from steve import Model |
| 5 | |
| 6 | size = 16 # mm Outside diameter D |
| 7 | d1 = 5 # mm Bore 1 (d1 <= d2) |
| 8 | d2 = 6 # mm Bore 2 |
| 9 | detail = "full" # full: hubs, bellows, slits and clamp screw holes; simple: one solid with the bores |
| 10 | |
| 11 | # D: (L, hub length l, screw from the end F, screw offset G, clamp screw M, bores offered). |
| 12 | # MISUMI Couplings catalogue, Bellows Couplings, Clamping, CPBC table, https://de.misumi-ec.com/files/images/products/docs/flexibleshaftcouplings.pdf, PDF p. 24. |
| 13 | SIZES = {12: (23.5, 7.5, 2.3, 4, 2, (4, 5)), 16: (26.5, 9, 3, 5, 2.5, (5, 6)), 20: (33, 10, 3.5, 6.5, 2.5, (6, 8)), 25: (36.5, 12, 4.5, 9, 3, (8, 10)), 32: (42, 13.5, 5, 11, 4, (8, 10, 12, 14))} |
| 14 | L, hub, F, G, screw, bores = SIZES[size] |
| 15 | if d1 not in bores or d2 not in bores or d1 > d2: |
| 16 | raise ValueError(f"The {size} mm bellows coupling offers bores {bores}, with d1 <= d2.") |
| 17 | R = size / 2 |
| 18 | SLIT = 0.05 * size # the slit's width and the bellows' folds are proportions, for looks; the table doesn't dimension them |
| 19 | FOLDS = 8 |
| 20 | |
| 21 | |
| 22 | def half(z0, bore, slit_z0): |
| 23 | shape = cq.Workplane("XY").workplane(offset=z0).circle(R).extrude(hub) |
| 24 | shape = shape.cut(cq.Workplane("XY").workplane(offset=z0 - 1).circle(bore / 2).extrude(hub + 2)) |
| 25 | return shape.cut(cq.Workplane("XY").workplane(offset=slit_z0).center(R / 2 + 0.5, 0).rect(R + 1, SLIT).extrude(hub + 1)) |
| 26 | |
| 27 | |
| 28 | model = Model() |
| 29 | if detail == "simple": |
| 30 | body = cq.Workplane("XY").circle(R).extrude(L) |
| 31 | body = body.cut(cq.Workplane("XY").workplane(offset=-1).circle(d1 / 2).extrude(L / 2 + 1)) |
| 32 | body = body.cut(cq.Workplane("XY").workplane(offset=L / 2).circle(d2 / 2).extrude(L / 2 + 1)) |
| 33 | model.add("body", body, name="Bellows coupling") |
| 34 | model.material("aluminum-generic", color="#c9ccd1") |
| 35 | else: |
| 36 | first, second = half(0, d1, -1), half(L - hub, d2, L - hub) |
| 37 | for z in (F, L - F): |
| 38 | cross = cq.Workplane("YZ").center(G, z).circle(screw / 2).extrude(R + 1, both=True) |
| 39 | first, second = first.cut(cross), second.cut(cross) |
| 40 | inner, outer = max(d2 / 2 + 0.3, 0.62 * R), 0.96 * R |
| 41 | step = (L - 2 * hub) / (2 * FOLDS) |
| 42 | points = [(inner * 0.92, hub), (inner, hub)] |
| 43 | for k in range(FOLDS): |
| 44 | points += [(outer, hub + (2 * k + 1) * step), (inner, hub + (2 * k + 2) * step)] |
| 45 | points.append((inner * 0.92, L - hub)) |
| 46 | folds = cq.Workplane("XZ").polyline(points).close().revolve(360, (0, 0, 0), (0, 1, 0)) |
| 47 | model.add("hub_1", first, op="new", body="hub_1_body", name="Hub, d1") |
| 48 | model.add("hub_2", second, op="new", body="hub_2_body", name="Hub, d2") |
| 49 | model.add("bellows", folds, op="new", body="bellows_body", name="Bellows") |
| 50 | model.material("aluminum-generic", bodies=["hub_1_body", "hub_2_body"], color="#c9ccd1") |
| 51 | model.material("bronze", bodies=["bellows_body"], color="#b08d57") |
| 52 | result = model.result() |
| 53 |
| 1 | name = "steve/bellows-coupling" |
| 2 | version = "1.0.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Bellows shaft coupling, clamping type: 12 to 32 mm outside diameter, bores 4 to 14 mm." |
| 6 | description = """Bellows shaft coupling, clamping type, as two hubs and a bellows, with slits and clamp screw holes. Sizes and bores from MISUMI's CPBC table. See the README.""" |
| 7 | tags = ["coupling", "shaft-coupling", "bellows-coupling", "encoder", "power-transmission", "metric"] |
| 8 | |
| 9 | [parameters.size] |
| 10 | type = "choice" |
| 11 | default = 16 |
| 12 | choices = [12, 16, 20, 25, 32] |
| 13 | unit = "mm" |
| 14 | label = "Outside diameter" |
| 15 | |
| 16 | [parameters.d1] |
| 17 | type = "choice" |
| 18 | default = 5 |
| 19 | choices = [4, 5, 6, 8, 10, 12, 14] |
| 20 | unit = "mm" |
| 21 | label = "Bore 1" |
| 22 | |
| 23 | [parameters.d2] |
| 24 | type = "choice" |
| 25 | default = 6 |
| 26 | choices = [4, 5, 6, 8, 10, 12, 14] |
| 27 | unit = "mm" |
| 28 | label = "Bore 2" |
| 29 | description = "d1 <= d2, both offered on the outside diameter chosen." |
| 30 | |
| 31 | [parameters.detail] |
| 32 | type = "choice" |
| 33 | default = "full" |
| 34 | choices = ["full", "simple"] |
| 35 | label = "Detail" |
| 36 | description = "full: hubs, bellows, slits and clamp screw holes. simple: one solid with the bores." |
| 37 | |
| 38 | [[presets]] |
| 39 | id = "CPBC12-4-4" |
| 40 | title = "Bellows coupling D12, 4 to 4 mm" |
| 41 | params = { size = 12, d1 = 4, d2 = 4 } |
| 42 | aliases = ["4x4 bellows coupling", "4 to 4 bellows coupling", "4mm to 4mm bellows coupling", "4-4 bellows coupling", "CPBC12", "D12 bellows coupling", "coupling kind=bellows_coupling; bore1=4 mm; bore2=4 mm; set screw/clamp envelope"] |
| 43 | standard = "MISUMI" |
| 44 | |
| 45 | [[presets]] |
| 46 | id = "CPBC12-4-5" |
| 47 | title = "Bellows coupling D12, 4 to 5 mm" |
| 48 | params = { size = 12, d1 = 4, d2 = 5 } |
| 49 | aliases = ["4x5 bellows coupling", "4 to 5 bellows coupling", "4mm to 5mm bellows coupling", "4-5 bellows coupling", "CPBC12", "D12 bellows coupling", "coupling kind=bellows_coupling; bore1=4 mm; bore2=5 mm; set screw/clamp envelope"] |
| 50 | standard = "MISUMI" |
| 51 | |
| 52 | [[presets]] |
| 53 | id = "CPBC12-5-5" |
| 54 | title = "Bellows coupling D12, 5 to 5 mm" |
| 55 | params = { size = 12, d1 = 5, d2 = 5 } |
| 56 | aliases = ["5x5 bellows coupling", "5 to 5 bellows coupling", "5mm to 5mm bellows coupling", "5-5 bellows coupling", "CPBC12", "D12 bellows coupling", "coupling kind=bellows_coupling; bore1=5 mm; bore2=5 mm; set screw/clamp envelope"] |
| 57 | standard = "MISUMI" |
| 58 | |
| 59 | [[presets]] |
| 60 | id = "CPBC16-5-6" |
| 61 | title = "Bellows coupling D16, 5 to 6 mm" |
| 62 | params = { size = 16, d1 = 5, d2 = 6 } |
| 63 | aliases = ["5x6 bellows coupling", "5 to 6 bellows coupling", "5mm to 6mm bellows coupling", "5-6 bellows coupling", "CPBC16", "D16 bellows coupling", "coupling kind=bellows_coupling; bore1=5 mm; bore2=6 mm; set screw/clamp envelope"] |
| 64 | standard = "MISUMI" |
| 65 | |
| 66 | [[presets]] |
| 67 | id = "CPBC16-6-6" |
| 68 | title = "Bellows coupling D16, 6 to 6 mm" |
| 69 | params = { size = 16, d1 = 6, d2 = 6 } |
| 70 | aliases = ["6x6 bellows coupling", "6 to 6 bellows coupling", "6mm to 6mm bellows coupling", "6-6 bellows coupling", "CPBC16", "D16 bellows coupling", "coupling kind=bellows_coupling; bore1=6 mm; bore2=6 mm; set screw/clamp envelope"] |
| 71 | standard = "MISUMI" |
| 72 | |
| 73 | [[presets]] |
| 74 | id = "CPBC20-6-8" |
| 75 | title = "Bellows coupling D20, 6 to 8 mm" |
| 76 | params = { size = 20, d1 = 6, d2 = 8 } |
| 77 | aliases = ["6x8 bellows coupling", "6 to 8 bellows coupling", "6mm to 8mm bellows coupling", "6-8 bellows coupling", "CPBC20", "D20 bellows coupling", "coupling kind=bellows_coupling; bore1=6 mm; bore2=8 mm; set screw/clamp envelope"] |
| 78 | standard = "MISUMI" |
| 79 | |
| 80 | [[presets]] |
| 81 | id = "CPBC20-8-8" |
| 82 | title = "Bellows coupling D20, 8 to 8 mm" |
| 83 | params = { size = 20, d1 = 8, d2 = 8 } |
| 84 | aliases = ["8x8 bellows coupling", "8 to 8 bellows coupling", "8mm to 8mm bellows coupling", "8-8 bellows coupling", "CPBC20", "D20 bellows coupling", "coupling kind=bellows_coupling; bore1=8 mm; bore2=8 mm; set screw/clamp envelope"] |
| 85 | standard = "MISUMI" |
| 86 | |
| 87 | [[presets]] |
| 88 | id = "CPBC25-8-10" |
| 89 | title = "Bellows coupling D25, 8 to 10 mm" |
| 90 | params = { size = 25, d1 = 8, d2 = 10 } |
| 91 | aliases = ["8x10 bellows coupling", "8 to 10 bellows coupling", "8mm to 10mm bellows coupling", "8-10 bellows coupling", "CPBC25", "D25 bellows coupling", "coupling kind=bellows_coupling; bore1=8 mm; bore2=10 mm; set screw/clamp envelope"] |
| 92 | standard = "MISUMI" |
| 93 | |
| 94 | [[presets]] |
| 95 | id = "CPBC25-10-10" |
| 96 | title = "Bellows coupling D25, 10 to 10 mm" |
| 97 | params = { size = 25, d1 = 10, d2 = 10 } |
| 98 | aliases = ["10x10 bellows coupling", "10 to 10 bellows coupling", "10mm to 10mm bellows coupling", "10-10 bellows coupling", "CPBC25", "D25 bellows coupling", "coupling kind=bellows_coupling; bore1=10 mm; bore2=10 mm; set screw/clamp envelope"] |
| 99 | standard = "MISUMI" |
| 100 | |
| 101 | [[presets]] |
| 102 | id = "CPBC16-5-6-simple" |
| 103 | title = "Bellows coupling D16, 5 to 6 mm, simple" |
| 104 | params = { size = 16, d1 = 5, d2 = 6, detail = "simple" } |
| 105 | aliases = ["CPBC16-5-6 simple"] |
| 106 | standard = "MISUMI" |
| 107 |
A clamping bellows shaft coupling: two hubs and a bellows, three solids. Axis along Z, the first hub's end face on the XY plane, bore d1 in the first hub and bore d2 in the second.
MISUMI Couplings catalogue, Bellows Couplings, Clamping, CPBC table, https://de.misumi-ec.com/files/images/products/docs/flexibleshaftcouplings.pdf, PDF page 24: outside diameter D, length L (33 mm for D20, the aluminium CPBC; the stainless CPBSC is 32), hub length l, screw positions F and G, screw M, and the bores offered on each size. Hubs are aluminium and the bellows phosphor bronze.
Only bore pairs one size offers are presets.
Proportions, for looks only: the bellows' folds, which the table doesn't dimension, and the slit's width. The bellows here is a closed solid, not a thin wall, so don't read stiffness or inertia from this model. The screws aren't modelled, only their holes at nominal M.
| 1 | # Bellows coupling |
| 2 | |
| 3 | A clamping bellows shaft coupling: two hubs and a bellows, three solids. Axis along Z, the first hub's end face on the XY plane, bore d1 in the first hub and bore d2 in the second. |
| 4 | |
| 5 | ## Source |
| 6 | |
| 7 | MISUMI Couplings catalogue, *Bellows Couplings, Clamping*, CPBC table, <https://de.misumi-ec.com/files/images/products/docs/flexibleshaftcouplings.pdf>, PDF page 24: outside diameter D, length L (33 mm for D20, the aluminium CPBC; the stainless CPBSC is 32), hub length l, screw positions F and G, screw M, and the bores offered on each size. Hubs are aluminium and the bellows phosphor bronze. |
| 8 | |
| 9 | Only bore pairs one size offers are presets. |
| 10 | |
| 11 | **Proportions, for looks only:** the bellows' folds, which the table doesn't dimension, and the slit's width. The bellows here is a closed solid, not a thin wall, so don't read stiffness or inertia from this model. The screws aren't modelled, only their holes at nominal M. |
| 12 |
Bellows shaft coupling, clamping type, as two hubs and a bellows, with slits and clamp screw holes. Sizes and bores from MISUMI's CPBC table. See the README.
A clamping bellows shaft coupling: two hubs and a bellows, three solids. Axis along Z, the first hub's end face on the XY plane, bore d1 in the first hub and bore d2 in the second.
MISUMI Couplings catalogue, Bellows Couplings, Clamping, CPBC table, https://de.misumi-ec.com/files/images/products/docs/flexibleshaftcouplings.pdf, PDF page 24: outside diameter D, length L (33 mm for D20, the aluminium CPBC; the stainless CPBSC is 32), hub length l, screw positions F and G, screw M, and the bores offered on each size. Hubs are aluminium and the bellows phosphor bronze.
Only bore pairs one size offers are presets.
Proportions, for looks only: the bellows' folds, which the table doesn't dimension, and the slit's width. The bellows here is a closed solid, not a thin wall, so don't read stiffness or inertia from this model. The screws aren't modelled, only their holes at nominal M.
Oldham shaft coupling, clamping type: 15 to 26, bores 4 to 12 mm.
Rigid shaft coupling, split clamping type: 16 to 32 mm outside diameter, bores 5 to 14 mm.
Jaw shaft coupling, clamping type: 14, 20 and 30 mm outside diameter, bores 3 to 12 mm.
Slit shaft coupling, long clamping: 12 to 32 mm outside diameter, bores 4 to 14 mm.