Project

General

Profile

//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);
}
}
(2-2/3)