more designs
This commit is contained in:
84
ac_bus_mount_2.scad
Normal file
84
ac_bus_mount_2.scad
Normal 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);
|
||||
22
ac_bus_tube_connector.scad
Normal file
22
ac_bus_tube_connector.scad
Normal 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
55
ac_bus_tube_mount.scad
Normal 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);
|
||||
}
|
||||
}
|
||||
161
heater_tube_splitter_bus.scad
Normal file
161
heater_tube_splitter_bus.scad
Normal 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);
|
||||
@@ -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
38
wolf_headphones_fix.scad
Normal 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]);
|
||||
}}}}}
|
||||
Reference in New Issue
Block a user