From 7a1b6fd5020d7f0adedf3786b2ff6e2f2621b180 Mon Sep 17 00:00:00 2001 From: Thomas Kolb Date: Mon, 11 Nov 2019 22:55:27 +0100 Subject: [PATCH] Initial commit: complete, but untuned model --- Lampe.scad | 32 +++++++++++ Lampe_2DFormen.scad | 128 +++++++++++++++++++++++++++++++++++++++++++ Lampe_2DPanel.scad | 29 ++++++++++ Lampe_Parameter.scad | 27 +++++++++ 4 files changed, 216 insertions(+) create mode 100644 Lampe.scad create mode 100644 Lampe_2DFormen.scad create mode 100644 Lampe_2DPanel.scad create mode 100644 Lampe_Parameter.scad diff --git a/Lampe.scad b/Lampe.scad new file mode 100644 index 0000000..4c957d9 --- /dev/null +++ b/Lampe.scad @@ -0,0 +1,32 @@ +include ; +include ; + +// 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(); +} diff --git a/Lampe_2DFormen.scad b/Lampe_2DFormen.scad new file mode 100644 index 0000000..cf8393a --- /dev/null +++ b/Lampe_2DFormen.scad @@ -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); + } + } +} diff --git a/Lampe_2DPanel.scad b/Lampe_2DPanel.scad new file mode 100644 index 0000000..08e2b9e --- /dev/null +++ b/Lampe_2DPanel.scad @@ -0,0 +1,29 @@ +include ; +include ; + +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(); + } +} diff --git a/Lampe_Parameter.scad b/Lampe_Parameter.scad new file mode 100644 index 0000000..fa5d0d3 --- /dev/null +++ b/Lampe_Parameter.scad @@ -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; +