Skip to content

Commit 97fae58

Browse files
authored
Merge pull request #17 from glenchung/master
linear bearing model and a minor fix of stepper
2 parents 6a97ef7 + ddc01bc commit 97fae58

File tree

2 files changed

+102
-4
lines changed

2 files changed

+102
-4
lines changed

linear_bearing.scad

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
//By Glen Chung, 2013.
2+
//Dual licenced under Creative Commons Attribution-Share Alike 3.0 and LGPL2 or later
3+
4+
include <MCAD/units.scad>
5+
include <MCAD/materials.scad>
6+
7+
LINEAR_BEARING_dr = 0; //Inscribed circle
8+
LINEAR_BEARING_D = 1; //Outer diameter
9+
LINEAR_BEARING_L = 2; //Length
10+
LINEAR_BEARING_B = 3; //Outer locking groove B
11+
LINEAR_BEARING_D1 = 4; //Outer locking groove D1
12+
LINEAR_BEARING_W = 5; //W
13+
14+
15+
// Common bearing names
16+
LinearBearing = "LM8UU";
17+
18+
// Linear Bearing dimensions
19+
// model == "XXXXX" ? [ dr, D, L, B, D1, W]:
20+
function linearBearingDimensions(model) =
21+
model == "LM3UU" ? [ 3*mm, 7*mm, 10*mm, 0.0*mm, 0.0*mm, 0.00*mm]:
22+
model == "LM4UU" ? [ 4*mm, 8*mm, 12*mm, 0.0*mm, 0.0*mm, 0.00*mm]:
23+
model == "LM5UU" ? [ 5*mm, 10*mm, 15*mm, 10.2*mm, 9.6*mm, 1.10*mm]:
24+
model == "LM6UU" ? [ 6*mm, 12*mm, 19*mm, 13.5*mm, 11.5*mm, 1.10*mm]:
25+
model == "LM8SUU" ? [ 8*mm, 15*mm, 17*mm, 11.5*mm, 14.3*mm, 1.10*mm]:
26+
model == "LM10UU" ? [ 10*mm, 19*mm, 29*mm, 22.0*mm, 18.0*mm, 1.30*mm]:
27+
model == "LM12UU" ? [ 12*mm, 21*mm, 30*mm, 23.0*mm, 20.0*mm, 1.30*mm]:
28+
model == "LM13UU" ? [ 13*mm, 23*mm, 32*mm, 23.0*mm, 22.0*mm, 1.30*mm]:
29+
model == "LM16UU" ? [ 16*mm, 28*mm, 37*mm, 26.5*mm, 27.0*mm, 1.60*mm]:
30+
model == "LM20UU" ? [ 20*mm, 32*mm, 42*mm, 30.5*mm, 30.5*mm, 1.60*mm]:
31+
model == "LM25UU" ? [ 25*mm, 40*mm, 59*mm, 41.0*mm, 38.0*mm, 1.85*mm]:
32+
model == "LM30UU" ? [ 30*mm, 45*mm, 64*mm, 44.5*mm, 43.0*mm, 1.85*mm]:
33+
model == "LM35UU" ? [ 35*mm, 52*mm, 70*mm, 49.5*mm, 49.0*mm, 2.10*mm]:
34+
model == "LM40UU" ? [ 40*mm, 60*mm, 80*mm, 60.5*mm, 57.0*mm, 2.10*mm]:
35+
model == "LM50UU" ? [ 50*mm, 80*mm, 100*mm, 74.0*mm, 76.5*mm, 2.60*mm]:
36+
model == "LM60UU" ? [ 60*mm, 90*mm, 110*mm, 85.0*mm, 86.5*mm, 3.15*mm]:
37+
model == "LM80UU" ? [ 80*mm, 120*mm, 140*mm, 105.5*mm, 116.0*mm, 4.15*mm]:
38+
model == "LM100UU" ? [100*mm, 150*mm, 150*mm, 125.5*mm, 145.0*mm, 4.15*mm]:
39+
/*model == "LM8UU" ?*/ [ 8*mm, 15*mm, 24*mm, 17.5*mm, 14.3*mm, 1.10*mm];
40+
41+
42+
function linearBearing_dr(model) = linearBearingDimensions(model)[LINEAR_BEARING_dr];
43+
function linearBearing_D(model) = linearBearingDimensions(model)[LINEAR_BEARING_D];
44+
function linearBearing_L(model) = linearBearingDimensions(model)[LINEAR_BEARING_L];
45+
function linearBearing_B(model) = linearBearingDimensions(model)[LINEAR_BEARING_B];
46+
function linearBearing_D1(model) = linearBearingDimensions(model)[LINEAR_BEARING_D1];
47+
function linearBearing_W(model) = linearBearingDimensions(model)[LINEAR_BEARING_W];
48+
49+
module linearBearing(pos=[0,0,0], angle=[0,0,0], model=LinearBearing,
50+
material=Steel, sideMaterial=BlackPaint) {
51+
dr = linearBearing_dr(model);
52+
D = linearBearing_D(model);
53+
L = linearBearing_L(model);
54+
B = linearBearing_B(model);
55+
D1 = linearBearing_D1(model);
56+
W = linearBearing_W(model);
57+
58+
innerRim = dr + (D - dr) * 0.2;
59+
outerRim = D - (D - dr) * 0.2;
60+
midSink = W/4;
61+
62+
translate(pos) rotate(angle) union() {
63+
color(material)
64+
difference() {
65+
// Basic ring
66+
Ring([0,0,0], D, dr, L, material, material);
67+
68+
if(W) {
69+
// Side shields
70+
Ring([0,0,-epsilon], outerRim, innerRim, L*epsilon+midSink, sideMaterial, material);
71+
Ring([0,0,L-midSink-epsilon], outerRim, innerRim, L*epsilon+midSink, sideMaterial, material);
72+
//Outer locking groove
73+
Ring([0,0,(L-B)/2], D+epsilon, outerRim+W/2, W, material, material);
74+
Ring([0,0,L-(L-B)/2], D+epsilon, outerRim+W/2, W, material, material);
75+
}
76+
}
77+
if(W)
78+
Ring([0,0,midSink], D-L*epsilon, dr+L*epsilon, L-midSink*2, sideMaterial, sideMaterial);
79+
}
80+
81+
module Ring(pos, od, id, h, material, holeMaterial) {
82+
color(material) {
83+
translate(pos)
84+
difference() {
85+
cylinder(r=od/2, h=h, $fn = 100);
86+
color(holeMaterial)
87+
translate([0,0,-10*epsilon])
88+
cylinder(r=id/2, h=h+20*epsilon, $fn = 100);
89+
}
90+
}
91+
}
92+
93+
}
94+
95+
96+
//examples
97+
//linearBearing(model="LM8UU");
98+
//linearBearing(model="LM10UU");

stepper.scad

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -259,10 +259,10 @@ module motor(model=Nema23, size=NemaMedium, dualAxis=false, pos=[0,0,0], orienta
259259

260260
// Bolt holes
261261
color(stepperAluminum, $fs=holeRadius/8) {
262-
translate([mid+holeDist,mid+holeDist,-1*mm]) cylinder(h=holeDepth+1*mm, r=holeRadius);
263-
translate([mid-holeDist,mid+holeDist,-1*mm]) cylinder(h=holeDepth+1*mm, r=holeRadius);
264-
translate([mid+holeDist,mid-holeDist,-1*mm]) cylinder(h=holeDepth+1*mm, r=holeRadius);
265-
translate([mid-holeDist,mid-holeDist,-1*mm]) cylinder(h=holeDepth+1*mm, r=holeRadius);
262+
translate([mid+holeDist,mid+holeDist]) cylinder(h=holeDepth+1*mm, r=holeRadius);
263+
translate([mid-holeDist,mid+holeDist]) cylinder(h=holeDepth+1*mm, r=holeRadius);
264+
translate([mid+holeDist,mid-holeDist]) cylinder(h=holeDepth+1*mm, r=holeRadius);
265+
translate([mid-holeDist,mid-holeDist]) cylinder(h=holeDepth+1*mm, r=holeRadius);
266266

267267
}
268268

0 commit comments

Comments
 (0)