You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
3.8 KiB
OpenSCAD

// 0 = all, 1=only the bracket
export_set = 0;
laser_pen_diam = 15;
holder_spacing=60;
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=2.5, 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]) {
// cylinder(h=holder_width,
// d=2,center=true, $fn=20);
// }
// }
//}
module start_stop_cyl(){
translate(v=[holder_len/2-.5, 0, 4]){
rotate(a=90, v=[1,0,0]) {
cylinder(h=holder_width,
d=1.8,center=true, $fn=20);
}
}
translate(v=[0, 0, -holder_height/2+.5]){
rotate(a=90, v=[1,0,0]) {
cylinder(h=holder_width,
d=1.8,center=true, $fn=20);
}
}
}
module holder_base(){
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);
}
}
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);
}
}
module holder(pos_y) {
translate(v=[0,pos_y,0]){
union(){
difference() {
holder_base();
translate(v=[2,0,-1]){
rotate(a=90, v=[1,0,0] ){
cylinder(h = holder_width+1,
d = laser_pen_diam,
center = true,
$fn=30);
}
}
translate(v=[holder_len/3,0,-holder_height/4]) {
#cube([holder_len/2+3,
holder_width+1,
holder_height/2+7],
center=true);
}
}
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);
}