added Variant with Ports
parent
eb67f83ff7
commit
beb92d38e0
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.
|
@ -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_l=22; // length of the above described cutouts
|
||||||
shield_tab_emboss_l2=shield_tab_emboss_l/2; // length of the side 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_d1=2.75;
|
||||||
shield_hole_d2=shield_hole_d1+0.5; // slightly conical holes for better inserting
|
shield_hole_d2=shield_hole_d1+0.5; // slightly conical holes for better inserting
|
||||||
// for separating the shield into two halves
|
// 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_skew=25;
|
||||||
m_grill_offset=5;
|
m_grill_offset=5;
|
||||||
m_grill_spacing=m_grill_w;
|
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:
|
// MODEL:
|
||||||
// mounting holes around the shield perimeter
|
// 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){
|
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);
|
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(){
|
difference(){
|
||||||
shield_1();
|
shield_1();
|
||||||
if (shield_holes>0) {
|
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(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,-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+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:
|
// DRAWING:
|
||||||
|
|
||||||
//difference(){
|
// shield_2();
|
||||||
shield_grill();
|
|
||||||
// translate([0,0,6])cube([200,100,5],center=true);
|
//port_ethernet();
|
||||||
// translate([0,0,-5.45])cube([200,100,5],center=true);
|
shield_ports();
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// todo:
|
|
||||||
// shield holes durchgängig
|
|
||||||
// seitlicher tab hinzufügen, loch beachten!
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// todo: add text
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue