parent
13c5469ba2
commit
4eb4a1993d
@ -0,0 +1,187 @@ |
||||
$fn=30; |
||||
|
||||
BOARD_WIDTH=96.5; |
||||
BOARD_HEIGHT=96.0; |
||||
BOARD_THICKNESS=1.6; |
||||
HOLE_NW_X=4.0; |
||||
HOLE_NW_Y=4.0; |
||||
HOLE_NE_X=92.5; |
||||
HOLE_NE_Y=4.0; |
||||
HOLE_SW_X=4.0; |
||||
HOLE_SW_Y=92.0; |
||||
HOLE_SE_X=92.5; |
||||
HOLE_SE_Y=92.0; |
||||
|
||||
WALL_SPACE=1.0; |
||||
WALL_THICKNESS=2.0; |
||||
HOLE_HEIGHT=15.0; // USB A is 14.5 |
||||
|
||||
module pillar() { |
||||
translate([0,0,HOLE_HEIGHT/2]) { |
||||
difference() { |
||||
cylinder(h=HOLE_HEIGHT, d=6, center=true); |
||||
cylinder(h=HOLE_HEIGHT, d=3.5, center=true); |
||||
} |
||||
} |
||||
} |
||||
|
||||
mirror([1,0,0]) { // we used bottom view |
||||
|
||||
// bottom plate |
||||
cube([BOARD_WIDTH+2*WALL_SPACE+2*WALL_THICKNESS, BOARD_HEIGHT+2*WALL_SPACE+2*WALL_THICKNESS, WALL_THICKNESS]); |
||||
|
||||
// screw mounts |
||||
translate([WALL_THICKNESS+WALL_SPACE+HOLE_NW_X,WALL_THICKNESS+WALL_SPACE+HOLE_NW_Y,WALL_THICKNESS]) { |
||||
pillar(); |
||||
} |
||||
translate([WALL_THICKNESS+WALL_SPACE+HOLE_NE_X,WALL_THICKNESS+WALL_SPACE+HOLE_NE_Y,WALL_THICKNESS]) { |
||||
pillar(); |
||||
} |
||||
translate([WALL_THICKNESS+WALL_SPACE+HOLE_SW_X,WALL_THICKNESS+WALL_SPACE+HOLE_SW_Y,WALL_THICKNESS]) { |
||||
pillar(); |
||||
} |
||||
translate([WALL_THICKNESS+WALL_SPACE+HOLE_SE_X,WALL_THICKNESS+WALL_SPACE+HOLE_SE_Y,WALL_THICKNESS]) { |
||||
pillar(); |
||||
} |
||||
|
||||
// side |
||||
MARGIN=1.0; |
||||
USB_B_WIDTH=12.0+MARGIN; |
||||
USB_B_HEIGHT=11.0+MARGIN; |
||||
USB_A_WIDTH=7.0+MARGIN; |
||||
USB_A_HEIGHT=14.5+MARGIN; |
||||
BARREL_WIDTH=9.0+MARGIN; |
||||
BARREL_HEIGHT=11.3+MARGIN; |
||||
INDUCTOR_HEIGHT=7.5; |
||||
|
||||
// side north |
||||
difference() { |
||||
cube([BOARD_WIDTH+2*WALL_SPACE+2*WALL_THICKNESS, WALL_THICKNESS, WALL_THICKNESS+HOLE_HEIGHT+BOARD_THICKNESS+INDUCTOR_HEIGHT]); |
||||
// DFP 7 USB A |
||||
translate([WALL_THICKNESS+WALL_SPACE+12.5-USB_A_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-USB_A_HEIGHT]) { |
||||
cube([USB_A_WIDTH,WALL_THICKNESS,USB_A_HEIGHT]); |
||||
} |
||||
// DFP 7 BARREL |
||||
translate([WALL_THICKNESS+WALL_SPACE+28-BARREL_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([BARREL_WIDTH,WALL_THICKNESS,BARREL_HEIGHT]); |
||||
} |
||||
// DFP 6 USB A |
||||
translate([WALL_THICKNESS+WALL_SPACE+40.5-USB_A_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-USB_A_HEIGHT]) { |
||||
cube([USB_A_WIDTH,WALL_THICKNESS,USB_A_HEIGHT]); |
||||
} |
||||
// DFP 6 BARREL |
||||
translate([WALL_THICKNESS+WALL_SPACE+56-BARREL_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([BARREL_WIDTH,WALL_THICKNESS,BARREL_HEIGHT]); |
||||
} |
||||
// DFP 5 USB A |
||||
translate([WALL_THICKNESS+WALL_SPACE+68.5-USB_A_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-USB_A_HEIGHT]) { |
||||
cube([USB_A_WIDTH,WALL_THICKNESS,USB_A_HEIGHT]); |
||||
} |
||||
// DFP 5 BARREL |
||||
translate([WALL_THICKNESS+WALL_SPACE+84-BARREL_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([BARREL_WIDTH,WALL_THICKNESS,BARREL_HEIGHT]); |
||||
} |
||||
} |
||||
|
||||
// side west |
||||
difference() { |
||||
cube([WALL_THICKNESS, BOARD_HEIGHT+2*WALL_SPACE+2*WALL_THICKNESS, WALL_THICKNESS+HOLE_HEIGHT+BOARD_THICKNESS+INDUCTOR_HEIGHT]); |
||||
// USB B |
||||
translate([0,WALL_THICKNESS+WALL_SPACE+48-USB_B_WIDTH/2,WALL_THICKNESS+HOLE_HEIGHT-USB_B_HEIGHT]) { |
||||
cube([WALL_THICKNESS,USB_B_WIDTH,USB_B_HEIGHT]); |
||||
} |
||||
// 5V BARREL |
||||
translate([0,WALL_THICKNESS+WALL_SPACE+33-BARREL_WIDTH/2,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([WALL_THICKNESS,BARREL_WIDTH,BARREL_HEIGHT]); |
||||
} |
||||
// 12V BARREL |
||||
translate([0,WALL_THICKNESS+WALL_SPACE+63-BARREL_WIDTH/2,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([WALL_THICKNESS,BARREL_WIDTH,BARREL_HEIGHT]); |
||||
} |
||||
} |
||||
|
||||
// side south |
||||
translate([0,BOARD_HEIGHT+WALL_THICKNESS+2*WALL_SPACE,0]) { |
||||
difference() { |
||||
cube([BOARD_WIDTH+2*WALL_SPACE+2*WALL_THICKNESS, WALL_THICKNESS, WALL_THICKNESS+HOLE_HEIGHT+BOARD_THICKNESS+INDUCTOR_HEIGHT]); |
||||
// DFP 1 USB A |
||||
translate([WALL_THICKNESS+WALL_SPACE+27.5-USB_A_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-USB_A_HEIGHT]) { |
||||
cube([USB_A_WIDTH,WALL_THICKNESS,USB_A_HEIGHT]); |
||||
} |
||||
// DFP 1 BARREL |
||||
translate([WALL_THICKNESS+WALL_SPACE+12-BARREL_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([BARREL_WIDTH,WALL_THICKNESS,BARREL_HEIGHT]); |
||||
} |
||||
// DFP 2 USB A |
||||
translate([WALL_THICKNESS+WALL_SPACE+55.5-USB_A_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-USB_A_HEIGHT]) { |
||||
cube([USB_A_WIDTH,WALL_THICKNESS,USB_A_HEIGHT]); |
||||
} |
||||
// DFP 2 BARREL |
||||
translate([WALL_THICKNESS+WALL_SPACE+40-BARREL_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([BARREL_WIDTH,WALL_THICKNESS,BARREL_HEIGHT]); |
||||
} |
||||
// DFP 3 USB A |
||||
translate([WALL_THICKNESS+WALL_SPACE+83.5-USB_A_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-USB_A_HEIGHT]) { |
||||
cube([USB_A_WIDTH,WALL_THICKNESS,USB_A_HEIGHT]); |
||||
} |
||||
// DFP 3 BARREL |
||||
translate([WALL_THICKNESS+WALL_SPACE+68-BARREL_WIDTH/2,0,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([BARREL_WIDTH,WALL_THICKNESS,BARREL_HEIGHT]); |
||||
} |
||||
} |
||||
} |
||||
|
||||
// side east |
||||
translate([BOARD_WIDTH+WALL_THICKNESS+2*WALL_SPACE,0,0]) { |
||||
difference() { |
||||
cube([WALL_THICKNESS, BOARD_HEIGHT+2*WALL_SPACE+2*WALL_THICKNESS, WALL_THICKNESS+HOLE_HEIGHT+BOARD_THICKNESS+INDUCTOR_HEIGHT]); |
||||
// DFP 4 USB A |
||||
translate([0,WALL_THICKNESS+WALL_SPACE+40.5-USB_A_WIDTH/2,WALL_THICKNESS+HOLE_HEIGHT-USB_A_HEIGHT]) { |
||||
cube([WALL_THICKNESS,USB_A_WIDTH,USB_A_HEIGHT]); |
||||
} |
||||
// DFP 4 BARREL |
||||
translate([0,WALL_THICKNESS+WALL_SPACE+56-BARREL_WIDTH/2,WALL_THICKNESS+HOLE_HEIGHT-BARREL_HEIGHT]) { |
||||
cube([WALL_THICKNESS,BARREL_WIDTH,BARREL_HEIGHT]); |
||||
} |
||||
} |
||||
} |
||||
|
||||
// top plate |
||||
SWITCH_WIDTH=3.0+0.5; |
||||
SWITCH_LENGTH=6.0+0.5; |
||||
|
||||
translate([0,0,WALL_THICKNESS+HOLE_HEIGHT+BOARD_THICKNESS+INDUCTOR_HEIGHT]) { |
||||
difference() { |
||||
cube([BOARD_WIDTH+2*WALL_SPACE+2*WALL_THICKNESS, BOARD_HEIGHT+2*WALL_SPACE+2*WALL_THICKNESS, WALL_THICKNESS]); |
||||
// DFP 7 |
||||
translate([WALL_THICKNESS+WALL_SPACE+20.0, WALL_THICKNESS+WALL_SPACE+6.7,WALL_THICKNESS/2]) { |
||||
cube([SWITCH_WIDTH, SWITCH_LENGTH, WALL_THICKNESS], center=true); |
||||
} |
||||
// DFP 6 |
||||
translate([WALL_THICKNESS+WALL_SPACE+48.0, WALL_THICKNESS+WALL_SPACE+6.7,WALL_THICKNESS/2]) { |
||||
cube([SWITCH_WIDTH, SWITCH_LENGTH, WALL_THICKNESS], center=true); |
||||
} |
||||
// DFP 5 |
||||
translate([WALL_THICKNESS+WALL_SPACE+76.0, WALL_THICKNESS+WALL_SPACE+6.7,WALL_THICKNESS/2]) { |
||||
cube([SWITCH_WIDTH, SWITCH_LENGTH, WALL_THICKNESS], center=true); |
||||
} |
||||
// DFP 4 |
||||
translate([WALL_THICKNESS+WALL_SPACE+89.7, WALL_THICKNESS+WALL_SPACE+48.0,WALL_THICKNESS/2]) { |
||||
cube([SWITCH_LENGTH, SWITCH_WIDTH, WALL_THICKNESS], center=true); |
||||
} |
||||
// DFP 3 |
||||
translate([WALL_THICKNESS+WALL_SPACE+76.0, WALL_THICKNESS+WALL_SPACE+89.3,WALL_THICKNESS/2]) { |
||||
cube([SWITCH_WIDTH, SWITCH_LENGTH, WALL_THICKNESS], center=true); |
||||
} |
||||
// DFP 2 |
||||
translate([WALL_THICKNESS+WALL_SPACE+48.0, WALL_THICKNESS+WALL_SPACE+89.3,WALL_THICKNESS/2]) { |
||||
cube([SWITCH_WIDTH, SWITCH_LENGTH, WALL_THICKNESS], center=true); |
||||
} |
||||
// DFP 1 |
||||
translate([WALL_THICKNESS+WALL_SPACE+20.0, WALL_THICKNESS+WALL_SPACE+89.3,WALL_THICKNESS/2]) { |
||||
cube([SWITCH_WIDTH, SWITCH_LENGTH, WALL_THICKNESS], center=true); |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
Loading…
Reference in new issue