@@ -5,24 +5,25 @@ use <../../lib/utils.scad>
55
66module BikeRackMountSide() {
77 r1 = 1 ;
8- w = 8 ;
8+ w = 10 ;
99 W = 20 ;
1010 r2 = BikeRackMount_rail_diameter/2 + w;
1111 r3 = 4 ;
12+ l = 0 ; // parameter to widen the part on the screw side.
1213
1314 difference () {
1415 rotate ([90 , 0 , - 90 ])
1516 linear_extrude(BikeRackMountSide_length, center= true , convexity= 2 )
1617 polygon(polyRound([
17- [0 , 0 , r1],
18+ [- l , 0 , r1+ 2 ],
1819 [W, 0 , r1],
1920
2021 [W, - r2/2 , r2],
2122 // [W - r2, -r2, 0],
2223 // [w + r3, -r2, 0],
2324 [w, - r2, r2],
2425 [w, - BikeRackMountSide_height, r1],
25- [0 , - BikeRackMountSide_height, r1],
26+ [- l , - BikeRackMountSide_height, r1],
2627 ], fn=$ pfn));
2728
2829 // rail
@@ -50,6 +51,9 @@ module BikeRackMountSide() {
5051
5152 rotate ([0 , 0 , 90 ])
5253 RodHoles();
54+
55+ translate ([0 , - w/2 , 0 ])
56+ ClampSlit(double_holes= false );
5357 }
5458}
5559
@@ -64,18 +68,37 @@ module RodHoles() {
6468
6569vertical_offset = 10 ;
6670
67- module BikeRackMountCenter(longitudinal=false) {
71+ module ClampSlit(double_holes=false) {
72+ slit_size = 0.5 ;
73+ slit_z = - BikeRackMountSide_height + BikeRackMount_rod_diameter/2 + BikeRackMount_bottom_spacing - slit_size/2 ;
74+
75+ translate ([- MountRail_width/2 , - BikeRackMount_rod_distance/2 , slit_z])
76+ cube ([MountRail_width, BikeRackMount_rod_distance, slit_size]);
77+
78+ for (i= double_holes ? [- 1 , 1 ] : [0 ])
79+ translate ([6 * i, 0 , 0 ]) {
80+ translate ([0 , 0 , - BikeRackMountSide_height])
81+ mirror ([0 , 0 , 1 ])
82+ HeatsetInsertHole();
83+
84+ // how far down does the screw go? to the bottom, but 1/3 up the insert
85+ // depth (grips 2/3 of the insert's threads, that should be enough)
86+ d = BikeRackMountSide_height - m3_insert_hole_depth* 1 /3 ;
87+ translate ([0 , 0 , 0 ])
88+ ScrewHoleM3(head_depth= d- 8 , depth= d); // head depth is 8mm less than screw depth for M3x8
89+ }
90+ }
6891
92+
93+ module BikeRackMountCenter(longitudinal=false) {
94+ w = MountRail_plate_width - 2 * MountRail_clearance;
95+ r = 5 ;
6996 difference () {
7097 union () {
7198 translate ([MountRail_width/2 , 0 , - vertical_offset- MountRail_total_height])
7299 rotate ([0 , 0 , 90 ])
73100 mirror ([0 , 0 , 1 ])
74101 MountRail(MountRail_clearance);
75-
76- w = MountRail_plate_width - 2 * MountRail_clearance;
77- r = 5 ;
78-
79102 if (longitudinal) {
80103 difference () {
81104 hull ()
@@ -108,6 +131,9 @@ module BikeRackMountCenter(longitudinal=false) {
108131 } else {
109132 RodHoles();
110133 }
134+
135+ rotate ([0 , 0 , longitudinal?90 :0 ])
136+ ClampSlit(double_holes= true );
111137 }
112138}
113139
@@ -129,14 +155,14 @@ module BikeRackMountDebug() {
129155 cylinder (d= BikeRackMount_rod_diameter, h= 200 , center= true );
130156}
131157
132- // !BikeRackMountCenter ();
158+ // !BikeRackMountDebug ();
133159
134160if (orient_for_printing) {
135161 translate ([0 , 0 , MountRail_width/2 ])
136162 rotate ([0 , - 90 , 0 ])
137163 translate ([0 , 0 , BikeRackMountSide_height])
138- BikeRackMountCenter();
164+ BikeRackMountCenter(false );
139165} else {
140166 rotate ([0 , 0 , 90 ])
141- BikeRackMountCenter();
167+ BikeRackMountCenter(false );
142168}
0 commit comments