Initial commit: complete, but untuned model
This commit is contained in:
commit
7a1b6fd502
32
Lampe.scad
Normal file
32
Lampe.scad
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
include <Lampe_Parameter.scad>;
|
||||||
|
include <Lampe_2DFormen.scad>;
|
||||||
|
|
||||||
|
// acryl pipe
|
||||||
|
%color("LightCyan", 0.5)
|
||||||
|
difference() {
|
||||||
|
cylinder(d = acryl_outer_dia, h=acryl_height, center=true);
|
||||||
|
cylinder(d = acryl_inner_dia, h=acryl_height+1, center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
%color("Yellow", 0.3)
|
||||||
|
translate([0,0,inner_height/2+1.5*wood_thickness]) linear_extrude(wood_thickness, center=true) top_outer_plate();
|
||||||
|
translate([0,0,inner_height/2+0.5*wood_thickness]) linear_extrude(wood_thickness, center=true) top_inner_plate();
|
||||||
|
|
||||||
|
translate([0,0,-inner_height/2-0.5*wood_thickness]) linear_extrude(wood_thickness, center=true) bottom_inner_plate();
|
||||||
|
%color("Yellow", 0.6)
|
||||||
|
translate([0,0,-inner_height/2-1.5*wood_thickness]) linear_extrude(wood_thickness, center=true) bottom_outer_plate();
|
||||||
|
|
||||||
|
|
||||||
|
color("red")
|
||||||
|
for(angle = [0:45:7*45]) {
|
||||||
|
rotate([0, 0, angle])
|
||||||
|
translate([0, holder_offset, 0]) rotate([90, 0, 0]) linear_extrude(wood_thickness, center=true) ledstrip_holder();
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0,0,-inner_height/2-bottom_box_height-2.5*wood_thickness]) linear_extrude(wood_thickness, center=true) base_plate();
|
||||||
|
|
||||||
|
color("green")
|
||||||
|
for(angle = [0:45:7*45]) {
|
||||||
|
rotate([0, 0, angle])
|
||||||
|
translate([0, bottom_box_wall_offset, -inner_height/2-bottom_box_height/2-2*wood_thickness]) rotate([90, 0, 0]) linear_extrude(wood_thickness, center=true) box_wall();
|
||||||
|
}
|
128
Lampe_2DFormen.scad
Normal file
128
Lampe_2DFormen.scad
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
|
||||||
|
module top_outer_plate() {
|
||||||
|
difference() {
|
||||||
|
circle(d=lamp_dia);
|
||||||
|
circle(d=screw_dia);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
module top_inner_plate() {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
difference() {
|
||||||
|
circle(d=lamp_dia);
|
||||||
|
circle(d=acryl_outer_dia);
|
||||||
|
}
|
||||||
|
|
||||||
|
circle(d=acryl_inner_dia);
|
||||||
|
}
|
||||||
|
|
||||||
|
union() {
|
||||||
|
for(angle = [0:45:7*45]) {
|
||||||
|
rotate(angle) translate([tooth_distance/2, holder_offset])
|
||||||
|
square([tooth_width, wood_thickness], center=true);
|
||||||
|
rotate(angle) translate([-tooth_distance/2, holder_offset])
|
||||||
|
square([tooth_width, wood_thickness], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
circle(d=screw_dia);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
module cable_holes() {
|
||||||
|
difference() {
|
||||||
|
circle(d = acryl_inner_dia-2*cable_hole_spacing);
|
||||||
|
circle(r = holder_offset + cable_hole_spacing);
|
||||||
|
|
||||||
|
for(angle = [0:45:7*45]) {
|
||||||
|
rotate(angle+22.5)
|
||||||
|
translate([0, lamp_dia/4]) square([cable_hole_spacing, lamp_dia/2], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module box_tooth_holes() {
|
||||||
|
}
|
||||||
|
|
||||||
|
module bottom_inner_plate() {
|
||||||
|
difference() {
|
||||||
|
top_inner_plate();
|
||||||
|
cable_holes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module bottom_outer_plate() {
|
||||||
|
difference() {
|
||||||
|
top_outer_plate();
|
||||||
|
cable_holes();
|
||||||
|
box_wall_tooth_holes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module base_plate() {
|
||||||
|
difference() {
|
||||||
|
top_outer_plate();
|
||||||
|
box_tooth_holes();
|
||||||
|
box_wall_tooth_holes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module ledstrip_holder() {
|
||||||
|
union() {
|
||||||
|
square([holder_width, inner_height], center=true);
|
||||||
|
translate([tooth_distance/2, (inner_height + tooth_height)/2]) square([tooth_width, tooth_height], center=true);
|
||||||
|
translate([-tooth_distance/2, (inner_height + tooth_height)/2]) square([tooth_width, tooth_height], center=true);
|
||||||
|
translate([tooth_distance/2, -(inner_height + tooth_height)/2]) square([tooth_width, tooth_height], center=true);
|
||||||
|
translate([-tooth_distance/2, -(inner_height + tooth_height)/2]) square([tooth_width, tooth_height], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module box_wall() {
|
||||||
|
teeth_topbottom = floor(bottom_box_wall_width / tooth_distance);
|
||||||
|
teeth_right = floor(bottom_box_height / tooth_distance);
|
||||||
|
teeth_left = teeth_right - 1;
|
||||||
|
|
||||||
|
union() {
|
||||||
|
square([bottom_box_wall_width, bottom_box_height], center=true);
|
||||||
|
|
||||||
|
start_pos_tb = -(tooth_distance * teeth_topbottom)/2 + tooth_distance/2;
|
||||||
|
|
||||||
|
for(i = [0:teeth_topbottom-1]) {
|
||||||
|
translate([start_pos_tb + i*tooth_distance, (bottom_box_height + tooth_height)/2])
|
||||||
|
square([tooth_width, tooth_height], center=true);
|
||||||
|
translate([start_pos_tb + i*tooth_distance, -(bottom_box_height + tooth_height)/2])
|
||||||
|
square([tooth_width, tooth_height], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
start_pos_r = -(tooth_distance * teeth_right)/2 + tooth_distance/2;
|
||||||
|
|
||||||
|
for(i = [0:teeth_right-1]) {
|
||||||
|
translate([(bottom_box_wall_width + tooth_width)/2, start_pos_r + i*tooth_distance])
|
||||||
|
square([tooth_height, tooth_width], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
start_pos_l = -(tooth_distance * teeth_left)/2 - tooth_distance/2;
|
||||||
|
|
||||||
|
for(i = [1:teeth_left]) {
|
||||||
|
translate([-(bottom_box_wall_width + tooth_width)/2, start_pos_l + i*tooth_distance])
|
||||||
|
square([tooth_height, tooth_width], center=true);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module box_wall_tooth_holes() {
|
||||||
|
teeth_topbottom = floor(bottom_box_wall_width / tooth_distance);
|
||||||
|
|
||||||
|
start_pos_tb = -(tooth_distance * teeth_topbottom)/2 + tooth_distance/2;
|
||||||
|
|
||||||
|
for(angle = [0:45:7*45]) {
|
||||||
|
rotate(angle)
|
||||||
|
for(i = [0:teeth_topbottom-1]) {
|
||||||
|
translate([start_pos_tb + i*tooth_distance, bottom_box_wall_offset])
|
||||||
|
square([tooth_width, tooth_height], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
29
Lampe_2DPanel.scad
Normal file
29
Lampe_2DPanel.scad
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
include <Lampe_Parameter.scad>;
|
||||||
|
include <Lampe_2DFormen.scad>;
|
||||||
|
|
||||||
|
spacing = 1;
|
||||||
|
|
||||||
|
translate([0, 0]) top_outer_plate();
|
||||||
|
translate([lamp_dia+spacing, 0]) top_inner_plate();
|
||||||
|
translate([2*(lamp_dia+spacing), 0]) bottom_inner_plate();
|
||||||
|
translate([0, lamp_dia+spacing]) bottom_outer_plate();
|
||||||
|
translate([1*(lamp_dia+spacing), lamp_dia+spacing]) base_plate();
|
||||||
|
|
||||||
|
ledstrip_holder_base_pos = [
|
||||||
|
inner_height/2 + tooth_height - lamp_dia/2,
|
||||||
|
1.5*lamp_dia + spacing - holder_width/2];
|
||||||
|
|
||||||
|
|
||||||
|
for(i = [1:8]) {
|
||||||
|
translate(ledstrip_holder_base_pos + [0, i*(spacing + holder_width)])
|
||||||
|
rotate(90) ledstrip_holder();
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([230, 30])
|
||||||
|
rotate(0)
|
||||||
|
for(x = [1:1]) {
|
||||||
|
for(y = [1:8]) {
|
||||||
|
translate([x*(spacing+bottom_box_height+tooth_height*2), y*(spacing + bottom_box_wall_width)])
|
||||||
|
rotate(90) box_wall();
|
||||||
|
}
|
||||||
|
}
|
27
Lampe_Parameter.scad
Normal file
27
Lampe_Parameter.scad
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
wood_thickness = 5;
|
||||||
|
|
||||||
|
acryl_thickness=5;
|
||||||
|
acryl_outer_dia = 100;
|
||||||
|
acryl_inner_dia = 94;
|
||||||
|
lamp_dia = acryl_outer_dia + 10;
|
||||||
|
screw_dia = 6;
|
||||||
|
|
||||||
|
acryl_height = 300;
|
||||||
|
inner_height = acryl_height - 10;
|
||||||
|
|
||||||
|
bottom_box_height = 50;
|
||||||
|
bottom_box_wall_width = 37.5;
|
||||||
|
bottom_box_wall_offset = 48;
|
||||||
|
|
||||||
|
tooth_height = wood_thickness;
|
||||||
|
tooth_width = 5;
|
||||||
|
tooth_distance = 2*tooth_width;
|
||||||
|
|
||||||
|
holder_width = 20;
|
||||||
|
|
||||||
|
holder_offset = holder_width+wood_thickness*1.6;
|
||||||
|
|
||||||
|
cable_hole_spacing = tooth_width;
|
||||||
|
|
||||||
|
$fn=50;
|
||||||
|
|
Loading…
Reference in a new issue