added io-shield and dryfit-test
parent
d0b46b53dd
commit
f1c09f1331
|
@ -0,0 +1,110 @@
|
|||
// supermicro SC808 (and others) I/O-Shields to be able to utilize mITX-boards with extenation-cords that allow for Surface-Mounting
|
||||
// by zeus - 2022-09-11 - CC-BY-NC-SA-4.0 - https://git.kostianix.de/zeus/3d-stuff/openscad/
|
||||
// #####################################
|
||||
// VARS:
|
||||
// #####################################
|
||||
mt=2;
|
||||
q=0.01; //used as variable to remove manifold-glitches in preview. can be set to "0" in final version
|
||||
$fn=100;
|
||||
// shield:
|
||||
shield_w=178; // let's hope that fits onto my delta...
|
||||
shield_h=41;
|
||||
shield_d=10; //around 11.5 in the original, but that is not needed
|
||||
shield_tab_emboss_d=1; // that lowered lip, that the central and outer tabs mounts onto, 1mm (or one sheet-thickness) lower than the rest
|
||||
shield_tab_emboss_l=22; // length of the above described cutouts
|
||||
shield_holes=1; // draw holes if >0
|
||||
shield_hole_d1=2.75;
|
||||
shield_hole_d2=shield_hole_d1+0.5; // conical holes
|
||||
// for separating the shield into two halves
|
||||
shield_center_slot=1; // draw slot if >0
|
||||
shield_center_slot_w=0.5;
|
||||
shield_hole_center_dia=4;
|
||||
shield_hole_center_dist=shield_h/2;
|
||||
// model "gril":
|
||||
m_gril_h=shield_h-3*mt;
|
||||
m_gril_w=mt;
|
||||
m_gril_angle=15;
|
||||
m_gril_spacing=m_gril_w;
|
||||
|
||||
// #####################################
|
||||
// MODEL:
|
||||
// mounting holes around the shield perimeter
|
||||
module shield_hole(x,y,z,rotx,roty){
|
||||
translate([x,y,shield_d/2-z])rotate([rotx,roty,0])#cylinder(d1=shield_hole_d1,d2=shield_hole_d2,h=mt+q,center=true);
|
||||
}
|
||||
// basic shield
|
||||
module shield(){
|
||||
difference(){
|
||||
cube([shield_w,shield_h,shield_d],center=true); // basebox
|
||||
translate([0,0,mt/2+q])cube([shield_w-2*mt,shield_h-2*mt,shield_d-mt],center=true); // main hollowing
|
||||
for(x=[-shield_w/2+shield_tab_emboss_l/2,shield_w/2-shield_tab_emboss_l/2]){ // tab-cutout
|
||||
translate([x,shield_h/2-shield_tab_emboss_d/2,0])cube([shield_tab_emboss_l+q,shield_tab_emboss_d+q,shield_d+q],center=true);// supportblock for edge-cutout
|
||||
}
|
||||
if (shield_holes>0) {
|
||||
// some holes all around, (left, than clockwise, viewed from behind)
|
||||
// shield_hole(x,y,z,rotx,roty), "z" is the distance from lip-edge to the center of the hole, x is from center
|
||||
shield_hole(-shield_w/2+mt/2,-0.5,4,0,-90); //left side
|
||||
shield_hole(-shield_w/2+mt/2+6,shield_h/2-shield_tab_emboss_d-mt/2-q*0.5,6.25,-90,0); //top side, 1st from left (recessed)
|
||||
shield_hole(-shield_w/2+mt/2+30.5,shield_h/2-mt/2,4.4,-90,0); //top side, 2nd from left
|
||||
shield_hole(-shield_w/2+mt/2+148.5,shield_h/2-mt/2,4.4,-90,0); //top side, 3rd from left
|
||||
shield_hole(-shield_w/2+mt/2+162,shield_h/2-shield_tab_emboss_d-mt/2-q*0.5,5.5,-90,0); //top side, 4th from left (recessed)
|
||||
shield_hole(-shield_w/2+mt/2+173,shield_h/2-shield_tab_emboss_d-mt/2-q*0.5,6.25,-90,0); //top side, 5th from left (recessed)
|
||||
shield_hole(shield_w/2-mt/2,-0.5,4,0,90); //right side
|
||||
shield_hole(-shield_w/2+mt/2+173,-shield_h/2+mt/2,4.25,90,0); // bottom side, 1st one from right
|
||||
shield_hole(-shield_w/2+mt/2+57.75,-shield_h/2+mt/2,4.25,90,0); //bottom side, 2nd one from right
|
||||
shield_hole(-shield_w/2+mt/2+6,-shield_h/2+mt/2,4.25,90,0); //bottom side, 3rd one from right
|
||||
}
|
||||
}
|
||||
for(x=[-shield_w/2+shield_tab_emboss_l/2+mt/2,shield_w/2-shield_tab_emboss_l/2-mt/2]){ // tab-cutout support-structure
|
||||
translate([x,shield_h/2-shield_tab_emboss_d/2-mt,0])cube([shield_tab_emboss_l+mt+q,shield_tab_emboss_d+q,shield_d+q],center=true);// supportblock for edge-cutout
|
||||
}
|
||||
cube([mt*4,shield_h,shield_d],center=true); // central support-block
|
||||
}
|
||||
|
||||
// first iteration: optional slotting
|
||||
module shield_1(){
|
||||
if (shield_center_slot>0) { // generate slot and matching connection-holes in the center
|
||||
difference(){
|
||||
shield();
|
||||
#cube([shield_center_slot_w,shield_h+q,shield_d+q],center=true);
|
||||
for(y=[-shield_hole_center_dist/2,shield_hole_center_dist/2]){
|
||||
translate([0,y,mt/2])rotate([0,90,0])#cylinder(d=shield_hole_center_dia,h=mt*4+q,center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else shield();
|
||||
}
|
||||
|
||||
// second iteration: add "modules"
|
||||
module shield_2(){
|
||||
difference(){
|
||||
shield_1();
|
||||
}
|
||||
}
|
||||
// #####################################
|
||||
// DRAWING:
|
||||
|
||||
difference(){
|
||||
shield_1();
|
||||
translate([0,0,6])cube([200,100,5],center=true);
|
||||
translate([0,0,-5.45])cube([200,100,5],center=true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue