From 21b98736d912d551c2d6150d7fb0b9b6a10966c5 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Thu, 14 Mar 2024 23:53:34 +0100 Subject: [PATCH] paul trap --- paul-trap-holder.scad | 60 +++++++++++++++++++++++-------------- paul-trap-laser-holder.scad | 26 ++++++++++++++++ 2 files changed, 64 insertions(+), 22 deletions(-) create mode 100644 paul-trap-laser-holder.scad diff --git a/paul-trap-holder.scad b/paul-trap-holder.scad index d951208..5d513cb 100644 --- a/paul-trap-holder.scad +++ b/paul-trap-holder.scad @@ -1,36 +1,52 @@ include -base_wall = 3; -rod_d = 5 + 0.5; -d_max = 40; -d_min = 15; +base_wall = 4; +wall = 1.5; +rod_d = 5 + 1; +d_max = 45; +d_min = 20; steps = 3; -difference() { - cylinder(r = d_max/2+base_wall + rod_d/2, h = base_wall, $fn = 6); - for (i = [0:1:steps]) { - Rz((steps-i)*85/steps) - for (angle = [0:60:360]) Rz(angle) Tx(d_min/2+i*(d_max-d_min)/(2*(steps))) Tz(-eps) - cylinder(r = rod_d/2, h = base_wall + 2*eps, $fn = 6); - } -} - -// strut strut_w = 15; strut_l = 80; +strut_side_inner_l = 8; + +center_hole_d = d_min-wall-rod_d; + +module base() { + difference() { + cylinder(r = d_max/2+2*wall + rod_d/2, h = base_wall, $fn = 6); + Tz(wall) cylinder(r = d_max/2 + rod_d/2+wall, h = base_wall, $fn = 6); + } +} -Ty((d_max/2+base_wall+rod_d/2)*cos(30)) { +module strut() { +Ty((d_max/2+wall+rod_d/2)*cos(30)) { Tx(-strut_w/2) { - cube([strut_w, strut_l, base_wall]); - Ty(strut_l-base_wall) difference() { - cube([strut_w, base_wall, strut_w]); - Tx(strut_w/2) Tz(strut_w/2) Rx(-90) Tz(-eps) cylinder(r = 2.5, h = base_wall+2*eps, $fn = 6); + cube([strut_w, strut_l, wall]); + Ty(strut_l-wall) difference() { + cube([strut_w, wall, strut_w]); + Tx(strut_w/2) Tz(strut_w/2) Rx(-90) Tz(-eps) cylinder(r = 2.5, h = wall+2*eps, $fn = 6); } } Mx() hull() { - Tx(strut_w/2-base_wall) { - Ty(-base_wall) cube([base_wall, eps, base_wall]); - Ty(strut_l-base_wall) cube([base_wall, base_wall, strut_w]); + Tx(strut_w/2-wall) { + Ty(-strut_side_inner_l) cube([wall, eps, base_wall]); + Ty(strut_l-wall) cube([wall, wall, strut_w]); } } } +} +difference() { + union() { + base(); + strut(); + } + for (i = [0:1:steps]) { + Rz((steps-i)*85/steps) + for (angle = [0:60:360]) Rz(angle) Tx(d_min/2+i*(d_max-d_min)/(2*(steps))) Tz(-eps) + cylinder(r = rod_d/2, h = wall + 2*eps, $fn = 6); + } + Tz(-eps) cylinder(r = center_hole_d/2, h = infty); +} + diff --git a/paul-trap-laser-holder.scad b/paul-trap-laser-holder.scad new file mode 100644 index 0000000..7fcd4c6 --- /dev/null +++ b/paul-trap-laser-holder.scad @@ -0,0 +1,26 @@ +include + +wall = 1.5; +strut_w = 15; +laser_h = 103; +laser_d = 12; +clip_cut_w = 4; + + Tx(-strut_w/2) { + Ty(laser_h/2) + cube([strut_w, laser_h/2, wall]); + Ty(laser_h-wall) difference() { + cube([strut_w, wall, strut_w]); + Tx(strut_w/2) Tz(strut_w/2) Rx(-90) Tz(-eps) cylinder(r = 2.5, h = wall+2*eps, $fn = 6); + } + } + Mx() Tx(strut_w/2-wall) + cube([wall, laser_h, strut_w]); + difference() { + cylinder(r = laser_d/2+1.41*wall, h = strut_w, $fn = 4); + Tz(-eps) cylinder(r = laser_d/2, h = strut_w+2*eps, $fn = 4); + translate([-clip_cut_w/2, -laser_d, -eps]) + cube([clip_cut_w, 2*laser_d, strut_w+2*eps]); + } + + -- 2.43.0