84 lines
2.3 KiB
OpenSCAD
84 lines
2.3 KiB
OpenSCAD
width = 140;
|
|
height = 85;
|
|
|
|
diameter = 120;
|
|
shape_length = 50;
|
|
vent_length = 18;
|
|
|
|
wall_thickness = 3;
|
|
|
|
$fn = 100;
|
|
|
|
module squareToCircle(width, height, length, diameter, ovalfactor) {
|
|
ovalf_h = 1.15;
|
|
ovalf_w = 0.70;
|
|
hull(){
|
|
rotate([90,0,0])
|
|
linear_extrude(1)
|
|
square(size=[width, height], center=true);
|
|
|
|
translate([0, length])
|
|
rotate([90,0,0])
|
|
linear_extrude(1)
|
|
scale([ovalf_h, ovalf_w, 1])
|
|
circle(r=diameter/2);
|
|
}
|
|
translate([0, length+10, 0])
|
|
rotate([90, 0, 0])
|
|
linear_extrude(10)
|
|
scale([ovalf_h, ovalf_w, 1])
|
|
circle(r=diameter/2);
|
|
}
|
|
|
|
module hollowStoC(width, height, length, diameter, ovalfactor, wall_thickness){
|
|
difference(){
|
|
squareToCircle(width, height, length, diameter, ovalfactor);
|
|
translate([0, -0.005, 0])
|
|
squareToCircle(width-2*wall_thickness, height-2*wall_thickness, length+0.01, diameter-2*wall_thickness, ovalfactor);
|
|
}
|
|
}
|
|
|
|
module squareHole(width, height, length, wall_thickness) {
|
|
translate([0, -length/2-1, 0])
|
|
rotate([90, 0, 0])
|
|
difference(){
|
|
cube(size=[width, height, length], center=true);
|
|
cube(size=[width-2*wall_thickness, height-2*wall_thickness, length+0.01], center=true);
|
|
}
|
|
}
|
|
|
|
module diagonalPlate(width, length, thickness){
|
|
difference(){
|
|
rotate([-45, 0, 0])
|
|
cube(size=[width, length, thickness], center=true);
|
|
translate([0, -length*cos(45), 0])
|
|
cube(size=[width+3, length, 20], center=true);
|
|
}
|
|
}
|
|
|
|
module vent(width, height, length, wall_thickness) {
|
|
squareHole(width, height, length, wall_thickness);
|
|
translate([0, -length+1.1, 30])
|
|
diagonalPlate(width, 10, 2);
|
|
translate([0, -length+1.1, 15])
|
|
diagonalPlate(width, 10, 2);
|
|
translate([0, -length+1.1, 0])
|
|
diagonalPlate(width, 10, 2);
|
|
translate([0, -length+1.1, -15])
|
|
diagonalPlate(width, 10, 2);
|
|
translate([0, -length+1.1, -30])
|
|
diagonalPlate(width, 10, 2);
|
|
|
|
translate([0, -length, 0])
|
|
rotate([90,0,0])
|
|
difference(){
|
|
cube(size=[width+15, height+15, 2], center=true);
|
|
cube(size=[width, height, 2.01], center=true);
|
|
}
|
|
}
|
|
|
|
hollowStoC(width, height, shape_length, diameter, 1, wall_thickness);
|
|
vent(width, height, vent_length, wall_thickness);
|
|
|
|
// translate([-120,0,0])
|
|
// cube(size=[100, 250, 10], center=true); |