|
|
|
@ -1,3 +1,6 @@
|
|
|
|
|
// 0 = all, 1=only the bracket |
|
|
|
|
export_set = 0; |
|
|
|
|
|
|
|
|
|
laser_pen_diam = 14.5; |
|
|
|
|
|
|
|
|
|
holder_spacing=60; |
|
|
|
@ -6,6 +9,26 @@ holder_len = 18;
|
|
|
|
|
holder_width = 5; |
|
|
|
|
holder_height = laser_pen_diam + 4; |
|
|
|
|
|
|
|
|
|
holder_back_len = holder_spacing + holder_width + 10; |
|
|
|
|
|
|
|
|
|
module pad(l,h,z) { |
|
|
|
|
linear_extrude(height = z, center = false, convexity = 10, twist = 0) { |
|
|
|
|
polygon(points = [ [0,0], [0,l], [h,0]]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
module screw_hole(y,z) { |
|
|
|
|
translate(v=[-9,y,z]) |
|
|
|
|
rotate(a=90, v=[0,1,0]){ |
|
|
|
|
cylinder(h=4, d=1.8*3.2, $fn=6); |
|
|
|
|
} |
|
|
|
|
translate(v=[-20,y,z]){ |
|
|
|
|
rotate(a=90, v=[0,1,0]){ |
|
|
|
|
#cylinder(h=30, d=3.2,$fn=10); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
module pico_haut(){ |
|
|
|
|
translate(v=[holder_len/2,0,5]){ |
|
|
|
|
rotate(a=90, v=[1,0,0]) { |
|
|
|
@ -31,26 +54,41 @@ module start_stop_cyl(){
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
module holder_base(){ |
|
|
|
|
hull(){ |
|
|
|
|
translate(v=[holder_len/2-1, 0, holder_height/2]){ |
|
|
|
|
rotate(a=90, v=[1,0,0]) { |
|
|
|
|
cylinder(h=holder_width, |
|
|
|
|
d=2,center=true, $fn=20); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
translate(v=[-holder_len/2, 0, holder_height/2,]){ |
|
|
|
|
rotate(a=90, v=[1,0,0]) { |
|
|
|
|
cylinder(h=holder_width, |
|
|
|
|
d=2,center=true, $fn=20); |
|
|
|
|
union(){ |
|
|
|
|
hull(){ |
|
|
|
|
translate(v=[holder_len/2-1, 0, holder_height/2]){ |
|
|
|
|
rotate(a=90, v=[1,0,0]) { |
|
|
|
|
cylinder(h=holder_width, |
|
|
|
|
d=2,center=true, $fn=20); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
translate(v=[-holder_len/2, 0, holder_height/2,]){ |
|
|
|
|
rotate(a=90, v=[1,0,0]) { |
|
|
|
|
cylinder(h=holder_width, |
|
|
|
|
d=2,center=true, $fn=20); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
translate(v=[-holder_len/2, 0, -holder_height/2]){ |
|
|
|
|
rotate(a=90, v=[1,0,0]) { |
|
|
|
|
cylinder(h=holder_width, |
|
|
|
|
d=2,center=true, $fn=20); |
|
|
|
|
translate(v=[-holder_len/2, 0, -holder_height/2]){ |
|
|
|
|
rotate(a=90, v=[1,0,0]) { |
|
|
|
|
cylinder(h=holder_width, |
|
|
|
|
d=2,center=true, $fn=20); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
start_stop_cyl(); |
|
|
|
|
} |
|
|
|
|
start_stop_cyl(); |
|
|
|
|
translate(v=[-7,0,4]) |
|
|
|
|
pad(6,5,5); |
|
|
|
|
|
|
|
|
|
translate(v=[-7,0,-7]) |
|
|
|
|
pad(6,5,5); |
|
|
|
|
|
|
|
|
|
rotate(a=180, v=[1,0,0]) |
|
|
|
|
translate(v=[-7,0,-8]) |
|
|
|
|
pad(6,5,5); |
|
|
|
|
|
|
|
|
|
rotate(a=180, v=[1,0,0]) |
|
|
|
|
translate(v=[-7,0,4]) |
|
|
|
|
pad(6,5,5); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -80,17 +118,27 @@ module holder(pos_y) {
|
|
|
|
|
} |
|
|
|
|
start_stop_cyl(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
difference(){ |
|
|
|
|
union(){ |
|
|
|
|
holder(0); |
|
|
|
|
if (export_set == 0) { |
|
|
|
|
holder(holder_spacing); |
|
|
|
|
translate(v=[-holder_len/2,holder_spacing/2,0]){ |
|
|
|
|
cube([5,holder_back_len,21], center=true); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// |
|
|
|
|
// translate(v=[-holder_len/2,holder_spacing/2,-3]){ |
|
|
|
|
// cube([5,holder_spacing+holder_width,20], center=true); |
|
|
|
|
// } |
|
|
|
|
} |
|
|
|
|
screw_hole(10,5); |
|
|
|
|
screw_hole(10,-5); |
|
|
|
|
screw_hole(50,5); |
|
|
|
|
screw_hole(50,-5); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
union(){ |
|
|
|
|
holder(0); |
|
|
|
|
// holder(holder_spacing); |
|
|
|
|
// |
|
|
|
|
// translate(v=[-holder_len/2,holder_spacing/2,-3]){ |
|
|
|
|
// cube([5,holder_spacing+holder_width,20], center=true); |
|
|
|
|
// } |
|
|
|
|
} |