-
Notifications
You must be signed in to change notification settings - Fork 171
/
Copy pathsled_endcap_parts.scad
111 lines (93 loc) · 2.69 KB
/
sled_endcap_parts.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
include <config.scad>
use <GDMUtils.scad>
use <sliders.scad>
use <joiners.scad>
module sled_endcap()
{
joiner_length = 20;
hardstop_offset = drive_gear_diam/2;
color("DodgerBlue")
prerender(convexity=10)
difference() {
union() {
difference() {
union() {
difference() {
// Bottom
fwd(joiner_length/2) {
down(platform_thick/2) {
cube(size=[platform_width-joiner_width*2+0.1, joiner_length-0.05, platform_thick], center=true);
}
}
// Clear for joiners.
down(platform_height/2-0.05) {
fwd(0.01) {
joiner_pair_clear(spacing=platform_width-joiner_width, h=platform_height, clearance=-0.01, w=joiner_width, a=joiner_angle);
}
}
}
// Snap-tab joiners.
down(platform_height/2) {
difference() {
joiner_pair(spacing=platform_width-joiner_width, h=platform_height, w=joiner_width, l=joiner_length-joiner_width/2, a=joiner_angle);
down(platform_height/2) {
xspread(platform_width-joiner_width) {
xspread(joiner_width) {
xrot(90) chamfer_mask(r=3, h=2*joiner_length);
}
}
}
}
}
}
// Clear for Side joiners
down(platform_height/2) {
fwd(joiner_length-joiner_width/2) {
xspread(platform_width+0.1) {
zrot(-90) joiner_clear(h=platform_height, w=joiner_width, clearance=5, l=joiner_width, a=joiner_angle);
}
}
}
}
// Side joiners
down(platform_height/2) {
fwd(joiner_length-joiner_width/2) {
difference() {
yrot_copies([0,180]) {
translate([platform_width/2, 0, 0]) {
zrot(-90) joiner(h=platform_height, w=joiner_width, l=joiner_width, a=joiner_angle);
}
}
down(platform_height/2) {
yspread(joiner_width) {
yrot(90) chamfer_mask(r=3, h=2*joiner_length+platform_width);
}
xspread(platform_width-2*joiner_width) {
xrot(90) chamfer_mask(r=3, h=2*joiner_length+platform_width);
}
}
}
}
}
// Rack and pinion hard stop.
endstop_h = platform_z - motor_top_z - 5 - 2;
down(endstop_h/2-0.05) {
fwd(joiner_length-(joiner_length-hardstop_offset)/2) {
cube(size=[rail_spacing-joiner_width+1, joiner_length-hardstop_offset, endstop_h], center=true);
}
}
// Horizontal Bracing
down((rail_offset-3)/2-0.05) {
fwd(joiner_length-(joiner_length-hardstop_offset)/2) {
cube(size=[platform_width-2*joiner_width+1, joiner_length-hardstop_offset, rail_offset-3], center=true);
}
}
}
}
}
//!sled_endcap();
module sled_endcap_parts() { // make me
zrot(90) xrot(180) sled_endcap();
}
sled_endcap_parts();
// vim: noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap