commit
						6591c88e42
					
				 18 changed files with 461901 additions and 0 deletions
			
			
		@ -0,0 +1,91 @@ | 
				
			|||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// File for all dimensions, so they can be changed globally. | 
				
			||||
 | 
					// | 
				
			||||
 | 
					// Author:              Maximilian Stiefel | 
				
			||||
 | 
					// Last modification:   17.06.2017 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Allowance | 
				
			||||
 | 
					allowance05 = 0.5; | 
				
			||||
 | 
					allowance1 = 1; | 
				
			||||
 | 
					allowance2 = 2; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimesions holder | 
				
			||||
 | 
					holder_height = 172; | 
				
			||||
 | 
					holder_width = 18; | 
				
			||||
 | 
					holder_depth = 8; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions notch | 
				
			||||
 | 
					notch_height = 161; | 
				
			||||
 | 
					// Calculations to construct a triangle which can take a PCB | 
				
			||||
 | 
					biggest_pcb = 2; | 
				
			||||
 | 
					c = biggest_pcb + allowance05; | 
				
			||||
 | 
					x = c; | 
				
			||||
 | 
					y = sqrt( pow(x,2) - pow(c/2,2) ); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions cuvette | 
				
			||||
 | 
					glass_thickness = 6; | 
				
			||||
 | 
					cuvette_width = 180 + 2*glass_thickness + allowance2; | 
				
			||||
 | 
					cuvette_depth = 50 + 2*glass_thickness + allowance2; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions lid | 
				
			||||
 | 
					lid_thickness = 4; | 
				
			||||
 | 
					lid_width = 180 + 2*glass_thickness + 2*lid_thickness + allowance2; | 
				
			||||
 | 
					lid_depth = 50 + 2*glass_thickness + 2*lid_thickness + allowance2; | 
				
			||||
 | 
					lid_height = 20; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions holder heater | 
				
			||||
 | 
					heater_diameter = 25 + allowance1;  | 
				
			||||
 | 
					heater_offset = 55; | 
				
			||||
 | 
					heater_pos = -lid_width/2 + heater_diameter/2 + 2*lid_thickness + 3; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions slot for the PCB holder arms | 
				
			||||
 | 
					slot_width = lid_width - heater_diameter - 2*lid_thickness - 20; | 
				
			||||
 | 
					slot_depth = holder_depth + allowance05; | 
				
			||||
 | 
					slot_height = 1.5 * lid_height; | 
				
			||||
 | 
					slot_pos = heater_pos + heater_diameter/2 + lid_thickness + 3;   | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions service holes for temp. sensor and air tube | 
				
			||||
 | 
					service_hole_width = 10; | 
				
			||||
 | 
					service_hole_depth = 10; | 
				
			||||
 | 
					service_hole_height = lid_height; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions crossbar | 
				
			||||
 | 
					crossbar_height = 2.5 + allowance05; | 
				
			||||
 | 
					crossbar_width = 8 + allowance05; | 
				
			||||
 | 
					crossbar_depth = slot_width; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions lid | 
				
			||||
 | 
					lid_thickness = 4; | 
				
			||||
 | 
					lid_slot_width = 8; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions neck | 
				
			||||
 | 
					neck_diameter = holder_depth; | 
				
			||||
 | 
					neck_height = lid_thickness + allowance05; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions head  | 
				
			||||
 | 
					head_width = holder_width; | 
				
			||||
 | 
					head_depth = holder_depth; | 
				
			||||
 | 
					head_height = 5; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Suitable for M3 screw thread | 
				
			||||
 | 
					hole_diameter = 2.5; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Air system diameter | 
				
			||||
 | 
					air_system = 10; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// 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; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// Dimensions bar that PCB does not fall down | 
				
			||||
 | 
					bar_width = holder_width/2; | 
				
			||||
 | 
					bar_depth = 6; | 
				
			||||
 | 
					// The height of this thing should exactely use the space which is available | 
				
			||||
 | 
					// between the notch for the PBC and the crossbar slot  | 
				
			||||
 | 
					bar_height = height_diff_1/4 - crossbar_height/2; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// My color for everything | 
				
			||||
 | 
					myColor = "FireBrick"; | 
				
			||||
@ -0,0 +1,17 @@ | 
				
			|||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Adapter for drilling machine in the embedded lab. | 
				
			||||
 | 
					// | 
				
			||||
 | 
					// Author:              Maximilian Stiefel | 
				
			||||
 | 
					// Last modification:   17.06.2017 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Includes | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					include <dimensions.scad> | 
				
			||||
 | 
					use <dimensions.scad> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Action | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					cube([crossbar_width - allowance05, crossbar_depth, crossbar_height - allowance05], center = true); | 
				
			||||
@ -0,0 +1,86 @@ | 
				
			|||||
 | 
					solid OpenSCAD_Model | 
				
			||||
 | 
					  facet normal -0 0 1 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex -4 74 1.25 | 
				
			||||
 | 
					      vertex 4 -74 1.25 | 
				
			||||
 | 
					      vertex 4 74 1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal 0 0 1 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex 4 -74 1.25 | 
				
			||||
 | 
					      vertex -4 74 1.25 | 
				
			||||
 | 
					      vertex -4 -74 1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal 0 0 -1 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex -4 -74 -1.25 | 
				
			||||
 | 
					      vertex 4 74 -1.25 | 
				
			||||
 | 
					      vertex 4 -74 -1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal -0 0 -1 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex 4 74 -1.25 | 
				
			||||
 | 
					      vertex -4 -74 -1.25 | 
				
			||||
 | 
					      vertex -4 74 -1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal 0 -1 0 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex -4 -74 -1.25 | 
				
			||||
 | 
					      vertex 4 -74 1.25 | 
				
			||||
 | 
					      vertex -4 -74 1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal 0 -1 -0 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex 4 -74 1.25 | 
				
			||||
 | 
					      vertex -4 -74 -1.25 | 
				
			||||
 | 
					      vertex 4 -74 -1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal 1 -0 0 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex 4 -74 1.25 | 
				
			||||
 | 
					      vertex 4 74 -1.25 | 
				
			||||
 | 
					      vertex 4 74 1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal 1 0 0 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex 4 74 -1.25 | 
				
			||||
 | 
					      vertex 4 -74 1.25 | 
				
			||||
 | 
					      vertex 4 -74 -1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal 0 1 -0 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex 4 74 -1.25 | 
				
			||||
 | 
					      vertex -4 74 1.25 | 
				
			||||
 | 
					      vertex 4 74 1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal 0 1 0 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex -4 74 1.25 | 
				
			||||
 | 
					      vertex 4 74 -1.25 | 
				
			||||
 | 
					      vertex -4 74 -1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal -1 0 0 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex -4 -74 -1.25 | 
				
			||||
 | 
					      vertex -4 74 1.25 | 
				
			||||
 | 
					      vertex -4 74 -1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					  facet normal -1 -0 0 | 
				
			||||
 | 
					    outer loop | 
				
			||||
 | 
					      vertex -4 74 1.25 | 
				
			||||
 | 
					      vertex -4 -74 -1.25 | 
				
			||||
 | 
					      vertex -4 -74 1.25 | 
				
			||||
 | 
					    endloop | 
				
			||||
 | 
					  endfacet | 
				
			||||
 | 
					endsolid OpenSCAD_Model | 
				
			||||
| 
		 After Width: | Height: | Size: 79 KiB  | 
