-
Notifications
You must be signed in to change notification settings - Fork 0
/
cubo_side_generic.scad
109 lines (86 loc) · 2.83 KB
/
cubo_side_generic.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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// all sides have the same basic structure described here, and they're
// technically interchangeable. this is true for the all except
// the top and the bottom sides, which contain the inserts.
include <BOSL/constants.scad>
use <BOSL/masks.scad>
use <BOSL/shapes.scad>
include <cubo_common.scad>
use <cubo_joints.scad>
use <cubo_label.scad>
include <NopSCADlib/vitamins/pcbs.scad>
use <cubo_pcbs.scad>
module
cubo_side()
{
cube([ side_length, side_length, side_thickness ]);
}
// cubo_side();
module
cubo_side_with_chamfer()
{
rotate([ 180, 0, 0 ])
translate([ -side_length / 2, -side_length / 2, -side_thickness ])
difference()
{
cubo_side();
translate([ side_length / 2, 0, 0 ])
chamfer_mask_x(l = side_length, chamfer = side_thickness);
translate([ side_length / 2, side_length, 0 ])
chamfer_mask_x(l = side_length, chamfer = side_thickness);
translate([ 0, side_length / 2, 0 ])
chamfer_mask_y(l = side_length, chamfer = side_thickness);
translate([ side_length, side_length / 2, 0 ])
chamfer_mask_y(l = side_length, chamfer = side_thickness);
}
}
// cubo_side_with_chamfer();
module
cubo_side_with_label(text = "generic side")
{
union()
{
cubo_side_with_chamfer();
translate(
[ 0, (side_length / 2) - (3 * side_thickness), side_thickness ])
cubo_label(text = text);
}
}
// base side for top and bottom
// cubo_side_with_label();
// finally, add the screw holes
joint_thickness = get_joint_thickness();
screw_x = (side_length / 2) - side_thickness - get_joint_thickness() -
(get_joint_width() / 2);
screw_y = (side_length / 2) - (get_joint_height() / 2) - side_thickness;
screw_z = delta;
module
cubo_screw_set()
{
rotate([ 180, 0, 0 ]) union()
{
// it happens twice for each screw (to remove the
// center of the screw)
translate([ screw_x, screw_y, screw_z ]) screw(default_screw, 10);
translate([ screw_x, screw_y, screw_z + 5 ]) screw(default_screw, 10);
translate([ screw_x, -screw_y, screw_z ]) screw(default_screw, 10);
translate([ screw_x, -screw_y, screw_z + 5 ]) screw(default_screw, 10);
translate([ -screw_x, screw_y, screw_z ]) screw(default_screw, 10);
translate([ -screw_x, screw_y, screw_z + 5 ]) screw(default_screw, 10);
translate([ -screw_x, -screw_y, screw_z ]) screw(default_screw, 10);
translate([ -screw_x, -screw_y, screw_z + 5 ]) screw(default_screw, 10);
}
}
// cubo_screw_set();
// base side for all except top and bottom
module
cubo_side_with_screw_holes(text = "cubo")
{
difference()
{
cubo_side_with_label(text = text);
cubo_screw_set();
}
}
cubo_side_with_screw_holes();
translate([ 0, 0, side_thickness])
pcb_holder(cube_pcb = RPI3);