Skrypt do generacji masek Bahtinova w OpenSCAD, który napisałem w ramach wprawek. Wszelkie uwagi/uzupełnienia mile widziane.
EDIT. W dziale Pliki jest nowa, pełniejsza wersja pliku.
$fn=100;
// średnica tuby
diam=150;
//promień
radi=0.5*diam;
//szerokość pasków jako stosunek do średnicy
wid=diam/26;
//grubość
thick=2;
//kąt pasków
angle=14;
//wysokość ramki
hi=20;
difference(){
union(){
intersection(){
union(){
difference(){
union(){
for(i=[-wid*1.5:-2*wid:-radi-2*wid]){
translate([i,-radi,0]) cube([wid,radi,thick]);
}
for(i=[wid*0.5:2*wid:radi+2*wid]){
translate([i,-radi,0]) cube([wid,radi,thick]);
}
for(n=[wid:-2*wid:-radi-2*wid]){
translate([n+wid,0,0]) rotate([0,0,angle])
cube([wid,radi,thick]);
}
for(n=[-2*wid:2*wid:radi+2*wid]){
translate([n-wid,0,0]) rotate([0,0,-angle])
cube([wid,radi,thick]);
}
}
for(n=[0:-2*wid:-4*wid]){
translate([n+wid,0,-1]) rotate([0,0,angle])
cube([wid,radi,thick+2]);
}
for(n=[-2*wid:2*wid:4*wid]){
translate([n,0,-1]) rotate([0,0,-angle])
cube([wid,radi,thick+2]);
}
}
translate([0,0,0]) rotate([0,0,angle])
cube([wid,radi,thick]);
translate([-wid,0,0]) rotate([0,0,-angle])
cube([wid,radi,thick]);
translate([-0.5*wid,0,0]) cube([wid,radi,thick]);
translate([0,0.5*wid,0.5*thick]) cube([diam,2.5*wid,thick],center=true);
}
cylinder(h=thick,d=(diam+2*thick*1.05));
}
rotate_extrude(convexity=0) translate ([radi-wid+thick*1.05,0,0]) square([wid,thick]);
rotate_extrude(convexity=0) translate ([radi+thick*.05,0,0]) square([thick,hi]);
translate ([-radi,0,hi*0.85]) sphere(d=0.8*thick);
translate ([radi,0,hi*0.85]) sphere(d=0.8*thick);
translate ([0,-radi,hi*0.85]) sphere(d=0.8*thick);
translate ([0,radi,hi*0.85]) sphere(d=0.8*thick);
}
translate ([0,10,0.7*hi]) cube([2*diam,4,0.65*hi],center=true);
translate ([0,-10,0.7*hi]) cube([2*diam,4,0.65*hi],center=true);
translate ([10,0,0.7*hi]) cube([4,2*diam,0.65*hi],center=true);
translate ([-10,0,0.7*hi]) cube([4,2*diam,0.65*hi],center=true);
//translate ([100,-10,30]) cube([150,4,40],center=true);
}