@ -0,0 +1,41 @@ | 
				
			|||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Floor protection for cuvette. | 
				
			||||
 | 
					// | 
				
			||||
 | 
					// Author:              Maximilian Stiefel | 
				
			||||
 | 
					// Last modification:   12.06.2017 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Includes | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					include <roundy.scad> | 
				
			||||
 | 
					use <roundy.scad> | 
				
			||||
 | 
					include <dimensions.scad> | 
				
			||||
 | 
					use <dimensions.scad> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Action | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					color(myColor) | 
				
			||||
 | 
					difference() | 
				
			||||
 | 
					{ | 
				
			||||
 | 
						union() | 
				
			||||
 | 
						{ | 
				
			||||
 | 
							// Basic lid | 
				
			||||
 | 
							translate([0, 0, lid_height/2]) | 
				
			||||
 | 
							roundy(lid_width, lid_depth, lid_height, true); | 
				
			||||
 | 
							translate([-lid_width/2 + 5, -lid_depth/2 + 2, lid_height/2]) | 
				
			||||
 | 
							rotate([90, 0, 0]) | 
				
			||||
 | 
							linear_extrude(height = 6, center = true, convexity = 10, twist = 0) | 
				
			||||
 | 
							union() | 
				
			||||
 | 
							{ | 
				
			||||
 | 
							translate([0, 4, 0]) | 
				
			||||
 | 
							text("Etching Machine of the Embedded Systems Master", size = 6, valign = "center"); | 
				
			||||
 | 
							translate([0, -4, 0]) | 
				
			||||
 | 
							text("Designed by Maximilian Stiefel 2017", size = 6, valign = "center"); | 
				
			||||
 | 
							} | 
				
			||||
 | 
						} | 
				
			||||
 | 
						// Depening to put it over the cuvette | 
				
			||||
 | 
						translate([0, 0, lid_height - lid_thickness]) | 
				
			||||
 | 
						cube([cuvette_width, cuvette_depth, lid_height], center = true); | 
				
			||||
 | 
					} | 
				
			||||
								
									
										File diff suppressed because it is too large
									
								
							
						
					| 
		 After Width: | Height: | Size: 131 KiB  | 
| 
		 After Width: | Height: | Size: 89 KiB  | 
