-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patheffector_base.scad
69 lines (63 loc) · 2.52 KB
/
effector_base.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
// Effector Base
// Shared between top and bottom.
// This part shares dimensions with effector.scad in Johann's Kossel repo:
// git://github.com/jcrocholl/kossel.git
include <config.scad>;
hotend_radius = 8.06; // Hole for the hotend (J-Head diameter is 16mm).
push_fit_height = 4; // Length of brass threaded into printed plastic.
height = 8;
standoff_r = 8.5/2;
standoff_offset = effector_body_r + standoff_r; // XY offset from center
standoff_offset_deg = 18; // rotation offset relative to line between center and screw hole
standoff_increment_deg = 2; // increment in degrees for between-standoff-mount material
standoff_flange_offset = effector_body_r + 1;
standoff_flange_r = 4;
filament_exit_offset = effector_body_r + 2.0;
filament_exit_r = 2.0/2;
filament_path_r = 1.2/2;
filament_path_fn = 4; // square hole
module effector_base() {
difference() {
union() {
// Main body
cylinder(r=effector_body_r, h=height, center=true, $fn=128);
for (a = [0:120:359]) rotate([0, 0, a]) {
// Standoff mounts
for (b = [-1, 1]) rotate([0, 0, b * standoff_offset_deg]) {
hull() {
translate([0, standoff_offset, 0]) cylinder(r=standoff_r, h=height, center=true, $fn=64);
translate([0, standoff_offset-10, 0]) cylinder(r=standoff_r, h=height, center=true, $fn=32);
}
}
// Extra material between standoff mounts to attach filament tunnel.
for (b = [-standoff_offset_deg:standoff_increment_deg:standoff_offset_deg-standoff_increment_deg]) {
hull() {
rotate([0, 0, b])
translate([0, standoff_flange_offset, 0]) cylinder(r=standoff_flange_r, h=height, center=true, $fn=32);
rotate([0, 0, b+standoff_increment_deg])
translate([0, standoff_flange_offset, 0]) cylinder(r=standoff_flange_r, h=height, center=true, $fn=32);
}
}
}
}
// Holes in standoff mounts
for (a = [0:120:359]) rotate([0, 0, a]) {
for (b = [-1, 1]) rotate([0, 0, b * standoff_offset_deg]) {
// Through hole
translate([0, standoff_offset, 0]) cylinder(r=m3_r, h=height+2*delta, center=true, $fn=32);
// Screw head hole
translate([0, standoff_offset, height/2-m3_cap_h]) cylinder(r=m3_cap_r, h=m3_cap_h+delta, $fn=32);
}
}
// Filament tie-down path, in two parts
for (a = [0:120:359]) rotate([0, 0, a]) {
translate([0, filament_exit_offset, 0]) {
// Side entrance
rotate([-90, 0, 0]) cylinder(r=filament_path_r, h=10, $fn=filament_path_fn);
// Vertical exit
cylinder(r=filament_exit_r, h=height+2*delta, $fn=32, center=true);
}
}
}
}
//effector_base();