more designs

This commit is contained in:
2021-02-10 14:26:28 +01:00
parent 82bde97728
commit 40e425e503
6 changed files with 386 additions and 1 deletions

84
ac_bus_mount_2.scad Normal file
View File

@@ -0,0 +1,84 @@
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);

View File

@@ -0,0 +1,22 @@
thickness = 3;
inside_dia = 67;
height = 60;
module piece(){
translate([0,0,height/4])
difference(){
cylinder(r=inside_dia/2+thickness, h=height/2, center=true);
translate([0,0,thickness])
cylinder(r=inside_dia/2, h=height/2, center=true);
translate([0,0,-height/4+thickness/2-0.1])
cylinder(r1=inside_dia/2-thickness, r2=inside_dia/2, h=thickness+0.3, center=true);
}
}
$fn=150;
union(){
piece();
rotate([180,0,0])
piece();
}

55
ac_bus_tube_mount.scad Normal file
View File

@@ -0,0 +1,55 @@
width = 337;
height = 174;
thickness = 3;
tube_diam = 125;
wall_thickness = 3;
tube_mount_height = 30;
conical_height = 40;
cone_scale_x = 2.5;
cone_scale_y = 1.2;
$fn = 100;
difference(){
union(){
difference(){
cube(size=[width, height, thickness], center=true);
scale([cone_scale_x, cone_scale_y, 1])
cylinder(r=tube_diam/2-wall_thickness, h=2*thickness, center=true);
}
translate([0,0, (tube_mount_height+thickness)/2+conical_height])
difference(){
cylinder(r=tube_diam/2, h=tube_mount_height, center=true);
cylinder(r=tube_diam/2-wall_thickness, h=tube_mount_height+1, center=true);
}
translate([0, 0, (conical_height+thickness)/2])
walledCone(tube_diam);
// translate([0, 0, (conical_height+thickness)/2])
// difference(){
// cylinder(h=conical_height, r1=tube_diam/2+20, r2=tube_diam/2, center=true);
// cylinder(h=conical_height+1, r1=tube_diam/2+20-wall_thickness, r2=tube_diam/2-wall_thickness, center=true);
// }
}
translate([width/2, 0, -5])
cube([width,height+5,200], center=true);
}
module cone(diam, hei=conical_height){
hull(){
scale([cone_scale_x, cone_scale_y, 1])
cylinder(h=hei, r1=diam/2, r2=0, center=true);
cylinder(h=hei, r=diam/2, center=true);
}
}
module walledCone(diam){
difference(){
cone(diam);
cone(diam-2*wall_thickness, hei=conical_height+0.1);
}
}

View File

@@ -0,0 +1,161 @@
inner_dia = 70;
outer_dia = 75;
wall_thickness = (outer_dia-inner_dia)/2;
nub_thickness = 2;
nub_height = 1;
nub_width = 18;
connector_height = 15;
curve_angle = 45;
connector_dist = 5;
$fn=100;
module nub(width, height, thickness, dia){
radius = 0.5;
new_thickness = thickness - radius*2;
translate([0,0,-1.8])
minkowski() {
intersection(){
linear_extrude(5)
translate([-width/2,0,0])
polygon(points=[[0,0],[width/4,new_thickness],[3*width/4,new_thickness],[width,0]]);
translate([0,0,-outer_dia/2+3])
rotate([90,0,0])
difference(){
cylinder(r=outer_dia/2, h=10, center=true, $fn=50);
cylinder(r=outer_dia/2-height, h=10, center=true, $fn=50);
}
}
sphere(r=radius, $fn=20);
}
}
module connector(inner_dia, outer_dia, height){
translate([0,0, height/2]){
difference(){
cylinder(r=outer_dia/2, h=height, center=true);
cylinder(r=inner_dia/2, h=height+0.01, center=true);
}
translate([0,-outer_dia/2+0.3,height-15])
rotate([90,0,0])
nub(nub_width, nub_height, nub_thickness, outer_dia);
rotate([0,0,180])
translate([0,-outer_dia/2+0.3,height-15])
rotate([90,0,0])
nub(nub_width, nub_height, nub_thickness, outer_dia);
}
}
module tCyls(outer_dia, height_factor = 1){
union(){
cylinder(r=outer_dia/2, h=outer_dia*height_factor, center=true);
translate([0,outer_dia*height_factor/4,0])
rotate([90, 0, 0])
cylinder(r=outer_dia/2, h=outer_dia/2*height_factor, center=true);
}
}
module tPiece(inner_dia, outer_dia){
difference(){
tCyls(outer_dia);
tCyls(inner_dia, height_factor=1.5);
}
}
module tSplitter(inner_dia, outer_dia, connector_height){
union(){
tPiece(inner_dia, outer_dia);
translate([0,0,outer_dia/2])
rotate([0,0,90])
connector(inner_dia, outer_dia, connector_height);
translate([0,outer_dia/2,0])
rotate([-90,0,0])
rotate([0,0,90])
connector(inner_dia, outer_dia, connector_height);
translate([0,0,-outer_dia/2])
rotate([180,0,0])
rotate([0,0,90])
connector(inner_dia, outer_dia, connector_height);
}
}
function custom_y(w, angle) = (w/2-w*(1-cos(angle)))/tan(angle)+w*sin(angle);
module one_side(r, w, angle){
rotate_extrude(angle=angle)
translate([w/2,0,0])
circle(r=r);
y = custom_y(w, angle);
translate([w/2,y,0])
rotate(angle)
mirror([1,0,0])
rotate_extrude(angle=angle)
translate([w/2,0,0])
circle(r=r);
tri_x = w/2-w*(1-cos(angle));
tri_y = tri_x/tan(angle);
length = sqrt(pow(tri_y, 2) + pow(tri_x,2));
rotate(angle,[0,0,1])
translate([w/2,length,0])
rotate(90,[1,0,0])
linear_extrude(length)
circle(r=r);
}
module split_shape(r, w, angle){
union(){
one_side(r,w,angle);
mirror([1,0,0])
one_side(r,w,angle);
}
}
module yTubes(inner_dia, wall_thickness, curve_angle, connector_dist){
my_w = inner_dia+2*wall_thickness+connector_dist;
difference(){
split_shape(inner_dia/2+wall_thickness,
my_w,
curve_angle);
split_shape(inner_dia/2,
my_w,
curve_angle);
}
}
module ySplitter(inner_dia, wall_thickness, curve_angle, connector_height, connector_dist){
union(){
yTubes(inner_dia, wall_thickness, curve_angle, connector_dist);
translate([0,outer_dia-2,0])
rotate([-90,0,0])
rotate([0,0,90])
connector(inner_dia, outer_dia, connector_height);
translate([outer_dia/2+connector_dist/2,0,0])
rotate([90,0,0])
connector(inner_dia, outer_dia, connector_height);
translate([-outer_dia/2-connector_dist/2,0,0])
rotate([90,0,0])
connector(inner_dia, outer_dia, connector_height);
}
}
// connector(inner_dia, outer_dia, connector_height);
// nub(nub_width, nub_height, nub_thickness, outer_dia);
// tSplitter(inner_dia, outer_dia, connector_height);
ySplitter(inner_dia, wall_thickness, curve_angle, connector_height, connector_dist);

