reorder supermicro-sc808t stuff
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								openscad/own/supermicro_sc808t/io-shield/IMG/io-shield-blank.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openscad/own/supermicro_sc808t/io-shield/IMG/io-shield-blank.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 44 KiB | 
							
								
								
									
										
											BIN
										
									
								
								openscad/own/supermicro_sc808t/io-shield/IMG/io-shield-ports.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openscad/own/supermicro_sc808t/io-shield/IMG/io-shield-ports.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 52 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 60 KiB | 
							
								
								
									
										
											BIN
										
									
								
								openscad/own/supermicro_sc808t/io-shield/STL/io-shield-blank.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openscad/own/supermicro_sc808t/io-shield/STL/io-shield-blank.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								openscad/own/supermicro_sc808t/io-shield/STL/io-shield-ports.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openscad/own/supermicro_sc808t/io-shield/STL/io-shield-ports.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										217
									
								
								openscad/own/supermicro_sc808t/io-shield/io-shield.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										217
									
								
								openscad/own/supermicro_sc808t/io-shield/io-shield.scad
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,217 @@ | ||||
| // 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/own/supermicro_sc808t/ | ||||
| // ##################################### | ||||
| // 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_tab_emboss_l2=shield_tab_emboss_l/2; // length of the side cutouts | ||||
|  | ||||
| shield_holes=1; // draw holes if >0. the perimeter-holes are manually placed, and should be disabled, if many vars get altered! (and then drilled manually) | ||||
| shield_hole_d1=2.75; | ||||
| shield_hole_d2=shield_hole_d1+0.5; // slightly conical holes for better inserting | ||||
| // 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_grill_w=3; | ||||
| m_grill_h=shield_h*0.75-m_grill_w-2*mt; | ||||
| m_grill_skew=25; | ||||
| m_grill_offset=5; | ||||
| m_grill_spacing=m_grill_w; | ||||
| //port ethernet: | ||||
| p_eth_hole_dist=27.5; | ||||
| p_eth_hole_dia=3.5; | ||||
| p_eth_slack=0.5; | ||||
| p_eth_base_x=22+p_eth_slack; | ||||
| p_eth_base_y=21.75+p_eth_slack; | ||||
| p_eth_cut_x=16+p_eth_slack; | ||||
| p_eth_cut_y=13.15+p_eth_slack; | ||||
| p_eth_cut_z=mt; | ||||
| p_eth_cut_x_offset=0; | ||||
| p_eth_cut_y_offset=1.5; | ||||
| //port usb: | ||||
| p_usb_hole_dist=30; | ||||
| p_usb_hole_dia=3.5; | ||||
| p_usb_slack=0.5; | ||||
| p_usb_base_x=23+p_eth_slack; | ||||
| p_usb_base_y=16.5+p_eth_slack; | ||||
| p_usb_cut_x=16+p_eth_slack; | ||||
| p_usb_cut_y=15+p_eth_slack; | ||||
| p_usb_cut_z=mt; | ||||
| p_usb_cut_x_offset=0; | ||||
| p_usb_cut_y_offset=0; | ||||
| //port vga: | ||||
| p_vga_hole_dist=25; | ||||
| p_vga_hole_dia=3.5; | ||||
| p_vga_slack=0.5; | ||||
| p_vga_base_x=34+p_eth_slack; | ||||
| p_vga_base_y=15.25+p_eth_slack; | ||||
| p_vga_cut_x=16+p_eth_slack; | ||||
| p_vga_cut_y=8+p_eth_slack; | ||||
| p_vga_cut_z=mt; | ||||
| p_vga_cut_x_offset=0; | ||||
| p_vga_cut_y_offset=0; | ||||
| //port slot: | ||||
| p_slot_hole_dist=27.5; | ||||
| p_slot_hole_dia=7.5; | ||||
| // ##################################### | ||||
| // MODEL: | ||||
| // mounting holes around the shield perimeter | ||||
| module port_ethernet(){ | ||||
|     cube([p_eth_base_x,p_eth_base_y,mt],center=true); | ||||
|     translate([p_eth_cut_x_offset,p_eth_cut_y_offset,p_eth_cut_z+mt/2])cube([p_eth_cut_x,p_eth_cut_y,p_eth_cut_z+mt],center=true); | ||||
|     hull(){ | ||||
|         translate([-p_eth_hole_dist/2,0,0])cylinder(d=p_eth_hole_dia+mt,h=mt,center=true); | ||||
|         translate([p_eth_hole_dist/2,0,0])cylinder(d=p_eth_hole_dia+mt,h=mt,center=true); | ||||
|    } | ||||
|    translate([-p_eth_hole_dist/2,0,mt*1.5])cylinder(d=p_eth_hole_dia,h=mt*2,center=true); | ||||
|    translate([p_eth_hole_dist/2,0,mt*1.5])cylinder(d=p_eth_hole_dia,h=mt*2,center=true); | ||||
| } | ||||
|  | ||||
| module port_usb(){ | ||||
|     cube([p_usb_base_x,p_usb_base_y,mt],center=true); | ||||
|     translate([p_usb_cut_x_offset,p_usb_cut_y_offset,p_usb_cut_z+mt/2])cube([p_usb_cut_x,p_usb_cut_y,p_usb_cut_z+mt],center=true); | ||||
|     hull(){ | ||||
|         translate([-p_usb_hole_dist/2,0,0])cylinder(d=p_usb_hole_dia+mt,h=mt,center=true); | ||||
|         translate([p_usb_hole_dist/2,0,0])cylinder(d=p_usb_hole_dia+mt,h=mt,center=true); | ||||
|    } | ||||
|    translate([-p_usb_hole_dist/2,0,mt*1.5])cylinder(d=p_usb_hole_dia,h=mt*2,center=true); | ||||
|    translate([p_usb_hole_dist/2,0,mt*1.5])cylinder(d=p_usb_hole_dia,h=mt*2,center=true); | ||||
| } | ||||
|  | ||||
| module port_vga(){ | ||||
|     cube([p_vga_base_x,p_vga_base_y,mt],center=true); | ||||
|     translate([p_vga_cut_x_offset,p_vga_cut_y_offset,p_vga_cut_z+mt/2])cube([p_vga_cut_x,p_vga_cut_y,p_vga_cut_z+mt],center=true); | ||||
|     hull(){ | ||||
|         translate([-p_vga_hole_dist/2,0,0])cylinder(d=p_vga_hole_dia+mt,h=mt,center=true); | ||||
|         translate([p_vga_hole_dist/2,0,0])cylinder(d=p_vga_hole_dia+mt,h=mt,center=true); | ||||
|    } | ||||
|    translate([-p_vga_hole_dist/2,0,mt*1.5])cylinder(d=p_vga_hole_dia,h=mt*2,center=true); | ||||
|    translate([p_vga_hole_dist/2,0,mt*1.5])cylinder(d=p_vga_hole_dia,h=mt*2,center=true); | ||||
| } | ||||
|  | ||||
| module port_slot(){ | ||||
|     hull(){ | ||||
|         translate([-p_slot_hole_dist/2,0,mt])cylinder(d=p_slot_hole_dia,h=mt*2,center=true); | ||||
|         translate([p_slot_hole_dist/2,0,mt])cylinder(d=p_slot_hole_dia,h=mt*2,center=true); | ||||
|     } | ||||
| } | ||||
| 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]){  | ||||
|             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);// top edge-cutout | ||||
|         } | ||||
|         for(x=[-shield_w/2+shield_tab_emboss_d/2,shield_w/2-shield_tab_emboss_d/2]){  | ||||
|             translate([x,shield_h/2-shield_tab_emboss_l2/2,0])cube([shield_tab_emboss_d+q,shield_tab_emboss_l2+q,shield_d+q],center=true);// side edge-cutout | ||||
|         } | ||||
|  | ||||
|   } | ||||
|         for(x=[-shield_w/2+shield_tab_emboss_l/2+mt,shield_w/2-shield_tab_emboss_l/2-mt]){  | ||||
|             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 top edge-cutout | ||||
|         for(x=[-shield_w/2+shield_tab_emboss_d/2+shield_tab_emboss_d+mt/2,shield_w/2-shield_tab_emboss_d/2-shield_tab_emboss_d-mt/2]){  | ||||
|             translate([x,shield_h/2-shield_tab_emboss_l2/2-mt,0])cube([shield_tab_emboss_d+q,shield_tab_emboss_l2+q,shield_d+q],center=true);// supportblock for side 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 some holes | ||||
| module shield_2(){ | ||||
|     difference(){ | ||||
|         shield_1(); | ||||
|         if (shield_holes>0) { | ||||
|             // some holes all around, (left, than clockwise, viewed from behind). THESE ARE MANUALLY PLACED! | ||||
|             // 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+4.5,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+29.5,shield_h/2-mt/2,4.4,-90,0); //top side, 2nd from left  | ||||
|             shield_hole(-shield_w/2+mt/2+147,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+171.5,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+172.5,-shield_h/2+mt/2,4.25,90,0); // bottom side, 1st one from right | ||||
|             shield_hole(-shield_w/2+mt/2+56.25,-shield_h/2+mt/2,4.25,90,0); //bottom side, 2nd one from right | ||||
|             shield_hole(-shield_w/2+mt/2+4.5,-shield_h/2+mt/2,4.25,90,0); //bottom side, 3rd one from right | ||||
|         } | ||||
|     } | ||||
| } | ||||
| // final interation: with fan-grills | ||||
| module shield_grill(){ | ||||
|     difference(){ | ||||
|         shield_2();  | ||||
|         for(a=[0:m_grill_spacing*2:shield_w/2-mt*3-m_grill_offset*3]){ | ||||
|         translate([-shield_w/2+mt*3+m_grill_offset+a,0,-shield_d/2+mt/2+q]){ | ||||
|             hull(){ | ||||
|                 for (y=[-m_grill_h/2,m_grill_h/2]){ | ||||
|                     rotate([0,0,-m_grill_skew])translate([0,y,0])cylinder(d=m_grill_w,h=2*mt,center=true); | ||||
|                 } | ||||
|             } | ||||
|             translate([shield_w/2,0,0])hull(){ | ||||
|                 for (y=[-m_grill_h/2,m_grill_h/2]){ | ||||
|                     rotate([0,0,-m_grill_skew])translate([0,y,0])cylinder(d=m_grill_w,h=2*mt,center=true); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     } | ||||
| } | ||||
| // final iteration: with ports (manual placement) | ||||
| module shield_ports(){ | ||||
|     difference(){ | ||||
|         shield_2(); | ||||
|         for (x=[-66,-39,-8,8,38.5,47.5,80]){ | ||||
|             translate([x,0,-3*mt-q])rotate([0,0,90])#port_slot(); | ||||
|         }         | ||||
| //flipped and embossed so that only 1mm of the plate thickness is left, due to the way, d-sub is mounted, and no support is needed for printing | ||||
|         translate([-78,-1,-mt-(mt-1)])rotate([180,0,-90])#port_vga();         | ||||
|         translate([-52.5,0,-3*mt-q])rotate([0,0,-90])#port_usb();         | ||||
|         translate([-23,-1,-3*mt-q])rotate([0,0,-90])#port_ethernet(); | ||||
|         translate([22.5,-1,-3*mt-q])rotate([0,0,-90])#port_ethernet(); | ||||
|         translate([63.5,-1,-3*mt-q])rotate([0,0,-90])#port_ethernet(); | ||||
|         // slots | ||||
|     } | ||||
| } | ||||
| // ##################################### | ||||
| // DRAWING: | ||||
|  | ||||
| shield_grill(); | ||||
|  | ||||
| // shield_ports(); | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user