@@ -27,7 +27,7 @@ module hole() {
2727
2828module handlebar()
2929{
30- # translate ((50 ) / 2 * y - 18.5 * z)rotate ([90 , 0 , 0 ])cylinder (d = 25.4 , h = 50 );
30+ translate ((50 ) / 2 * y - 18.5 * z)rotate ([90 , 0 , 0 ])cylinder (d = 25.4 , h = 50 );
3131}
3232
3333module cable() {
@@ -41,7 +41,7 @@ module button(detail = true) {
4141 difference () {
4242 union () {
4343 translate (z4 * z)cube (sizef, center = true );
44- translate (- 4 * z)cube ([7 , cxy + 16 , 8 ], center = true );
44+ if (detail) translate (- 4 * z)cube ([7 , cxy + 16 , 8 ], center = true );
4545 }
4646
4747 if (detail) {
@@ -51,23 +51,24 @@ module button(detail = true) {
5151 cable();
5252 }
5353 }
54- difference () {
54+ if (detail) difference () {
5555 translate (- 0.1 * z)cube ([7 , cxy + 16 , 0.2 ], center = true );
5656 hole();
5757 }
5858}
5959
6060button();
6161
62- module rubber_ring() {
62+ module rubber_ring(inner=false ) {
6363 translate (- 18.5 * z)
6464 rotate ([90 , 0 , 0 ])
6565 rotate_extrude()
6666 translate ([25.4 / 2 + 1.5 + 1 , 0 , 0 ])
6767 {
6868 hull () {
6969 circle(d = 3 );
70- translate ([5 , 0 , 0 ])circle(d = 3 );}
70+ translate ([inner?- 5 :5 , 0 , 0 ])circle(d = 3 );
71+ }
7172 }
7273}
7374
@@ -87,23 +88,23 @@ module bottom_shape(diam = 5) {
8788
8889// rotate(-x*90)linear_extrude(cxy-5*3)
8990module bottom(width = cxy, diam = 5) {
90- rotate (- x * 90 )linear_extrude(cxy - diam) projection(cut = true ) {
91+ rotate (- x * 90 )linear_extrude(width - diam) projection(cut = true ) {
9192 rotate (x * 90 )bottom_shape(diam);
9293 }
9394 difference () {
9495 bottom_shape(diam);
95- translate (y * 20 )cube ([40 , 40 , 40 ], center = true );
96+ translate (y * ( 20 + 0.01 ) )cube ([40 , 40 , 40 ], center = true );
9697 }
9798 translate (y * (width - diam))difference () {
9899 bottom_shape(diam);
99- translate (- y * 20 )cube ([40 , 40 , 40 ], center = true );
100+ translate (- y * ( 20 + 0.01 ) )cube ([40 , 40 , 40 ], center = true );
100101 }
101102}
102103
103104translate (y * 25 ) bottom();
104105module buttoncutter(spacing = .5) {
105106 translate (- (spacing + 3.5 ) * z)minkowski () {
106- cube (spacing,center= true );
107+ cube (spacing, center = true );
107108 union () {button(detail = false );
108109 hull () {
109110 linear_extrude(1 )translate ((- cxy / 2 - 1 ) * (x + y))square([cxy + 2 , cxy + 2 ]);
@@ -114,18 +115,20 @@ module buttoncutter(spacing = .5) {
114115}
115116
116117
117- module buttontop(wall= 3) {
118- translate (- 6 * z)rounded_cherry_stem(6 , 5 , 4 );
119- translate (- 6 * z)rounded_cherry_stem(6 , 5 , 4 );
118+ module buttontop(wall = 3) {
119+ translate (- 6 * z)rounded_cherry_stem(6 , 0.2 , 4 );
120+ translate (- 6 * z)rounded_cherry_stem(6 , 0.2 , 4 );
120121 difference () {
121122 hull () {
122123 translate (- z)linear_extrude(1 )translate ((- cxy / 2 - 1 ) * (x + y))square([cxy + 2 , cxy + 2 ]);
123- translate (- 5 * z)linear_extrude(1 )translate ((- (cxy+ 5 + wall )/ 2 ) * (x + y))square([cxy + 5 + wall, cxy + 5 + wall]);
124- translate (- 8 * z)linear_extrude(1 )translate ((- (cxy+ 5 + wall )/ 2 ) * (x + y))square([cxy + 5 + wall, cxy + 5 + wall]);
124+ translate (- 5 * z)linear_extrude(1 )translate ((- (cxy + 5 + wall) / 2 ) * (x + y))square([cxy + 5 + wall, cxy +
125+ 5 + wall]);
126+ translate (- 11 * z)linear_extrude(1 )translate ((- (cxy + 5 + wall) / 2 ) * (x + y))square([cxy + 5 + wall, cxy +
127+ 5 + wall]);
125128
126129 }
127130 translate (- z)buttoncutter();
128-
131+ # for (i = [ - 1 , 1 ]) translate ((cxy + 8 ) / 2 * y * i + z *- 6 ) rubber_ring( true );
129132 }
130133}
131134
0 commit comments