diff --git a/ac_bus_mount_2.scad b/ac_bus_mount_2.scad new file mode 100644 index 0000000..02ed379 --- /dev/null +++ b/ac_bus_mount_2.scad @@ -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); \ No newline at end of file diff --git a/ac_bus_tube_connector.scad b/ac_bus_tube_connector.scad new file mode 100644 index 0000000..f22c820 --- /dev/null +++ b/ac_bus_tube_connector.scad @@ -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(); +} \ No newline at end of file diff --git a/ac_bus_tube_mount.scad b/ac_bus_tube_mount.scad new file mode 100644 index 0000000..263de1a --- /dev/null +++ b/ac_bus_tube_mount.scad @@ -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); + } +} \ No newline at end of file diff --git a/heater_tube_splitter_bus.scad b/heater_tube_splitter_bus.scad new file mode 100644 index 0000000..d62de93 --- /dev/null +++ b/heater_tube_splitter_bus.scad @@ -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); \ No newline at end of file diff --git a/window_support_bus.scad b/window_support_bus.scad index 9ee0bd5..4245a6d 100644 --- a/window_support_bus.scad +++ b/window_support_bus.scad @@ -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); \ No newline at end of file +// 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); \ No newline at end of file diff --git a/wolf_headphones_fix.scad b/wolf_headphones_fix.scad new file mode 100644 index 0000000..2562f3e --- /dev/null +++ b/wolf_headphones_fix.scad @@ -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]); +}}}}} \ No newline at end of file