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){
|
module window_support(length, thickness_left, thickness_right, step, points){
|
||||||
max_iter = floor(length/step)-1;
|
max_iter = floor(length/step)-1;
|
||||||
poly = [
|
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_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_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_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