Files
OpenScad_Designs/ac_bus_mount_2.scad
2021-02-10 14:26:28 +01:00

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);