From edefeee8866600f29c0b8b84dbcbf4a28fd0856c Mon Sep 17 00:00:00 2001 From: zeus Date: Sat, 17 Aug 2024 20:34:19 +0200 Subject: [PATCH] added kitt matrix --- openscad/own/kitt-matrix/src/kitt-matrix.scad | 106 ++++++++++++++++++ .../kitt-matrix/stl/kitt-matrix_draft1.stl | Bin 0 -> 103084 bytes 2 files changed, 106 insertions(+) create mode 100644 openscad/own/kitt-matrix/src/kitt-matrix.scad create mode 100644 openscad/own/kitt-matrix/stl/kitt-matrix_draft1.stl diff --git a/openscad/own/kitt-matrix/src/kitt-matrix.scad b/openscad/own/kitt-matrix/src/kitt-matrix.scad new file mode 100644 index 0000000..eea936e --- /dev/null +++ b/openscad/own/kitt-matrix/src/kitt-matrix.scad @@ -0,0 +1,106 @@ +/* +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(); \ No newline at end of file diff --git a/openscad/own/kitt-matrix/stl/kitt-matrix_draft1.stl b/openscad/own/kitt-matrix/stl/kitt-matrix_draft1.stl new file mode 100644 index 0000000000000000000000000000000000000000..8e606fef303d1d9a864dfea409904c37cdf7b80a GIT binary patch literal 103084 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 UOM8nH4G{K=@~W5A{2=WA1JDUi)c^nh literal 0 HcmV?d00001