Sign in with STEVE

steve/linear-bushing

Linear bushing (linear ball bearing) LM / LMF / LMK, shafts 3 to 60 mm: straight, round or square flange.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 119 lines · Python · STEVE runtime · checked
Download
1"""Linear bushing (linear ball bearing) for round shafts, LM series: straight (LM), round flange (LMF) or square
2flange (LMK), metric shaft diameters 3 to 60 mm.
3
4Envelope model for assemblies: the outer sleeve (outside diameter D, length L) around the shaft bore dr; the straight
5type has its two retaining-ring grooves (width L2, groove diameter D0, outer edges L1 apart, centred); flanged types
6have the flange (diameter D1, for LMK cut to a square K across flats; width H) at one end with four mounting holes
7d1 on the PCD, counterbored d2 x h from the flange face. Balls, retainer and seals are not modelled.
8Axis along Z, from z = 0 (flange face) to z = L.
9"""
10import math
11
12from steve import Model
13
14size = "8" # Shaft diameter (size code)
15style = "LM" # Type
16
17# THK General Catalog, Linear Bushing (515-1E), model LM, pages A4-42/43 (https://tech.thk.com/en/products/pdfs/en_a04_042.pdf).
18# size: (inscribed bore dr, outside diameter D, length L, groove span L1, groove width L2, groove diameter D0)
19# (L1, L2, D0 are None where the catalogue gives no grooves.)
20LM = {
21 "3": (3, 7, 10, None, None, None),
22 "4": (4, 8, 12, None, None, None),
23 "5": (5, 10, 15, 10.2, 1.1, 9.6),
24 "6": (6, 12, 19, 13.5, 1.1, 11.5),
25 "8S": (8, 15, 17, 11.5, 1.1, 14.3),
26 "8": (8, 15, 24, 17.5, 1.1, 14.3),
27 "10": (10, 19, 29, 22, 1.3, 18),
28 "12": (12, 21, 30, 23, 1.3, 20),
29 "13": (13, 23, 32, 23, 1.3, 22),
30 "16": (16, 28, 37, 26.5, 1.6, 27),
31 "20": (20, 32, 42, 30.5, 1.6, 30.5),
32 "25": (25, 40, 59, 41, 1.85, 38),
33 "30": (30, 45, 64, 44.5, 1.85, 43),
34 "35": (35, 52, 70, 49.5, 2.1, 49),
35 "40": (40, 60, 80, 60.5, 2.1, 57),
36 "50": (50, 80, 100, 74, 2.6, 76.5),
37 "60": (60, 90, 110, 85, 3.15, 86.5),
38}
39# THK models LMF (A4-52/53) and LMK (A4-60/61): same dr, D, L as LM.
40# size: (flange diameter D1, square K (LMK), flange width H, PCD, hole d1, counterbore d2, counterbore depth h)
41FLANGES = {
42 "6": (28, 22, 5, 20, 3.4, 6.5, 3.3),
43 "8S": (32, 25, 5, 24, 3.4, 6.5, 3.3),
44 "8": (32, 25, 5, 24, 3.4, 6.5, 3.3),
45 "10": (39, 30, 6, 29, 4.5, 8, 4.4),
46 "12": (42, 32, 6, 32, 4.5, 8, 4.4),
47 "13": (43, 34, 6, 33, 4.5, 8, 4.4),
48 "16": (48, 37, 6, 38, 4.5, 8, 4.4),
49 "20": (54, 42, 8, 43, 5.5, 9.2, 5.4),
50 "25": (62, 50, 8, 51, 5.5, 9.2, 5.4),
51 "30": (74, 58, 10, 60, 6.6, 11, 6.5),
52 "35": (82, 64, 10, 67, 6.6, 11, 6.5),
53 "40": (96, 75, 13, 78, 9, 14, 8.6),
54 "50": (116, 92, 13, 98, 9, 14, 8.6),
55 "60": (134, 106, 18, 112, 11, 17.5, 10.8),
56}
57
58if style != "LM" and size not in FLANGES:
59 raise ValueError(f"{style}{size}: not made with a flange; flanged sizes: {', '.join(FLANGES)}.")
60dr, D, L, L1, L2, D0 = LM[size]
61
62model = Model()
63with model.sketch("sleeve_sketch", on="XY", name="Sleeve") as sk:
64 sk.circle("outside", (0, 0), D / 2)
65 sk.circle("bore", (0, 0), dr / 2)
66model.extrude("sleeve", "sleeve_sketch", distance=L, name="Sleeve")
67if style == "LM" and L1 is not None:
68 model.plane("groove_1_plane", on="XY", offset=(L - L1) / 2, name="Groove 1")
69 with model.sketch("groove_1_sketch", on="groove_1_plane", name="Groove 1") as sk:
70 sk.circle("groove_out", (0, 0), D / 2 + 1)
71 sk.circle("groove_in", (0, 0), D0 / 2)
72 model.extrude("groove_1", "groove_1_sketch", distance=L2, op="cut", name="Groove 1")
73 model.plane("groove_2_plane", on="XY", offset=(L + L1) / 2 - L2, name="Groove 2")
74 with model.sketch("groove_2_sketch", on="groove_2_plane", name="Groove 2") as sk:
75 sk.circle("groove_out", (0, 0), D / 2 + 1)
76 sk.circle("groove_in", (0, 0), D0 / 2)
77 model.extrude("groove_2", "groove_2_sketch", distance=L2, op="cut", name="Groove 2")
78if style != "LM":
79 D1, K, H, PCD, d1, d2, h = FLANGES[size]
80 if style == "LMK":
81 # Square flange K across flats with its corners on the circle D1: four flats joined by four arcs.
82 r = D1 / 2
83 c = K / 2
84 s = math.sqrt(r * r - c * c)
85 t = math.degrees(math.atan2(s, c)) # where a flat meets the circle, from the x axis
86 with model.sketch("flange_sketch", on="XY", name="Flange") as sk:
87 sk.line("flat_right", (c, -s), (c, s))
88 sk.arc("corner_1", (0, 0), r, t, 90 - t)
89 sk.line("flat_top", (s, c), (-s, c))
90 sk.arc("corner_2", (0, 0), r, 90 + t, 180 - t)
91 sk.line("flat_left", (-c, s), (-c, -s))
92 sk.arc("corner_3", (0, 0), r, 180 + t, 270 - t)
93 sk.line("flat_bottom", (-s, -c), (s, -c))
94 sk.arc("corner_4", (0, 0), r, 270 + t, 360 - t)
95 sk.circle("flange_in", (0, 0), D / 2)
96 a = PCD / 2 * math.sqrt(0.5) # holes on the diagonals
97 b = a
98 else:
99 with model.sketch("flange_sketch", on="XY", name="Flange") as sk:
100 sk.circle("flange_out", (0, 0), D1 / 2)
101 sk.circle("flange_in", (0, 0), D / 2)
102 a = PCD / 2 # holes on the axes
103 b = 0.0
104 model.extrude("flange", "flange_sketch", distance=H, name="Flange")
105 with model.sketch("holes_sketch", on="XY", name="Mounting holes") as sk:
106 sk.circle("hole_1", (a, b), d1 / 2)
107 sk.circle("hole_2", (-b, a), d1 / 2)
108 sk.circle("hole_3", (-a, -b), d1 / 2)
109 sk.circle("hole_4", (b, -a), d1 / 2)
110 model.extrude("holes", "holes_sketch", distance=H, op="cut", name="Mounting holes")
111 with model.sketch("cbore_sketch", on="XY", name="Counterbores") as sk:
112 sk.circle("cbore_1", (a, b), d2 / 2)
113 sk.circle("cbore_2", (-b, a), d2 / 2)
114 sk.circle("cbore_3", (-a, -b), d2 / 2)
115 sk.circle("cbore_4", (b, -a), d2 / 2)
116 model.extrude("cbores", "cbore_sketch", distance=h, op="cut", name="Counterbores")
117model.material("steel-generic", color="#b9bdc2")
118result = model.result()
119

