added Variant with Ports

main
zeus 2022-09-13 11:23:01 +02:00
parent eb67f83ff7
commit beb92d38e0
5 changed files with 98 additions and 19 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

View File

@ -14,7 +14,7 @@ shield_tab_emboss_d=1; // that lowered lip, that the central and outer tabs moun
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
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
@ -28,10 +28,84 @@ 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=4.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=4.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=4.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=15.75+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=30;
p_slot_hole_dia=mt*3;
// #####################################
// 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);
}
@ -76,7 +150,7 @@ module shield_2(){
difference(){
shield_1();
if (shield_holes>0) {
// some holes all around, (left, than clockwise, viewed from behind)
// 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)
@ -111,27 +185,32 @@ module shield_grill(){
}
}
}
// final iteration: with ports (manual placement)
module shield_ports(){
difference(){
shield_2();
translate([-75,-1,-3*mt-q])rotate([0,0,-90])#port_ethernet();
translate([-37.5,-1,-3*mt-q])rotate([0,0,-90])#port_ethernet();
translate([22.5,-1,-3*mt-q])rotate([0,0,-90])#port_ethernet();
translate([50,0,-3*mt-q])rotate([0,0,-90])#port_usb();
//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([75,-1,-mt-(mt-1)])rotate([180,0,-90])port_vga();
// slots
for (x=[-60,-52.5,-22.5,-15,-7.5,7.5,37.5,62.5]){
translate([x,0,-3*mt-q])rotate([0,0,90])#port_slot();
}
}
}
// #####################################
// DRAWING:
//difference(){
shield_grill();
// translate([0,0,6])cube([200,100,5],center=true);
// translate([0,0,-5.45])cube([200,100,5],center=true);
//}
// todo:
// shield holes durchgängig
// seitlicher tab hinzufügen, loch beachten!
// shield_2();
//port_ethernet();
shield_ports();
// todo: add text