steve/oldham-coupling
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.
Not affiliated with or endorsed by MISUMI.
| 1 | """Rigid shaft coupling, split clamping type: two halves held by four screws. Axis along Z, an end face on the XY plane, bore d1 in the lower half of the length, bore d2 |
| 2 | in the upper. The split is in the YZ plane. Fit dimensions from MISUMI's table; see the README.""" |
| 3 | import cadquery as cq |
| 4 | from steve import Model |
| 5 | |
| 6 | size = 20 # mm Outside diameter D |
| 7 | d1 = 6 # mm Bore 1 (d1 <= d2) |
| 8 | d2 = 8 # mm Bore 2 |
| 9 | detail = "full" # full: two halves with screw holes; simple: one plain cylinder with the bores |
| 10 | |
| 11 | # D: (L, screw from the end F, screw offset A, clamp screw M, bores offered). |
| 12 | # MISUMI Couplings catalogue, Rigid Couplings, Split, CPSR table, https://de.misumi-ec.com/files/images/products/docs/flexibleshaftcouplings.pdf, PDF p. 22. |
| 13 | SIZES = {16: (16, 3.75, 5, 2.5, (5, 6)), 20: (20, 4.75, 6.5, 2.5, (6, 8)), 25: (25, 6, 9, 3, (8, 10)), 32: (32, 7.75, 11, 4, (10, 12, 14))} |
| 14 | |
| 15 | L, F, A, screw, bores = SIZES[size] |
| 16 | if d1 not in bores or d2 not in bores or d1 > d2: |
| 17 | raise ValueError(f"The {size} mm rigid coupling offers bores {bores}, with d1 <= d2.") |
| 18 | R = size / 2 |
| 19 | GAP = 0.02 * size # the split's width, for looks |
| 20 | |
| 21 | body = cq.Workplane("XY").circle(R).extrude(L) |
| 22 | body = body.cut(cq.Workplane("XY").workplane(offset=-1).circle(d1 / 2).extrude(L / 2 + 1)) |
| 23 | body = body.cut(cq.Workplane("XY").workplane(offset=L / 2).circle(d2 / 2).extrude(L / 2 + 1)) |
| 24 | model = Model() |
| 25 | if detail == "simple": |
| 26 | model.add("body", body, name="Rigid coupling") |
| 27 | model.material("aluminum-generic", color="#c9ccd1") |
| 28 | else: |
| 29 | for z in (F, L - F): |
| 30 | for y in (-A, A): |
| 31 | body = body.cut(cq.Workplane("YZ").center(y, z).circle(screw / 2).extrude(R + 1, both=True)) |
| 32 | left = body.cut(cq.Workplane("XY").workplane(offset=-1).center(R, 0).rect(2 * R + GAP, 2 * R + 2).extrude(L + 2)) |
| 33 | right = body.cut(cq.Workplane("XY").workplane(offset=-1).center(-R, 0).rect(2 * R + GAP, 2 * R + 2).extrude(L + 2)) |
| 34 | model.add("half_1", left, op="new", body="half_1_body", name="Half") |
| 35 | model.add("half_2", right, op="new", body="half_2_body", name="Half") |
| 36 | model.material("aluminum-generic", bodies=["half_1_body", "half_2_body"], color="#c9ccd1") |
| 37 | result = model.result() |
| 38 |
| 1 | name = "steve/rigid-coupling" |
| 2 | version = "1.0.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Rigid shaft coupling, split clamping type: 16 to 32 mm outside diameter, bores 5 to 14 mm." |
| 6 | description = """Rigid shaft coupling, split clamping type, as two halves with screw holes. Sizes and bores from MISUMI's CPSR table. See the README.""" |
| 7 | tags = ["coupling", "shaft-coupling", "rigid-coupling", "clamp", "power-transmission", "metric"] |
| 8 | |
| 9 | [parameters.size] |
| 10 | type = "choice" |
| 11 | default = 20 |
| 12 | choices = [16, 20, 25, 32] |
| 13 | unit = "mm" |
| 14 | label = "Outside diameter" |
| 15 | |
| 16 | [parameters.d1] |
| 17 | type = "choice" |
| 18 | default = 6 |
| 19 | choices = [5, 6, 8, 10, 12, 14] |
| 20 | unit = "mm" |
| 21 | label = "Bore 1" |
| 22 | |
| 23 | [parameters.d2] |
| 24 | type = "choice" |
| 25 | default = 8 |
| 26 | choices = [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: two halves with screw holes. simple: one plain cylinder with the bores." |
| 37 | |
| 38 | [[presets]] |
| 39 | id = "CPSR16-5-5" |
| 40 | title = "Rigid coupling D16, 5 to 5 mm" |
| 41 | params = { size = 16, d1 = 5, d2 = 5 } |
| 42 | aliases = ["5x5 rigid coupling", "5 to 5 rigid coupling", "5mm to 5mm rigid coupling", "5-5 rigid coupling", "CPSR16", "D16 rigid coupling", "5x5 clamp coupling", "5x5 shaft coupler", "coupling kind=rigid_clamp_coupling; bore1=5 mm; bore2=5 mm; set screw/clamp envelope", "Rigid coupling D16, 5 to 5 mm"] |
| 43 | standard = "MISUMI" |
| 44 | |
| 45 | [[presets]] |
| 46 | id = "CPSR16-5-6" |
| 47 | title = "Rigid coupling D16, 5 to 6 mm" |
| 48 | params = { size = 16, d1 = 5, d2 = 6 } |
| 49 | aliases = ["5x6 rigid coupling", "5 to 6 rigid coupling", "5mm to 6mm rigid coupling", "5-6 rigid coupling", "CPSR16", "D16 rigid coupling", "5x6 clamp coupling", "5x6 shaft coupler", "coupling kind=rigid_clamp_coupling; bore1=5 mm; bore2=6 mm; set screw/clamp envelope", "Rigid coupling D16, 5 to 6 mm"] |
| 50 | standard = "MISUMI" |
| 51 | |
| 52 | [[presets]] |
| 53 | id = "CPSR16-6-6" |
| 54 | title = "Rigid coupling D16, 6 to 6 mm" |
| 55 | params = { size = 16, d1 = 6, d2 = 6 } |
| 56 | aliases = ["6x6 rigid coupling", "6 to 6 rigid coupling", "6mm to 6mm rigid coupling", "6-6 rigid coupling", "CPSR16", "D16 rigid coupling", "6x6 clamp coupling", "6x6 shaft coupler", "coupling kind=rigid_clamp_coupling; bore1=6 mm; bore2=6 mm; set screw/clamp envelope", "Rigid coupling D16, 6 to 6 mm"] |
| 57 | standard = "MISUMI" |
| 58 | |
| 59 | [[presets]] |
| 60 | id = "CPSR20-6-8" |
| 61 | title = "Rigid coupling D20, 6 to 8 mm" |
| 62 | params = { size = 20, d1 = 6, d2 = 8 } |
| 63 | aliases = ["6x8 rigid coupling", "6 to 8 rigid coupling", "6mm to 8mm rigid coupling", "6-8 rigid coupling", "CPSR20", "D20 rigid coupling", "6x8 clamp coupling", "6x8 shaft coupler", "coupling kind=rigid_clamp_coupling; bore1=6 mm; bore2=8 mm; set screw/clamp envelope", "Rigid coupling D20, 6 to 8 mm"] |
| 64 | standard = "MISUMI" |
| 65 | |
| 66 | [[presets]] |
| 67 | id = "CPSR20-8-8" |
| 68 | title = "Rigid coupling D20, 8 to 8 mm" |
| 69 | params = { size = 20, d1 = 8, d2 = 8 } |
| 70 | aliases = ["8x8 rigid coupling", "8 to 8 rigid coupling", "8mm to 8mm rigid coupling", "8-8 rigid coupling", "CPSR20", "D20 rigid coupling", "8x8 clamp coupling", "8x8 shaft coupler", "coupling kind=rigid_clamp_coupling; bore1=8 mm; bore2=8 mm; set screw/clamp envelope", "Rigid coupling D20, 8 to 8 mm"] |
| 71 | standard = "MISUMI" |
| 72 | |
| 73 | [[presets]] |
| 74 | id = "CPSR25-8-10" |
| 75 | title = "Rigid coupling D25, 8 to 10 mm" |
| 76 | params = { size = 25, d1 = 8, d2 = 10 } |
| 77 | aliases = ["8x10 rigid coupling", "8 to 10 rigid coupling", "8mm to 10mm rigid coupling", "8-10 rigid coupling", "CPSR25", "D25 rigid coupling", "8x10 clamp coupling", "8x10 shaft coupler", "coupling kind=rigid_clamp_coupling; bore1=8 mm; bore2=10 mm; set screw/clamp envelope", "Rigid coupling D25, 8 to 10 mm"] |
| 78 | standard = "MISUMI" |
| 79 | |
| 80 | [[presets]] |
| 81 | id = "CPSR25-10-10" |
| 82 | title = "Rigid coupling D25, 10 to 10 mm" |
| 83 | params = { size = 25, d1 = 10, d2 = 10 } |
| 84 | aliases = ["10x10 rigid coupling", "10 to 10 rigid coupling", "10mm to 10mm rigid coupling", "10-10 rigid coupling", "CPSR25", "D25 rigid coupling", "10x10 clamp coupling", "10x10 shaft coupler", "coupling kind=rigid_clamp_coupling; bore1=10 mm; bore2=10 mm; set screw/clamp envelope", "Rigid coupling D25, 10 to 10 mm"] |
| 85 | standard = "MISUMI" |
| 86 | |
| 87 | [[presets]] |
| 88 | id = "CPSR20-6-8-simple" |
| 89 | title = "Rigid coupling D20, 6 to 8 mm, simple" |
| 90 | params = { size = 20, d1 = 6, d2 = 8, detail = "simple" } |
| 91 | aliases = ["CPSR20-6-8 simple"] |
| 92 | standard = "MISUMI" |
| 93 |
A split clamping rigid shaft coupling: two halves held by four screws. Axis along Z, an end face on the XY plane, bore d1 in the lower half of the length and d2 in the upper.
MISUMI Couplings catalogue, Rigid Couplings, Split, CPSR table, https://de.misumi-ec.com/files/images/products/docs/flexibleshaftcouplings.pdf, PDF page 22: outside diameter D, length L, screw positions F and A, screw M, and the bores offered on each size.
Only bore pairs one size offers are presets. The table has no 3 or 4 mm bore on this type.
Proportions, for looks only: the split's width. The screws aren't modelled, only their holes at nominal M.
| 1 | # Rigid coupling |
| 2 | |
| 3 | A split clamping rigid shaft coupling: two halves held by four screws. Axis along Z, an end face on the XY plane, bore d1 in the lower half of the length and d2 in the upper. |
| 4 | |
| 5 | ## Source |
| 6 | |
| 7 | MISUMI Couplings catalogue, *Rigid Couplings, Split*, CPSR table, <https://de.misumi-ec.com/files/images/products/docs/flexibleshaftcouplings.pdf>, PDF page 22: outside diameter D, length L, screw positions F and A, screw M, and the bores offered on each size. |
| 8 | |
| 9 | Only bore pairs one size offers are presets. The table has no 3 or 4 mm bore on this type. |
| 10 | |
| 11 | **Proportions, for looks only:** the split's width. The screws aren't modelled, only their holes at nominal M. |
| 12 |
Rigid shaft coupling, split clamping type, as two halves with screw holes. Sizes and bores from MISUMI's CPSR table. See the README.
A split clamping rigid shaft coupling: two halves held by four screws. Axis along Z, an end face on the XY plane, bore d1 in the lower half of the length and d2 in the upper.
MISUMI Couplings catalogue, Rigid Couplings, Split, CPSR table, https://de.misumi-ec.com/files/images/products/docs/flexibleshaftcouplings.pdf, PDF page 22: outside diameter D, length L, screw positions F and A, screw M, and the bores offered on each size.
Only bore pairs one size offers are presets. The table has no 3 or 4 mm bore on this type.
Proportions, for looks only: the split's width. The screws aren't modelled, only their holes at nominal M.
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.
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.