Linear ball bushing for round shafts in the common LM dimension series: straight (LM...UU), round flange (LMF...UU) or square flange (LMK...UU). Envelope geometry for assemblies: the outer sleeve with its bore, the straight type's retaining-ring grooves, the flange with its counterbored mounting holes; balls, retainer and seals are not modelled. Axis along Z, flange face (or one end) on the XY plane. Dimensions from the manufacturer's catalogue (see the README).

Linear bushing (LM, LMF, LMK)

Linear ball bushing for round shafts in the common LM dimension series, shaft diameters 3 to 60 mm: straight (LM…UU), round flange (LMF…UU) or square flange (LMK…UU).

Geometry

Envelope for assemblies and housing design:

  • outer sleeve, outside diameter D, length L, bore dr (the shaft diameter);
  • straight type (LM): two retaining-ring grooves of width L2 down to diameter D0, their outer edges L1 apart, centred on the length (sizes 3 and 4 have none);
  • flanged types: flange of width H at one end, round with diameter D1 (LMF) or square K across flats with its corners on the D1 circle (LMK); four mounting holes d1 on the PCD (on the axes for LMF, on the diagonals for LMK), counterbored d2 × h from the flange face.

Balls, retainer and seals are not modelled. Axis along Z, from z = 0 (the flange face, or one end) to z = L.

