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
|
include <../conf.scad>
module crossbar() {
module bar(length,outer,inner) {
difference() {
cube([outer, outer, length], true);
cube([inner, inner, length+epsilon], true);
translate([outer/2,0,0])
cube([outer, outer+epsilon, outer], true);
}
}
plate_distance=support_inner*sqrt(2)/2;
rack_distance=rack_inner*sqrt(2)/2;
stand_distance=stand_width*sqrt(2)/2;
difference() {
//bar
rotate([90,-90,90])
color("silver")
bar(frame_length, frame_outer, frame_inner);
//center hole
cylinder(frame_outer+epsilon,d=support_diameter,center=true);
for(i=[0:1]) {
rotate(i*180){
//plate screw hole
translate([plate_distance,0,0])
cylinder(frame_outer+epsilon,d=support_diameter,center=true);
//rack hole
translate([rack_distance,0,0])
cylinder(frame_outer+epsilon,d=rack_diameter,center=true);
//stand hole
translate([stand_distance,0,0])
cylinder(frame_outer+epsilon,d=stand_head_diameter,center=true);
//motor holes
translate([motor_hole_distance,0,0]){
cylinder(frame_outer+epsilon,d=motor_hole_diameter,center=true);
translate([motor_mount_distance/2,0,0])
cylinder(frame_outer+epsilon,d=motor_mount_diameter,center=true);
translate([-motor_mount_distance/2,0,0])
cylinder(frame_outer+epsilon,d=motor_mount_diameter,center=true);
}
}
}
}
}
crossbar();
|