View File

@@ -153,6 +153,30 @@ step_window_6 = 30;
//-------------------------------------------------------------------------------
// WINDOW 7
//-------------------------------------------------------------------------------
width_window_7 = 599;
height_window_7 = 1007;
// Order of measurements:
// tl, tr, br, bl
depths_window_7 = [70, 74, 66, 70];
// Order of measurements:
// top, right, bottom, left
measurements_window_7 = [
[1.1, 0.7, 0.5, 0.5, 0.5, 0.5, 1, 1.6, 1.1, 1.1, 1.2, 0.9, 0.1, 0, 0, 0, 0.1, 0.6, 0.9],
[0, 0.2, 0.3, 0.5, 0.1, 0, 0.6, 1.1, 1.9, 2.5, 3, 3.2, 3, 3, 2.1, 1.6, 1.6, 1.1, 1.2, 1.1, 1.1, 1.1, 1.1, 1.7, 1.9, 2.4, 3.5, 4, 4, 4, 3.2, 1.6, 0],
[1.5, 3.5, 3.9, 3.7, 3.2, 2.8, 2.8, 3.1, 3.1, 4.2, 2.8, 2, 1.8, 1.8, 2.1, 3, 3.9, 2.4, 0.7],
[1.5, 2.5, 3.7, 3.8, 4.2, 4.2, 3.9, 3.6, 3.1, 2.8, 2.8, 2.3, 2.3, 1.8, 1.8, 1.8, 1.8, 1.5, 1.7, 2.1, 2.4, 2.9, 2.9, 2.9, 2.9, 3.3, 2.8, 2.4, 1.8, 1.3, 0.9, 0.1, 0]
];
step_window_7 = 30;
//-------------------------------------------------------------------------------
module window_support(length, thickness_left, thickness_right, step, points){
max_iter = floor(length/step)-1;
poly = [
@@ -227,4 +251,5 @@ module window_frame(width, height, depths, measurements, step, show_param){
// window_frame(width_window_3, height_window_3, depths_window_3, measurements_window_3, step_window_3, 4);
// window_frame(width_window_4, height_window_4, depths_window_4, measurements_window_4, step_window_4, 4);
// window_frame(width_window_5, height_window_5, depths_window_5, measurements_window_5, step_window_5, 4);
window_frame(width_window_6, height_window_6, depths_window_6, measurements_window_6, step_window_6, 0);
// window_frame(width_window_6, height_window_6, depths_window_6, measurements_window_6, step_window_6, 4);
window_frame(width_window_7, height_window_7, depths_window_7, measurements_window_7, step_window_7, 3);

38
wolf_headphones_fix.scad Normal file
View File

@@ -0,0 +1,38 @@
p0 = [0, 20];
p1 = [2, 18.5];
p2 = [4.0, 16];
p3 = [6, 12];
p4 = [8, 7.5];
p5 = [10, 0];
p6 = [0, 0];
points = [p0, p1, p2, p3, p4, p5,p6];
// Polygon
rotate([-90,0,0]){
difference(){
difference(){
difference(){
rotate([90,0,0]){
linear_extrude(height=15)
polygon(points);
}
translate([6,-7.5,12]){
rotate([0,180+43,0]){
translate([-3.5,0,0]){
$fn = 50;
cylinder(h = 6, r = 3.8);
cylinder(h = 7.5, r = 3.3);
}
}
}
}
translate([7.9,0,0]){
rotate([0,-47,0]){
translate([-10,-19,0]){
cube([10,20,15]);
}}}}
translate([1.5,0,0]){
rotate([0,-47,0]){
translate([-10,-6,0]){
cube([25,10,2.8]);
}}}}}