-
Notifications
You must be signed in to change notification settings - Fork 1
/
corner-top.scad
63 lines (52 loc) · 1.71 KB
/
corner-top.scad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
use <MCAD/fasteners/nuts_and_bolts.scad>
use <MCAD/shapes/2Dshapes.scad>
use <MCAD/shapes/3Dshapes.scad>
use <MCAD/shapes/polyhole.scad>
include <MCAD/units/metric.scad>
use <corner.scad>
use <utils.scad>
include <configuration/delta.scad>
include <configuration/resolution.scad>
module corner_top (corner_top_options)
{
blank = corner_top_get_blank (corner_top_options);
height = corner_get_height (blank);
idler_pos = height / 2;
idler_axle_d = corner_top_get_idler_size (corner_top_options);
cavity_width = corner_get_cavity_width (blank);
wall_thickness = corner_get_wall_thickness (blank);
render ()
difference () {
union () {
corner_blank (blank);
/* support for end of idler axle */
h = 8;
d = idler_axle_d + wall_thickness * 2;
intersection () {
translate ([0, wall_thickness - epsilon, idler_pos])
rotate (-90, X)
filleted_cylinder (
d1 = d + h * 2,
d2 = d,
h = h,
fillet_r = 3,
chamfer_r = 3
);
ccube ([1000, 1000, height], center = X + Y);
}
}
translate ([0, 0, idler_pos])
rotate (-90, X) {
/* screwhole */
translate ([0, 0, 1])
mcad_polyhole (
d = idler_axle_d + 0.3,
h = cavity_width + wall_thickness * 2 + epsilon
);
/* nut hole */
translate ([0, 0, wall_thickness + cavity_width - epsilon])
mcad_nut_hole (size = idler_axle_d);
}
}
}
corner_top (delta_get_top_corner (deltabob));