-
Notifications
You must be signed in to change notification settings - Fork 2
/
groovemount.scad
123 lines (101 loc) · 2.54 KB
/
groovemount.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// Grooved Insulator Mount Adapter #3
// by Tony Buser <[email protected]>
// uses teardrop module by Erik de Bruijn <[email protected]>
// GPLv2 or later
// set them slightly larger if printer isn't perfect
barrel_diameter = 16.6; // 16 + .6
barrel_inset_diameter = 13.2; // 13 + .2
plate_length = barrel_diameter+1;
plate_width = barrel_diameter+1;
// probably don't want to touch the height
plate_height = 5;
// mounting bolts will need to be 15mm long?
mounting_bolt_diameter = 4;
mounting_bolt_head_diameter = 8;
// single horizontal bolt to clamp and hold insulator in place
// will need to be around 45mm long?
clamp_bolt_diameter = 4;
$fn = 32;
module and(){
difference(){
child(0);
difference(){
child(0);
child(1);
}
}
}
module plate() {
difference() {
cube([plate_length, plate_width, plate_height/2]);
// barrel inset
translate([plate_length/2, plate_width/2, -1]) {
cylinder(r=barrel_inset_diameter/2, h=plate_height/2+2);
}
// clamp bolt
// translate([-1, plate_width/2-barrel_inset_diameter/2-clamp_bolt_diameter/2, plate_height/2-clamp_bolt_diameter/2]) {
// rotate([0, 90, 0]) {
// teardrop(clamp_bolt_diameter/2, plate_length+2, false);
// }
// }
}
}
module cutout() {
intersection() {
// carve a curve around the border
// union() {
// translate([plate_length/2, plate_width/2/2, -1]) {
// cylinder(r=plate_length/2, h=plate_height+2);
// }
// translate([0, -plate_width/2/2-plate_width/2, -1]) {
// cube([plate_length, plate_width, plate_height+2]);
// }
// }
difference() {
plate();
// bottom cutout
translate([plate_length/2-barrel_inset_diameter/2, -1, -1]) {
cube([barrel_inset_diameter, plate_width/2+1, plate_height/2+2]);
}
}
}
}
module print() {
// center and orient it to print correctly
translate([-plate_length/2, -plate_width/2, 0]) cutout();
}
module base(){
union(){
difference(){
translate([-28.5, 25, -30.5])
rotate([0, 0, -90])
translate([0, 0, 0]) import_stl("base.stl", convexity = 5);
translate([0, plate_width/4+1, -1]) {
cube([barrel_diameter, plate_width/2+2, 11], center=true);
}
}
rotate ([0, 0, 180]) translate([-plate_length/2, -plate_width/2, 0]) cutout();
}
}
module separator() {
translate([0, 1.5, -1]) cube([barrel_diameter+2, plate_width+3, 10.9], center=true);
}
module separate(base=false){
if (base==true) {
difference(){
base();
separator();
}
}
if (base==false) {
intersection(){
base();
separator();
}
}
}
separate();
//separate(base=true);
//plate();
//cutout();
//print();