forked from nophead/Mendel90
/
bed.scad
89 lines (73 loc) · 2.84 KB
/
bed.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//
// Mendel90
//
// GNU GPL v2
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// Bed with glass and support pillars
//
include <conf/config.scad>
include <positions.scad>
module bed_assembly(y = 0) {
//
// Screws pillars and washers
//
for(x = [-bed_holes_x / 2, bed_holes_x /2]) {
translate([x, bed_holes_y / 2, 0])
washer(M3_washer);
translate([x, -bed_holes_y / 2 - washer_diameter(M3_washer) / 2 - 3 / 2, 0])
washer(M3_washer);
for(y = [-bed_holes_y / 2, bed_holes_y /2])
translate([x, y, washer_thickness(M3_washer)]) {
hex_pillar(bed_pillars);
translate([0,0, pillar_height(bed_pillars) + pcb_thickness])
screw(M3_cap_screw, 10);
}
}
//
// Mark the origin
//
translate([0, 0, pillar_height(bed_pillars) + pcb_thickness + sheet_thickness(bed_glass)])
color("green")
render()
sphere();
//
// PCB, glass and clips
//
translate([0, 0, washer_thickness(M3_washer)]) {
vitamin(str("BED", bed_width, bed_depth,": PCB bed ", bed_width, "mm x ", bed_depth, "mm"));
translate([0,0, pillar_height(bed_pillars) + pcb_thickness / 2])
color(bed_color) cube([bed_width, bed_depth, pcb_thickness], center = true);
translate([0,0, pillar_height(bed_pillars) + pcb_thickness + sheet_thickness(bed_glass) / 2 + eta * 3])
sheet(bed_glass, bed_width, bed_depth - 12);
for(x = [-1, 1])
for(y = [-1,1])
translate([bed_width / 2 * x,
((bed_depth - bulldog_length(small_bulldog)) / 2 - washer_diameter(M3_washer)) * y,
pillar_height(bed_pillars) + (pcb_thickness + sheet_thickness(bed_glass))/ 2])
rotate([0, 0, 90 + x * 90])
bulldog(small_bulldog, pcb_thickness + sheet_thickness(bed_glass));
}
translate([0, 40, pillar_height(bed_pillars) - 1])
rotate([-90, 0, 0])
sleeved_resistor(EpcosBlue, PTFE07, heatshrink = HSHRNK16);
for(i = [-1, 1]) {
translate([i * 10, bed_depth / 2 - y + 17.5, -(Y_carriage_height + sheet_thickness(Y_carriage) / 2) + 3.4])
rotate([90, 0, 0])
tubing(HSHRNK64, 30);
translate([i * 3, bed_depth / 2 - y + 10, -(Y_carriage_height + sheet_thickness(Y_carriage) / 2) + 1.4])
rotate([90, 0, 0])
tubing(HSHRNK24);
}
wire("Red", 32, 600 + 20);
wire("Black", 32, 615 + 20);
ribbon_cable(bed_ways,
10 + // strip
70 + // loop under bed
5 + // loop to other side of carriage
cable_strip_length(y_cable_strip_depth, Y_travel)
+ 25 // tail for connection to wire
);
}
bed_assembly();