@ -0,0 +1,88 @@ | 
				
			|||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Left holder part to anchor PCB with in the etching bath. | 
				
			||||
 | 
					// | 
				
			||||
 | 
					// Author:              Maximilian Stiefel | 
				
			||||
 | 
					// Last modification:   17.06.2017 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Includes | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					include <dimensions.scad> | 
				
			||||
 | 
					use <dimensions.scad> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Vars | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Action | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					color(myColor) | 
				
			||||
 | 
					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); | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// Bar, that PCB does not fall  | 
				
			||||
 | 
							translate([holder_width/2 - bar_width/2, -bar_depth, height_diff_1/2 - bar_height]) | 
				
			||||
 | 
							cube([bar_width, bar_depth, bar_height]); | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// Text | 
				
			||||
 | 
							translate([holder_width/2 + 4, holder_depth, 0.2*holder_height]) | 
				
			||||
 | 
							rotate([90,0,180]) | 
				
			||||
 | 
							linear_extrude(height = 3, center = true, convexity = 10, twist = 0) | 
				
			||||
 | 
							text("L", size = 10, valign = "center"); | 
				
			||||
 | 
							translate([0, holder_depth -1, (1/4)*height_diff_1 + 6]) | 
				
			||||
 | 
							rotate([90, 0, 270]) | 
				
			||||
 | 
							linear_extrude(height = 2, center = true, convexity = 10, twist = 0) | 
				
			||||
 | 
							text("M3", size = 3, valign = "center"); | 
				
			||||
 | 
							translate([0, holder_depth/2, holder_height/2]) | 
				
			||||
 | 
							rotate([90, -90, 270]) | 
				
			||||
 | 
							linear_extrude(height = 2, center = true, convexity = 10, twist = 0) | 
				
			||||
 | 
							text("Maximilian Stiefel 2017", size = 3, valign = "center"); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
						} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
						union() | 
				
			||||
 | 
						{ | 
				
			||||
 | 
							// Cube for notch | 
				
			||||
 | 
							//translate([holder_width/2 - notch_width/2, -notch_depth +2, height_diff_1/2]) | 
				
			||||
 | 
							//cube([notch_width, notch_depth, notch_height], center = false); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
							// Triangular notch | 
				
			||||
 | 
							translate([-c/2 + holder_width/2, -0.01, height_diff_1/2]) | 
				
			||||
 | 
							linear_extrude(height = notch_height, center = false) | 
				
			||||
 | 
							polygon(points=[[0,0],[c/2,y], [c,0]], paths = [[0,1,2]]);	 | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// 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([-1, holder_depth/2, (1/4)*height_diff_1]) | 
				
			||||
 | 
							rotate([0, 90, 0]) | 
				
			||||
 | 
							cylinder(h = 9, r = hole_diameter/2); | 
				
			||||
 | 
							translate([0, holder_depth/2,(3/4)*height_diff_1 + notch_height]) | 
				
			||||
 | 
							rotate([0, 90, 0]) | 
				
			||||
 | 
							cylinder(h = 9, r = hole_diameter/2); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
							// Holes for the air system | 
				
			||||
 | 
							// translate([holder_width/2, holder_depth + 1, 0]) | 
				
			||||
 | 
							// rotate([90, 0, 0]) | 
				
			||||
 | 
							// cylinder(h = holder_depth + 2, r = air_system/2);	 | 
				
			||||
 | 
						} | 
				
			||||
 | 
					} | 
				
			||||
								
									
										File diff suppressed because it is too large
									
								
							
						
					@ -0,0 +1,88 @@ | 
				
			|||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Left holder part to anchor PCB with in the etching bath. | 
				
			||||
 | 
					// | 
				
			||||
 | 
					// Author:              Maximilian Stiefel | 
				
			||||
 | 
					// Last modification:   17.06.2017 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Includes | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					include <dimensions.scad> | 
				
			||||
 | 
					use <dimensions.scad> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Vars | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Action | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					color(myColor) | 
				
			||||
 | 
					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); | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// Bar, that PCB does not fall  | 
				
			||||
 | 
							translate([holder_width/2 - bar_width/2, -bar_depth, height_diff_1/2 - bar_height]) | 
				
			||||
 | 
							cube([bar_width, bar_depth, bar_height]); | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// Text | 
				
			||||
 | 
							translate([holder_width/2 +5, holder_depth, 0.2*holder_height]) | 
				
			||||
 | 
							rotate([90,0,180]) | 
				
			||||
 | 
							linear_extrude(height = 3, center = true, convexity = 10, twist = 0) | 
				
			||||
 | 
							text("R", size = 10, valign = "center"); | 
				
			||||
 | 
							translate([holder_width, 1, (1/4)*height_diff_1 + 6]) | 
				
			||||
 | 
							rotate([90, 0,90]) | 
				
			||||
 | 
							linear_extrude(height = 2, center = true, convexity = 10, twist = 0) | 
				
			||||
 | 
							text("M3", size = 3, valign = "center"); | 
				
			||||
 | 
							translate([holder_width, holder_depth/2, holder_height/2]) | 
				
			||||
 | 
							rotate([90, -90, 90]) | 
				
			||||
 | 
							linear_extrude(height = 2, center = true, convexity = 10, twist = 0) | 
				
			||||
 | 
							text("Maximilian Stiefel 2017", size = 3, valign = "center"); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
						} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
						union() | 
				
			||||
 | 
						{ | 
				
			||||
 | 
							// Cube for notch | 
				
			||||
 | 
							//translate([holder_width/2 - notch_width/2, -notch_depth +2, height_diff_1/2]) | 
				
			||||
 | 
							//cube([notch_width, notch_depth, notch_height], center = false); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
							// Triangular notch | 
				
			||||
 | 
							translate([-c/2 + holder_width/2, -0.01, height_diff_1/2]) | 
				
			||||
 | 
							linear_extrude(height = notch_height, center = false) | 
				
			||||
 | 
							polygon(points=[[0,0],[c/2,y], [c,0]], paths = [[0,1,2]]);	 | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// 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 + 1, holder_depth/2, (1/4)*height_diff_1]) | 
				
			||||
 | 
							rotate([0, 90, 0]) | 
				
			||||
 | 
							cylinder(h = 9, r = hole_diameter/2); | 
				
			||||
 | 
							translate([holder_width/2 + 1, holder_depth/2,(3/4)*height_diff_1 + notch_height]) | 
				
			||||
 | 
							rotate([0, 90, 0]) | 
				
			||||
 | 
							cylinder(h = 9, r = hole_diameter/2); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
							// Holes for the air system | 
				
			||||
 | 
							// translate([holder_width/2, holder_depth + 1, 0]) | 
				
			||||
 | 
							// rotate([90, 0, 0]) | 
				
			||||
 | 
							// cylinder(h = holder_depth + 2, r = air_system/2);	 | 
				
			||||
 | 
						} | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,69 @@ | 
				
			|||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Lid for cuvette with pcb holder slots and a possibility to put a heater. | 
				
			||||
 | 
					// | 
				
			||||
 | 
					// Author:              Maximilian Stiefel | 
				
			||||
 | 
					// Last modification:   17.06.2017 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Includes | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					include <roundy.scad> | 
				
			||||
 | 
					use <roundy.scad> | 
				
			||||
 | 
					include <dimensions.scad> | 
				
			||||
 | 
					use <dimensions.scad> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Action | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					color(myColor) | 
				
			||||
 | 
					difference() | 
				
			||||
 | 
					{ | 
				
			||||
 | 
						union() | 
				
			||||
 | 
						{ | 
				
			||||
 | 
							// Basic lid | 
				
			||||
 | 
							translate([0, 0, lid_height/2]) | 
				
			||||
 | 
							roundy(lid_width, lid_depth, lid_height, true); | 
				
			||||
 | 
							//cube([lid_width, lid_depth, lid_height], center = true); | 
				
			||||
 | 
							translate([heater_pos, 0, lid_height - 1]) | 
				
			||||
 | 
							cylinder(h = heater_offset + 1, r = heater_diameter/2 + lid_thickness); | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// Uppsala University Logo | 
				
			||||
 | 
							translate([0, 5, lid_height]) | 
				
			||||
 | 
							linear_extrude(height = 1) | 
				
			||||
 | 
							scale(0.08) | 
				
			||||
 | 
							import("uppsla_university.dxf"); | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// Text | 
				
			||||
 | 
							translate([-lid_width/2 + 5, -lid_depth/2 + 2, lid_height/2]) | 
				
			||||
 | 
							rotate([90, 0, 0]) | 
				
			||||
 | 
							linear_extrude(height = 6, center = true, convexity = 10, twist = 0) | 
				
			||||
 | 
							union() | 
				
			||||
 | 
							{ | 
				
			||||
 | 
							translate([0, 4, 0]) | 
				
			||||
 | 
							text("Embedded Etcher", size = 6, valign = "center"); | 
				
			||||
 | 
							translate([0, -4, 0]) | 
				
			||||
 | 
							text("Revision 1.0", size = 6, valign = "center"); | 
				
			||||
 | 
							} | 
				
			||||
 | 
						} | 
				
			||||
 | 
						union() | 
				
			||||
 | 
						{ | 
				
			||||
 | 
							// Depening to put it over the cuvette | 
				
			||||
 | 
							translate([0, 0, lid_height/2 - lid_thickness]) | 
				
			||||
 | 
							cube([cuvette_width, cuvette_depth, lid_height], center = true); | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// Hole for heater | 
				
			||||
 | 
							translate([heater_pos, 0, -1]) | 
				
			||||
 | 
							cylinder(h = heater_offset + lid_height + 2, r = heater_diameter/2); | 
				
			||||
 | 
							// Slot for the PCB holder arms | 
				
			||||
 | 
							translate([slot_pos, -slot_depth/2, 0]) | 
				
			||||
 | 
							cube([slot_width, slot_depth, slot_height], center = false); | 
				
			||||
 | 
							 | 
				
			||||
 | 
							// Service holes | 
				
			||||
 | 
							translate([-lid_width/2 + lid_thickness + 5, -lid_depth/2 + lid_thickness + 3, (1/2)*lid_height]) | 
				
			||||
 | 
							cube([service_hole_width, service_hole_depth, service_hole_height]); | 
				
			||||
 | 
							translate([lid_width/2 - lid_thickness - service_hole_width -5, -lid_depth/2 + lid_thickness + 3, (1/2)*lid_height]) | 
				
			||||
 | 
							cube([service_hole_width, service_hole_depth, service_hole_height]); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
						} | 
				
			||||
 | 
					} | 
				
			||||
								
									
										File diff suppressed because it is too large
									
								
							
						
					| 
		 After Width: | Height: | Size: 88 KiB  | 
