aboutsummaryrefslogtreecommitdiff
path: root/structure/parts/crossbar.scad
blob: 026113fa2932dca8b86457aa85e87a945ae9bb6c (plain) (blame)
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();