Parameters

Parameter Meaning
size Size code = shaft diameter, mm: 3, 4, 5, 6, 8S (short 8 mm), 8, 10, 12, 13, 16, 20, 25, 30, 35, 40, 50, 60
style LM straight, LMF round flange, LMK square flange (flanged types from size 6)

Source

THK General Catalog — Guide Ball Bushing / Linear Bushing (515-1E): model LM, pages A4-42/A4-43 (https://tech.thk.com/en/products/pdfs/en_a04_042.pdf); model LMF, pages A4-52/A4-53 (https://tech.thk.com/en/products/pdfs/en_a04_052.pdf); model LMK, pages A4-60/A4-61 (https://tech.thk.com/en/products/pdfs/en_a04_060.pdf). Every value below was checked against these pages. Other makers' LM…UU / LMF…UU / LMK…UU bushings share these main dimensions.

Size dr D L L1 L2 D0 D1 K H PCD d1 × d2 × h
3 3 7 10
4 4 8 12
5 5 10 15 10.2 1.1 9.6
6 6 12 19 13.5 1.1 11.5 28 22 5 20 3.4 × 6.5 × 3.3
8S 8 15 17 11.5 1.1 14.3 32 25 5 24 3.4 × 6.5 × 3.3
8 8 15 24 17.5 1.1 14.3 32 25 5 24 3.4 × 6.5 × 3.3
10 10 19 29 22 1.3 18 39 30 6 29 4.5 × 8 × 4.4
12 12 21 30 23 1.3 20 42 32 6 32 4.5 × 8 × 4.4
13 13 23 32 23 1.3 22 43 34 6 33 4.5 × 8 × 4.4
16 16 28 37 26.5 1.6 27 48 37 6 38 4.5 × 8 × 4.4
20 20 32 42 30.5 1.6 30.5 54 42 8 43 5.5 × 9.2 × 5.4
25 25 40 59 41 1.85 38 62 50 8 51 5.5 × 9.2 × 5.4
30 30 45 64 44.5 1.85 43 74 58 10 60 6.6 × 11 × 6.5
35 35 52 70 49.5 2.1 49 82 64 10 67 6.6 × 11 × 6.5
40 40 60 80 60.5 2.1 57 96 75 13 78 9 × 14 × 8.6
50 50 80 100 74 2.6 76.5 116 92 13 98 9 × 14 × 8.6
60 60 90 110 85 3.15 86.5 134 106 18 112 11 × 17.5 × 10.8

Not offered: the long types (LM…L, LMK…L) and pillow-block units, which these catalogue pages don't define.

Preset list: designations of the step.parts catalogue (MIT), see library/NOTICE.md.

  1. 1.0.0 Latest
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.

2 51 sizes 0 1 day ago v2.0.0
STEVEMIT

steve/miniature-linear-guide

HIWIN MGN miniature linear guideway, sizes 7, 9, 12 and 15: rail (MGNR) or block (MGN-C / MGN-H).

0 9 sizes 0 1 day ago v1.0.0
STEVEMIT

steve/hex-head-screw

Hexagon head screw, fully threaded, ISO 4017 / DIN 933, M1.6 to M36, any length, with catalogue sizes as presets.

18 85 sizes 0 1 day ago v2.0.0
STEVEMIT

steve/button-head-screw

Hexagon socket button head screw, ISO 7380-1, M3 to M16, any length, with catalogue sizes as presets.

10 65 sizes 0 1 day ago v2.0.0