@ -0,0 +1,37 @@ | 
				
			|||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Module for a open box with rounded edges. | 
				
			||||
 | 
					// | 
				
			||||
 | 
					// Author: 		Maximilian Stiefel | 
				
			||||
 | 
					// Last modification: 	26.04.2017 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					module roundy(width, depth, height, center) | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Vars | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					edge_rounding = 8; | 
				
			||||
 | 
					transx = -width/2; | 
				
			||||
 | 
					transy = -depth/2; | 
				
			||||
 | 
					transz = -height/2; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Action | 
				
			||||
 | 
					///////////////////////////////////////////////////////////////////////// | 
				
			||||
 | 
					// Hull 4 cylinders	 | 
				
			||||
 | 
					translate([transx, transy, transz]) | 
				
			||||
 | 
					hull(){ | 
				
			||||
 | 
						// x=0, y=0 | 
				
			||||
 | 
						translate([edge_rounding, edge_rounding, 0]) | 
				
			||||
 | 
						cylinder(r = edge_rounding, h = height); | 
				
			||||
 | 
						// x=width, y=0 | 
				
			||||
 | 
						translate([width - edge_rounding, edge_rounding, 0]) | 
				
			||||
 | 
						cylinder(r = edge_rounding, h = height); | 
				
			||||
 | 
						// x=0, y=depth | 
				
			||||
 | 
						translate([edge_rounding, depth - edge_rounding,0]) | 
				
			||||
 | 
						cylinder(r = edge_rounding, h = height); | 
				
			||||
 | 
						//x=width, y=length | 
				
			||||
 | 
						translate([width - edge_rounding, depth - edge_rounding,0]) | 
				
			||||
 | 
						cylinder(r = edge_rounding, h = height); | 
				
			||||
 | 
					} | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,37 @@ | 
				
			|||||
 | 
					ISO-10303-21; | 
				
			||||
 | 
					HEADER; | 
				
			||||
 | 
					FILE_DESCRIPTION(('FreeCAD Model'),'2;1'); | 
				
			||||
 | 
					FILE_NAME('/home/maximilian/UppSense/cad/etching_machine/v2.0/test.step' | 
				
			||||
 | 
					  ,'2017-06-17T18:55:45',('Author'),(''), | 
				
			||||
 | 
					  'Open CASCADE STEP processor 6.8','FreeCAD','Unknown'); | 
				
			||||
 | 
					FILE_SCHEMA(('AUTOMOTIVE_DESIGN_CC2 { 1 2 10303 214 -1 1 5 4 }')); | 
				
			||||
 | 
					ENDSEC; | 
				
			||||
 | 
					DATA; | 
				
			||||
 | 
					#1 = APPLICATION_PROTOCOL_DEFINITION('committee draft', | 
				
			||||
 | 
					  'automotive_design',1997,#2); | 
				
			||||
 | 
					#2 = APPLICATION_CONTEXT( | 
				
			||||
 | 
					  'core data for automotive mechanical design processes'); | 
				
			||||
 | 
					#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10); | 
				
			||||
 | 
					#4 = PRODUCT_DEFINITION_SHAPE('','',#5); | 
				
			||||
 | 
					#5 = PRODUCT_DEFINITION('design','',#6,#9); | 
				
			||||
 | 
					#6 = PRODUCT_DEFINITION_FORMATION('','',#7); | 
				
			||||
 | 
					#7 = PRODUCT('ASSEMBLY','ASSEMBLY','',(#8)); | 
				
			||||
 | 
					#8 = MECHANICAL_CONTEXT('',#2,'mechanical'); | 
				
			||||
 | 
					#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design'); | 
				
			||||
 | 
					#10 = SHAPE_REPRESENTATION('',(#11),#15); | 
				
			||||
 | 
					#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14); | 
				
			||||
 | 
					#12 = CARTESIAN_POINT('',(0.,0.,0.)); | 
				
			||||
 | 
					#13 = DIRECTION('',(0.,0.,1.)); | 
				
			||||
 | 
					#14 = DIRECTION('',(1.,0.,-0.)); | 
				
			||||
 | 
					#15 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)  | 
				
			||||
 | 
					GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#19)) GLOBAL_UNIT_ASSIGNED_CONTEXT( | 
				
			||||
 | 
					(#16,#17,#18)) REPRESENTATION_CONTEXT('Context #1', | 
				
			||||
 | 
					  '3D Context with UNIT and UNCERTAINTY') ); | 
				
			||||
 | 
					#16 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); | 
				
			||||
 | 
					#17 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); | 
				
			||||
 | 
					#18 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); | 
				
			||||
 | 
					#19 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#16, | 
				
			||||
 | 
					  'distance_accuracy_value','confusion accuracy'); | 
				
			||||
 | 
					#20 = PRODUCT_TYPE('part',$,(#7)); | 
				
			||||
 | 
					ENDSEC; | 
				
			||||
 | 
					END-ISO-10303-21; | 
				
			||||
								
									
										File diff suppressed because it is too large
									
								
							
						
					| 
		 After Width: | Height: | Size: 133 KiB  | 
					Loading…
					
					
				
		Reference in new issue