added own OpenScad models

This commit is contained in:
zeus86
2020-10-11 02:27:48 +02:00
parent c03b4f7da6
commit c0c916ae12
237 changed files with 860987 additions and 0 deletions

View File

@@ -0,0 +1,146 @@
// volumio hifi-pi-case
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
// -> https://www.thingiverse.com/zeus
// -> https://github.com/zeus86
// 2015-03-09
//======================================================================
//DEFINITIONS
$fn=150;
case_w=155;
case_h=100;
case_d_top=15;
case_d_bottom=30;
case_d=case_d_top+case_d_bottom;
mt=2.5;
hole_dia_o=4.5;
hole_dia_i=3;
standoff_h=6;
standoff_space_w=55;
standoff_space_h=25;
io_cut_w=40;
io_cut_h=15;
io_tray_l=25;
io_vert_offset=2.5;
dac_jack_dia=6.2;
dac_jack_t=1.5;
dac_jack_offset=11.5;
usb_plug_w=11.5;
usb_plug_h=10;
usb_offset=usb_plug_w*0.75;
disp_cut_w=100;
disp_cut_h=41;
disp_hole_dist_x=94;
disp_hole_dist_y=56;
clip_w=10;
clip_d=mt*2;
clip_h=15;
clip_dia=mt;
//======================================================================
//DRAWING
case_b();
rotate([0,180,0])translate([0,0,-case_d_top*3])case_t();
translate([0,-case_h/2-dac_jack_t/2,case_d_bottom/2+io_cut_h/2]) io_tray();
//======================================================================
//MODULES
module standoff(){
translate([0,0,standoff_h/2+mt]){
difference(){
cylinder(r1=hole_dia_o/1.33,r2=hole_dia_o/2,h=standoff_h,center=true);
cylinder(r=hole_dia_i/2,h=standoff_h+0.1,center=true);
}
}
}
module io_tray(){
difference(){
cube([io_cut_w+hole_dia_i*6,dac_jack_t,io_cut_h+hole_dia_i*2],center=true); //frontplate
for (x=[-dac_jack_offset/2+dac_jack_dia/2,-2*dac_jack_offset/2-dac_jack_dia/2])translate([x,0,io_vert_offset])rotate([90,0,0])cylinder(r=dac_jack_dia/2+0.1,h=mt+0.1,center=true); //DAC-Holes
translate([usb_plug_w/2+usb_offset,0,io_vert_offset])cube([usb_plug_w,dac_jack_t+0.1,usb_plug_h],center=true); // usb-plug
for (x=[-io_cut_w/2-hole_dia_i*2,io_cut_w/2+hole_dia_i*2])translate([x,0,0])rotate([90,0,0])cylinder(r=hole_dia_i/2+0.1,h=dac_jack_t+0.1,center=true); //mount holes
}
difference(){
translate([-io_cut_w/6,io_tray_l/2+dac_jack_t/2,-io_cut_h/2+mt])cube([io_cut_w*0.66-1,io_tray_l,mt],center=true); //tray-baseplate
//ziptie-holes
hull()for (x=[io_tray_l*0.25,io_tray_l*0.75])translate([-io_cut_w/3,x,-io_cut_h/2+mt])cylinder(r=hole_dia_i/2,h=mt+0.1,center=true);
hull()for (x=[io_tray_l*0.25,io_tray_l*0.75])translate([0,x,-io_cut_h/2+mt])cylinder(r=hole_dia_i/2,h=mt+0.1,center=true);
hull()for (x=[io_tray_l*0.25,io_tray_l*0.75])translate([io_cut_w/3,x,-io_cut_h/2+mt])cylinder(r=hole_dia_i/2,h=mt+0.1,center=true);
}
}
module clip(){
translate([0,0,-mt])cube([clip_w,clip_d,clip_h+case_d_top-mt*2],center=true);
rotate([0,90,0])translate([-clip_h+mt*2,0,0])scale([1,2,1])cylinder(r=clip_dia,h=clip_w,center=true);
}
module hanger(){
hull(){
translate([hole_dia_o,0,0])cylinder(r=hole_dia_o/2,h=mt+0.1,center=true);
translate([-hole_dia_o,0,0])cylinder(r=hole_dia_o/2,h=mt+0.1,center=true);
}
hull(){
translate([0,-hole_dia_o,0])cylinder(r=hole_dia_o/2,h=mt+0.1,center=true);
translate([0,hole_dia_o,0])cylinder(r=hole_dia_o/2,h=mt+0.1,center=true);
}
}
module case_b(){
difference(){
translate([0,0,case_d_bottom/2])cylinder(r=case_w/2,h=case_d_bottom, center=true); //outer ring
translate([0,0,case_d_bottom/2+mt/2])cylinder(r=case_w/2-mt,h=case_d_bottom-mt+0.1, center=true); //inner ring
translate([0,-case_h,case_d_bottom/2])cube([case_w,case_h,case_d_bottom+0.1],center=true); //bottom cut
translate([0,case_h,case_d_bottom/2])cube([case_w,case_h,case_d_bottom+0.1],center=true); //top cut
for (x=[-case_w/3,case_w/3]){
translate([x,case_h/10,mt/2])hanger(); //wall hangers
}
}
difference(){
translate([0,0,case_d_bottom/2])cube([case_w*(case_w/case_h)/2-mt,case_h,case_d_bottom],center=true); //inner cube cut
translate([0,0,case_d_bottom/2])cube([case_w+0.1,case_h-mt*2,case_d_bottom+0.1],center=true); //inner cube cut
translate([0,-case_h/2+mt/2,case_d_bottom/2+io_cut_h/2+0.1]){
cube([io_cut_w,mt+0.1,io_cut_h],center=true); //I/O cutout
for (x=[-io_cut_w/2-hole_dia_i*2,io_cut_w/2+hole_dia_i*2]){
translate([x,0,0]){
rotate([90,0,0])cylinder(r=hole_dia_i/2+0.1,h=mt+0.1,center=true);
}
}
}
for (x=[-disp_hole_dist_x/2,disp_hole_dist_x/2],y=[-case_h/2+mt/2,case_h/2-mt/2]){
translate([x,y,clip_h/2+case_d_top/2+mt]) cube([clip_w+0.1,mt+0.1,clip_d*1.25],center=true); //clip holes
}
}
for (x=[-standoff_space_w/2,standoff_space_w/2],y=[-standoff_space_h/2,standoff_space_h/2]){
translate([x,y,0])standoff(); //pi standoffs
}
}
module case_t(){
difference(){
translate([0,0,case_d_top/2])cylinder(r=case_w/2,h=case_d_top, center=true); //outer ring
translate([0,0,case_d_top/2+mt/2])cylinder(r=case_w/2-mt,h=case_d_top-mt+0.1, center=true); //inner ring
translate([0,-case_h,case_d_top/2])cube([case_w,case_h,case_d_top+0.1],center=true); //bottom cut
translate([0,case_h,case_d_top/2])cube([case_w,case_h,case_d_top+0.1],center=true); //top cut
translate([0,0,mt/2])cube([disp_cut_w,disp_cut_h,mt+0.1],center=true); //display-hole
}
difference(){
translate([0,0,case_d_top/2])cube([case_w*(case_w/case_h)/2-mt,case_h,case_d_top],center=true); //inner cube cut
translate([0,0,case_d_top/2])cube([case_w+0.1,case_h-mt*2,case_d_top+0.1],center=true); //inner cube cut
}
for (x=[-disp_hole_dist_x/2,disp_hole_dist_x/2],y=[-disp_hole_dist_y/2,disp_hole_dist_y/2]){
translate([x,y,0])standoff(); //standoffs for display (hd44780, 20x04)
}
for (x=[-disp_hole_dist_x/2,disp_hole_dist_x/2],y=[-case_h/2+mt+clip_d/2,case_h/2-mt-clip_d/2]){
translate([x,y,clip_h/2+case_d_top/2+mt]) clip(); //clips
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff