repo2/eclaireXL_ITX/hardware/case/mini/board_components.scad
| 850 | markw | //sio port
|
|
module sioport()
|
|||
{
|
|||
sio=[46,22,14];
|
|||
color("black")
|
|||
union()
|
|||
{
|
|||
translate([0,sio.y/2-15/2,1.8/2]) cube([sio.x,15,1.8],center=true);
|
|||
translate([0,15/2-sio.y/2,14/2]) cube([31,15,14],center=true);
|
|||
}
|
|||
};
|
|||
//db9
|
|||
module db9()
|
|||
{
|
|||
db9_screwblock=[30.5,3.5,12];
|
|||
db9_portsize=[17,9,6];
|
|||
db9_rear=[16,9,11];
|
|||
db9_port=[
|
|||
[-db9_portsize.x/2,-db9_portsize.y/2],
|
|||
[db9_portsize.x/2,-db9_portsize.y/2],
|
|||
[(15/17)*db9_portsize.x/2,db9_portsize.y/2],
|
|||
[-(15/17)*db9_portsize.x/2,db9_portsize.y/2]
|
|||
];
|
|||
translate([0,db9_screwblock.y/2,db9_screwblock.z/2])
|
|||
union()
|
|||
{
|
|||
color("blue")
|
|||
cube(db9_screwblock,center=true);
|
|||
translate([0,-db9_portsize.z/2-db9_screwblock.y/2,0])
|
|||
rotate([-90,0,0])
|
|||
linear_extrude(height=db9_portsize.z,center=true)
|
|||
polygon(points=db9_port);
|
|||
translate([0,db9_rear.y/2+db9_screwblock.y/2,0])
|
|||
cube(db9_rear,center=true);
|
|||
}
|
|||
}
|
|||
module sdcard()
|
|||
{
|
|||
sdcard_dim=[27,28.5,3];
|
|||
color("silver")
|
|||
translate([0,sdcard_dim.y/2,sdcard_dim.z/2])
|
|||
cube(sdcard_dim,center=true);
|
|||
}
|
|||
module vertusb()
|
|||
{
|
|||
vertusb_dim=[6,19,15];
|
|||
color("grey")
|
|||
translate([0,vertusb_dim.y/2,vertusb_dim.z/2])
|
|||
cube(vertusb_dim,center=true);
|
|||
}
|
|||
module jack()
|
|||
{
|
|||
jack_box=[8,14,13];
|
|||
jack_cyl_rad=3;
|
|||
jack_cyl_len=4;
|
|||
union()
|
|||
{
|
|||
color("lime")
|
|||
translate([0,jack_box.y/2+jack_cyl_len,jack_box.z/2])
|
|||
cube(jack_box,center=true);
|
|||
color("red")
|
|||
translate([-1.2,0,7.2])
|
|||
rotate([-90,0,0])
|
|||
cylinder(h=4,r=3,center=false);
|
|||
}
|
|||
}
|
|||
module hdmi()
|
|||
{
|
|||
hdmi_portsize=[14,9.5,5.5];
|
|||
hdmi_port=[
|
|||
[-hdmi_portsize.x/2,-hdmi_portsize.z/2],
|
|||
[hdmi_portsize.x/2,-hdmi_portsize.z/2],
|
|||
[hdmi_portsize.x/2,hdmi_portsize.z/8],
|
|||
[(10/14)*hdmi_portsize.x/2,hdmi_portsize.z/2],
|
|||
[-(10/14)*hdmi_portsize.x/2,hdmi_portsize.z/2],
|
|||
[-hdmi_portsize.x/2,hdmi_portsize.z/8]
|
|||
];
|
|||
color("silver")
|
|||
translate([0,hdmi_portsize.y/2,hdmi_portsize.z/2])
|
|||
rotate([-90,0,0])
|
|||
linear_extrude(height=hdmi_portsize.y,center=true)
|
|||
polygon(points=hdmi_port);
|
|||
}
|
|||
module switch()
|
|||
{
|
|||
back_size=[6,10,15];
|
|||
rocker_block=[9,8,8];
|
|||
tri_size=[0.2,back_size.y-3,7];
|
|||
union()
|
|||
{
|
|||
color("red")
|
|||
translate([0,back_size.y/2,back_size.z/2])
|
|||
cube(back_size,center=true);
|
|||
color("black")
|
|||
translate([0,-tri_size.y+4,back_size.z/2])
|
|||
rotate([-5,0,180])
|
|||
translate([-rocker_block.x/2,0,0])
|
|||
union()
|
|||
{
|
|||
translate([0,0,-rocker_block.z])
|
|||
cube(rocker_block,center=false);
|
|||
rotate([-25,0,0])
|
|||
cube(rocker_block,center=false);
|
|||
}
|
|||
color("grey")
|
|||
translate([back_size.x/2,0,back_size.z/2])
|
|||
rotate([0,90,180])
|
|||
linear_extrude(height=tri_size.x,center=true)
|
|||
polygon([[-tri_size.y/2,0],[0,tri_size.z],[tri_size.y/2,0]]);
|
|||
color("grey")
|
|||
translate([-back_size.x/2,0,back_size.z/2])
|
|||
rotate([0,90,180])
|
|||
linear_extrude(height=tri_size.x,center=true)
|
|||
polygon([[-tri_size.y/2,0],[0,tri_size.z],[tri_size.y/2,0]]);
|
|||
}
|
|||
}
|
|||
module power_in()
|
|||
{
|
|||
difference()
|
|||
{
|
|||
union()
|
|||
{
|
|||
color("grey")
|
|||
translate([0,1.5,10.5/2])
|
|||
cube([9,3,10.5],center=true);
|
|||
color("grey")
|
|||
translate([0,0,6])
|
|||
rotate([-90,0,0])
|
|||
cylinder(h=13,r=4,center=false);
|
|||
color("grey")
|
|||
translate([0,13/2,8/2])
|
|||
cube([8,13,6],center=true);
|
|||
}
|
|||
translate([0,-0.01,6])
|
|||
rotate([-90,0,0])
|
|||
cylinder(h=12,r=3,center=false);
|
|||
}
|
|||
}
|
|||
module cart()
|
|||
{
|
|||
cartslot_size=[41.5,2,16];
|
|||
cartblock_size=[54,13,16];
|
|||
cartwing_size=[52,2,16];
|
|||
carttip_size=[5,1.8,6];
|
|||
color("white")
|
|||
translate([0,0,cartblock_size.z/2])
|
|||
difference()
|
|||
{
|
|||
union()
|
|||
{
|
|||
cube(cartblock_size,center=true);
|
|||
translate([0,cartblock_size.y/2+3,0])
|
|||
cube(cartwing_size,center=true);
|
|||
translate([cartslot_size.x/2,0,cartslot_size.z/2+carttip_size.z/2])
|
|||
cube(carttip_size,center=true);
|
|||
translate([-cartslot_size.x/2,0,cartslot_size.z/2+carttip_size.z/2])
|
|||
cube(carttip_size,center=true);
|
|||
}
|
|||
cube(cartslot_size,center=true);
|
|||
}
|
|||
}
|