// allviews piece test1 test2 test3 // viewopts piece perimeter6 brim10mm include use <../cadlib.h> len1=25*6; height1=25+2+2+2+1; thick1=5; height0=height1-25/2; len2=25*4; height2=25/2; thick2=25; module piece(){ difference(){ union(){ cube([len1,height1,thick1]); translate([0,height0,0]) cube([len1,height2,thick2]); h3=height0+height2; off=5; h4=25/2+off; translate([25,h3,0]) cube([25,h4,thick2]); translate([25+len2-25,h3,0]) cube([25,h4,thick2]); translate([25,h3+h4,0]) cube([len2,25/2,thick2]); h5=2*25/2+off; translate([25,h3,thick2]) rotate([0,180,0]) triangle_rectangle(25,h5,thick2); translate([len1-25,h3,0]) triangle_rectangle(25,h5,thick2); } union(){ hhole=8; holer=4.5; off=25/2+1; translate([off,hhole,-1]) cylinder(r=holer,h=thick1+2,$fn=40); translate([len1-off,hhole,-1]) cylinder(r=holer,h=thick1+2,$fn=40); } } } module test(len,offz,thick,remove){ intersection(){ cube([len,height1,thick]); difference(){ translate([0,0,offz]) piece(); if (remove){ union(){ translate([25,10,-1]) cube([len2,100,thick2+2]); } } } } } module main_view(view){ if (view=="piece"){ piece(); }else if (view=="test1"){ test(len1,thick1+1,3,true); }else if (view=="test2"){ test(24,-thick1+1,3,true); }else if (view=="test3"){ test(len1,0,thick1+3,false); } }