commit 99419942de2fae1e234ef097093b4560fb8df3d1 Author: LongHairedHacker Date: Tue Jul 5 17:11:32 2016 +0200 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5c1608e --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.stl + diff --git a/QFH_dimensions.jpg b/QFH_dimensions.jpg new file mode 100644 index 0000000..b276917 Binary files /dev/null and b/QFH_dimensions.jpg differ diff --git a/constants.scad b/constants.scad new file mode 100644 index 0000000..3f6610b --- /dev/null +++ b/constants.scad @@ -0,0 +1,13 @@ +tube_inner_diameter = 13.5; +insert_length = 20; +insert_hole_dia = 5; + +top_inner_diameter = 20; +top_outer_diameter = 30; +top_height = 15; +top_inner_depth = 10; + + +arm_dia = 10; +arm_hole_dia = 3; +arm_radius = 25; diff --git a/top.scad b/top.scad new file mode 100644 index 0000000..4c673a0 --- /dev/null +++ b/top.scad @@ -0,0 +1,56 @@ +include ; + +$fn = 90; + +module top() { + difference() { + + union() { + cylinder(r = top_outer_diameter/2, + h = top_height); + + for(angle = [0, 90, 180, 270]) { + rotate([0, 0, angle]) + translate([arm_radius / 2, + 0, + top_height - arm_dia / 2]) + + rotate([0, 90, 0]) + cylinder(r = arm_dia / 2, + h = arm_radius, + center = true); + } + + translate([0, 0, -insert_length]) + cylinder(r = tube_inner_diameter/2, + h = insert_length); + } + + union() { + translate([0, 0, top_height - top_inner_depth]) + cylinder(r = top_inner_diameter/2, + h = top_inner_depth); + + for(angle = [0, 90, 180, 270]) { + rotate([0, 0, angle]) + translate([arm_radius / 2, + 0, + top_height - arm_dia / 2]) + + rotate([0, 90, 0]) + cylinder(r = arm_hole_dia / 2, + h = arm_radius, + center = true); + } + + translate([0, 0, -insert_length]) + cylinder(r = insert_hole_dia / 2, + h = insert_length + top_height); + } + } + + +}; + + +top(); \ No newline at end of file