UppSense17- Open Source sensor for chemical analysis based on fuoresence.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.5 KiB

/////////////////////////////////////////////////////////////////////////////////
// Adapter for drilling machine in the embedded lab.
//
// Author: Maximilian Stiefel
// Last modification: 10.06.2017
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
// Vars
/////////////////////////////////////////////////////////////////////////////////
// Dimesions holder
holder_height = 160;
holder_width = 15;
holder_depth = 6;
// Dimensions notch
notch_height = 135;
notch_width = 2;
notch_depth = 3;
// General allowance
allowance = 0.5;
// Dimensions crossbar
crossbar_height = 5 + allowance;
crossbar_width = 5 + allowance;
// Dimensions lid
lid_thickness = 3;
lid_slot_width = 8;
// Dimensions neck
neck_diameter = holder_depth;
neck_height = lid_thickness + allowance;
// Dimensions head
head_width = holder_width;
head_depth = holder_depth;
head_height = 5;
// Suitable for M3 screw thread
hole_diameter = 2.5;
// Height difference between notch for PCB and the actual holder
height_diff_1 = holder_height - notch_height;
// Width difference between crossbar and holder
width_diff_1 = holder_width - crossbar_width;
/////////////////////////////////////////////////////////////////////////////////
// Action
/////////////////////////////////////////////////////////////////////////////////
difference()
{
union()
{
// Cube for the base holder
cube([holder_width, holder_depth, holder_height], center = false);
// Head
translate([0, 0, holder_height + neck_height])
cube([head_width, head_depth, head_height]);
// Neck
translate([holder_width/2, holder_depth/2, holder_height])
cylinder(h = neck_height, r = neck_diameter/2);
}
union()
{
// Cube for notch
translate([holder_width/2 - notch_width/2, -1, height_diff_1/2])
cube([notch_width, notch_depth, notch_height], center = false);
// Slots for crossbars
translate([width_diff_1/2, -1, (1/4)*height_diff_1 - crossbar_height/2])
cube([crossbar_width, holder_depth + 2, crossbar_height], center = false);
translate([width_diff_1/2, -1, (3/4)*height_diff_1 + notch_height - crossbar_height/2])
cube([crossbar_width, holder_depth + 2, crossbar_height], center = false);
// Drill holes for screws
translate([holder_width/2, holder_depth/2, (1/4)*height_diff_1])
rotate([0, 90, 0])
cylinder(h = 9, r = hole_diameter/2);
translate([holder_width/2, holder_depth/2,(3/4)*height_diff_1 + notch_height])
rotate([0, 90, 0])
cylinder(h = 9, r = hole_diameter/2);
}
}