Compare commits
No commits in common. "edefeee8866600f29c0b8b84dbcbf4a28fd0856c" and "2572c7af6edc94af0fbebd37b591473fe1507bb1" have entirely different histories.
edefeee886
...
2572c7af6e
|
@ -36,10 +36,10 @@ module panel(){
|
||||||
translate([0,0,-q])cylinder(d=magnet_dia,h=magnet_h);
|
translate([0,0,-q])cylinder(d=magnet_dia,h=magnet_h);
|
||||||
}
|
}
|
||||||
if (magnet_count>1){
|
if (magnet_count>1){
|
||||||
for (m=[0:360/magnet_count:360]){
|
for (m=[1:360/magnet_count:359]){
|
||||||
rotate([0,0,m]){
|
rotate([0,0,m]){
|
||||||
translate([panel_dia/4,0,-q]){
|
translate([panel_dia/4,0,-q]){
|
||||||
#cylinder(d=magnet_dia,h=magnet_h);
|
cylinder(d=magnet_dia,h=magnet_h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,106 +0,0 @@
|
||||||
/*
|
|
||||||
Case for LED-Matrix of the KITT-Voice-Assistant
|
|
||||||
by zeus - 2024-08-17 - CC-BY-SA-NC-4.0
|
|
||||||
https://git.kostianix.de/zeus/3d-stuff/src/branch/main/openscad/own/kitt-matrix
|
|
||||||
*/
|
|
||||||
|
|
||||||
// ##########################################
|
|
||||||
// VARS:
|
|
||||||
$fn=25; // overall render quality
|
|
||||||
q=0.01; // only used to get rid of visual glitches. can be set to 0 for productive exports.
|
|
||||||
mt=9; // material thickness, NOT overall thickness in case of a rim!
|
|
||||||
pt=3; // panel thickness
|
|
||||||
mt_inner=2; // constrained wall thickness for inside-walls between LEDs
|
|
||||||
panel_w=67; // overall width of led panel
|
|
||||||
panel_h=66; // same for height
|
|
||||||
panel_t_pcb=1.5; // height of PCB
|
|
||||||
panel_t_led=1.5; // height of the soldered LED modules
|
|
||||||
panel_t=(panel_t_pcb+panel_t_led); // overall thickness of the PCB+LEDs (~50:50)
|
|
||||||
led_spacing_x=8.5; // center-to-center spacing from LED to next LED, in width/x-axis-direction
|
|
||||||
led_spacing_y=8; // same for height/Y-axis
|
|
||||||
led_w=4.5+1.5;
|
|
||||||
led_h=5+1;
|
|
||||||
led_num_x=8;
|
|
||||||
led_num_y=8;
|
|
||||||
offset_left=((panel_w-((led_num_x*led_w)+((led_num_x-1)*(led_spacing_x-led_w))))/2); // offset on one side (effectively "panel_w-e2e_x/2", but properly calculated)
|
|
||||||
offset_top= ((panel_h-((led_num_y*led_h)+((led_num_y-1)*(led_spacing_y-led_h))))/2); // offset on one side (effectively "panel_h-e2e_y/2", but properly calculated)
|
|
||||||
|
|
||||||
e2e_x=64; // width/x-axis edge-to-edge-distance from beginning of first to end of last LED (LED-Case, not soldering-points). for reference only
|
|
||||||
e2e_y=61.75; // same for height/Y-axis
|
|
||||||
|
|
||||||
conhole_d=4; // connection hole between frame parts
|
|
||||||
conhole_taper_h=2; // is this needed?
|
|
||||||
conhole_i_d=2.75; // should fit M3
|
|
||||||
conhole_offset=3.5; //offset from outer perimeter
|
|
||||||
cutout_w=10;
|
|
||||||
//echo("offset left is ",offset_left);
|
|
||||||
//echo("offset top is ",offset_top);
|
|
||||||
|
|
||||||
|
|
||||||
// ##########################################
|
|
||||||
|
|
||||||
// MODULES:
|
|
||||||
|
|
||||||
module panel(){
|
|
||||||
// PCB:
|
|
||||||
cube([panel_w,panel_h,panel_t_pcb+q],center=true);
|
|
||||||
// overcomplicated "for" to determine the exact positions of the LEDs on the board.
|
|
||||||
// The LEDs themselves are not needed for rendering
|
|
||||||
// LEDs:
|
|
||||||
/*
|
|
||||||
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[0:led_spacing_y:led_spacing_y*(led_num_y-1)])
|
|
||||||
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_led])color( "#ff0000" )cube([led_w,led_h,panel_t_led],center=true);
|
|
||||||
*/
|
|
||||||
// "lightpipes":
|
|
||||||
// left column (span 2 wide each)
|
|
||||||
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[0:led_spacing_y])
|
|
||||||
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_pcb+panel_t_led*1.5])color( "#00ff00" )cube([led_w,led_h,panel_t_led*4+q],center=true);
|
|
||||||
// center column (span 2 wide each)
|
|
||||||
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[led_spacing_y*3:led_spacing_y*4])
|
|
||||||
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_pcb+panel_t_led*1.5])color( "#00ff00" )cube([led_w,led_h,panel_t_led*4+q],center=true);
|
|
||||||
// right column (span 2 wide each)
|
|
||||||
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[led_spacing_y*6:led_spacing_y*7])
|
|
||||||
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_pcb+panel_t_led*1.5])color( "#00ff00" )cube([led_w,led_h,panel_t_led*4+q],center=true);
|
|
||||||
// smaller inbetween columns (span 1 wide each)
|
|
||||||
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[led_spacing_y*2,led_spacing_y*5])
|
|
||||||
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_pcb+panel_t_led*1.5])color( "#00ff00" )cube([led_w,led_h,panel_t_led*4+q],center=true);
|
|
||||||
|
|
||||||
}
|
|
||||||
module panelholder(){
|
|
||||||
translate([0,0,panel_t_pcb])difference(){
|
|
||||||
cube([panel_w+mt,panel_h+mt,(panel_t+(panel_t_pcb+panel_t_led*2))],center=true);
|
|
||||||
translate([0,0,-(panel_t_pcb+panel_t_led)])
|
|
||||||
panel();
|
|
||||||
//translate([0,0,-panel_t_led*3])cube([panel_w,panel_h,(panel_t+(panel_t_led*3))],center=true);
|
|
||||||
// screwholes for M3
|
|
||||||
for (
|
|
||||||
pos_x=[-(panel_w+mt)/2+conhole_offset,
|
|
||||||
(panel_w+mt)/2-conhole_offset],
|
|
||||||
pos_y=[-(panel_h+mt)/2+conhole_offset,
|
|
||||||
(panel_h+mt)/2-conhole_offset]
|
|
||||||
)
|
|
||||||
translate([pos_x,pos_y,-1])
|
|
||||||
#cylinder(d=conhole_i_d,h=(panel_t+(panel_t_led*3)+q),center=true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module panelframe(){
|
|
||||||
translate([0,0,panel_t_pcb])difference(){
|
|
||||||
cube([panel_w+mt,panel_h+mt,(panel_t+(panel_t_led*8))],center=true);
|
|
||||||
translate([cutout_w/2,0,pt])cube([panel_w-(offset_left*2)+cutout_w,panel_h-(offset_top*2),(panel_t+(panel_t_led*8))+q],center=true);
|
|
||||||
for (
|
|
||||||
pos_x=[-(panel_w+mt)/2+conhole_offset,
|
|
||||||
(panel_w+mt)/2-conhole_offset],
|
|
||||||
pos_y=[-(panel_h+mt)/2+conhole_offset,
|
|
||||||
(panel_h+mt)/2-conhole_offset])
|
|
||||||
{
|
|
||||||
translate([pos_x,pos_y,0])cylinder(d=conhole_d,h=(panel_t+(panel_t_led*8))+q,center=true);
|
|
||||||
translate([pos_x,pos_y,-(panel_t+(panel_t_led*8))/2+conhole_taper_h/2])cylinder(d2=conhole_d,d1=conhole_d*1.5,h=conhole_taper_h+q,center=true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ##########################################
|
|
||||||
|
|
||||||
// DRAW MODEL:
|
|
||||||
panelholder();
|
|
||||||
translate([0,0,-(panel_t+(panel_t_led*3))-50])panelframe();
|
|
Binary file not shown.
Loading…
Reference in New Issue