156 lines
3.1 KiB
OpenSCAD
156 lines
3.1 KiB
OpenSCAD
//Psion Travel Dock
|
|
use <airfoil.scad>
|
|
use <roundedcorner.scad>
|
|
|
|
$fn=30;
|
|
|
|
connector_width = 6.7 + 1;
|
|
connector_length = 17.8 + 1;
|
|
connector_height = 11.5;
|
|
base_width = 20 + 1;
|
|
base_length = 17.2 + 1;
|
|
|
|
|
|
|
|
dock_base_width = 34.6;
|
|
dock_base_length_max = 140 + 12 ; //removed changes as too snug
|
|
dock_base_length_min = 135;
|
|
dock_base_height = 11.1;
|
|
|
|
dock_total_length = 147;
|
|
|
|
wing_width = 3.62;
|
|
wing_depth = 39.0;
|
|
wing_height_max = 15.0;
|
|
wing_height_min = 6.0;
|
|
|
|
wing_clip_length = 4;
|
|
wing_clip_depth = 0.7;
|
|
wing_clip_height = 2.0;
|
|
|
|
bridge_width = 11.1;
|
|
bridge_seperation = 3.9;
|
|
|
|
off_set = 1.5;
|
|
|
|
cubecell_w = 22 + 0.5;
|
|
cubecell_l = 58 + 0.5;
|
|
cubecell_h = 4;
|
|
|
|
difference(){
|
|
union(){
|
|
|
|
difference(){
|
|
translate([-5,0,-1 * dock_base_length_max]){
|
|
rotate([0,0,7]){
|
|
airfoil_simple_wing([dock_base_width -5, 0022], wing_length=dock_base_length_max, wing_angle=[0,0]);
|
|
}
|
|
}
|
|
|
|
translate([2,0,(-1 *(dock_base_length_max/2) +1) + off_set]){
|
|
rotate([90,0,-15]){
|
|
cube([connector_width, connector_length, connector_height], center=true);
|
|
}
|
|
}
|
|
|
|
translate([8,3.2,(-1 *(dock_base_length_max/2) +1) + off_set]){
|
|
rotate([90,0,-15]){
|
|
cube([base_width, base_length, connector_height], center=true);
|
|
}
|
|
}
|
|
|
|
//Screws
|
|
translate([2,10,(-1 *(dock_base_length_max/2)) + 1 + off_set + ((base_width / 2) + 2)]){
|
|
rotate([90,0,0]){
|
|
cylinder(30, d=3.3, center=true);
|
|
}
|
|
}
|
|
|
|
translate([2,10,(-1 *(dock_base_length_max/2)) + 1 + off_set + (-1*(base_width / 2) - 2)]){
|
|
rotate([90,0,0]){
|
|
cylinder(30, d=3.3, center=true);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// Wing R
|
|
translate([0,-2,0]){
|
|
rotate([0,0,10]){
|
|
translate([-10,0,0]){
|
|
rotate([0,0,0]){
|
|
airfoil_simple_wing([wing_depth, 0032], wing_length=wing_width, wing_angle=[0,0]);
|
|
}
|
|
}
|
|
|
|
translate([-4,-3.5,-0.3]){
|
|
rotate([0,0,-30]){
|
|
color("green"){
|
|
roundedcube([wing_clip_length, wing_clip_depth, wing_clip_height], true, 0.2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Wing L
|
|
translate([0,-2,-1 * dock_base_length_max]){
|
|
rotate([0,0,10]){
|
|
translate([-10,0,0]){
|
|
rotate([0,0,0]){
|
|
airfoil_simple_wing([wing_depth, 0032], wing_length=wing_width, wing_angle=[0,0]);
|
|
}
|
|
}
|
|
|
|
translate([-4,-3.5,-0.3 + wing_width]){
|
|
rotate([0,0,-30]){
|
|
color("green"){
|
|
roundedcube([wing_clip_length, wing_clip_depth, wing_clip_height], true, 0.2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// Flat Base
|
|
rotate([90,0,0]){
|
|
translate([7,-1 * (dock_base_length_max / 2),-8]){
|
|
cube([dock_base_width - 10, dock_base_length_max -30,dock_base_height],center=true);
|
|
}
|
|
}
|
|
|
|
|
|
//USB-C Indent
|
|
translate([3,3.5,-3]){
|
|
cylinder(h=80, d=4, center =true);
|
|
}
|
|
translate([7.5,3.5,0]){
|
|
cube([8.9 + 2,4,10],center=true);
|
|
}
|
|
translate([12,3.5,-3]){
|
|
cylinder(h=80, d=4, center =true);
|
|
}
|
|
// Antenna Indent
|
|
translate([15,4,-1 * dock_base_length_max]){
|
|
cylinder(h=20, d=4, center =true);
|
|
}
|
|
|
|
//cubecell cutout -120
|
|
rotate([90,0,6]){
|
|
translate([8,-30,-2]){
|
|
cube([cubecell_w, cubecell_l, cubecell_h],center=true);
|
|
}
|
|
}
|
|
|
|
// power cutout
|
|
rotate([90,0,6]){
|
|
translate([8,-118,-2]){
|
|
cube([cubecell_w, cubecell_l, cubecell_h],center=true);
|
|
}
|
|
}
|
|
//Difference End
|
|
}
|
|
|