Actions

Air flow switch holder

From HacDC Wiki

Revision as of 00:02, 2 May 2017 by James (talk | contribs) (added <pre> tags and category)

This is the OpenSCAD code to create a wafer air flow sensor (and backflow preventer) to hold a microswitch to stop the laser from firing if the exhaust flow stops. Dimensions have been set to match the exhaust nozzle. The current version of the nacelle doesn't quite match, even though the nozzle was reverse engineered from it.


/*
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
}