Air flow switch holder
From HacDC Wiki
This is the OpenSCAD code to create a waffer flow sensor to hold a microswitch to stop the laser from firing if the exhaust flow stops. None of the dimensions have been set here yet.
/* exhaust airflow detector safety interlock for cheap Chinese laser at Hac DC This switch is a lug style wafer for insertion between the exhaust collector and the exhaust nozzle on the back of the laser chassis. When the exhaust fan is running and air is flowing the switch will operate to allow the laser to fire. This switch is upstream of the exhaust fan so air will leak into the exhaust stream, not exhaust leaking out into room air. James Sullivan 4-20-17 OpenSCAD version 2015.03-1 --dimensions from mating exhaust nozzle-- nid=60; //nozzle inner diameter nod=80; //nozzle outer diameter mod=100; //maximum outer diameter sh=30; //step height sw=5; //step width oah=50; //over-all height tlw=3; //top ledge width bcd=46.8*2; //bolt circle diameter bhd=3.6; //bolt hole diameter fw=12; //foot width fh=15; //foot height fod=108; //foot outside dimension, from outside edge to outside edge fid=(nid+nod)/2;//foot inside dimension, from inside edge to inside edge */ fid=60; //flange inner diameter, same as nid fod=80; //flange outer diameter, same as nod bhd=3.6; //bolt hole diameter bcd=93.6;//bolt circle diameter hph=10; //hinge pin height above center line, i.e. butterfly offset. Reduce to make switch more sensitive. Increse to make switch more stable. sfw=sqrt(fid*fid-4*hph*hph); //switch flap width shd=2; //switch hole diameter shp=10; //switch hole pitch, i.e. center to center spacing of mounting holes on microswitch srh=8; //switch roller height, i.e. height above switch hole centerline where switching action occurs sbw=6; //switch body width nfw=5; //nut face width nt=1; //nut thickness thick=3; //thickness of flange $fn=80; difference(){ union(){ cylinder(d=fod,h=thick); //wafer body hull(){ //horizontal lugs translate([bcd/2,0,0]) cylinder(d=3*bhd, h=thick); translate([-bcd/2,0,0]) cylinder(d=3*bhd, h=thick); } rotate([0,0,90]) hull(){ //vertical lugs translate([bcd/2,0,0]) cylinder(d=3*bhd, h=thick); translate([-bcd/2,0,0]) cylinder(d=3*bhd, h=thick); } } translate([0,0,-thick/2]) intersection(){ //bore cylinder(d=fid, h=2*thick); //circular top and bottom cube([sfw,fod,thick*4],true); //vertical left and right } for (angle=[0:90:270]){ //bolt holes in lugs rotate([0,0,angle]) translate([bcd/2,0,-thick/2]) cylinder(d=bhd,h=thick*2); } for (angle=[55:5:65]){ //wire holes through flange translate([0,0,thick/2]) rotate([0,90,angle]) cylinder(d=1,h=bcd/2); } translate([0,hph,thick/2]) rotate([0,90,0]) cylinder(d=1,h=bcd+4*bhd,center=true); //hinge pin axle hole } translate([0,fid/2-shp-3*shd,0]){ //switch holder difference(){ union(){ translate([sbw/2,0,0]) cube([thick,shp+3*shd,3*shd]); //left mount flange translate([-sbw/2-thick,0,0]) cube([thick,shp+3*shd,3*shd]);//right mount flange } translate([-sbw/2-3/2*thick,3/2*shd,3/2*shd]) rotate([0,90,0]) cylinder(d=shd,h=sbw+3*thick); //lower bolt hole translate([-sbw/2-3/2*thick,shp+3/2*shd,3/2*shd]) rotate([0,90,0]) cylinder(d=shd,h=sbw+3*thick);//upper bolt hole for (angle=[0:120:240]){ translate([-sbw/2-thick,3/2*shd,3/2*shd]) rotate([angle,0,0]) cube([nt*2,nfw,nfw/sqrt(3)],center=true); //lower nut socket translate([-sbw/2-thick,shp+3/2*shd,3/2*shd]) rotate([angle,0,0]) cube([nt*2,nfw,nfw/sqrt(3)],center=true); //upper nut socket } } translate([sbw/2+thick,shp/2+shd*1.5,shd*1.5]) cylinder(d1=shd*1.2,d2=0,h=shd*1.5); //flow direction arrow head translate([sbw/2+thick,shp/2+shd*1.5,0]) cylinder(d=shd*0.6,h=shd*1.5); //flow direction arrow shaft translate([-sbw/2-thick,shp/2+shd*1.5,shd*1.5]) cylinder(d1=shd*1.2,d2=0,h=shd*1.5);//flow direction arrow head translate([-sbw/2-thick,shp/2+shd*1.5,0]) cylinder(d=shd*0.6,h=shd*1.5); //flow direction arrow shaft } translate([0,fid/2+bcd/2+bhd*2,0]) difference(){ //flap disk intersection(){ //bore cylinder(d=fid-0.5, h=thick); //circular top and bottom cube([sfw-0.5,fod,thick*2],true); //vertical left and right } translate([0,hph,thick/2]) rotate([0,90,0]) cylinder(d=1,h=bcd+4*bhd,center=true); //hinge pin axis }