include <yenyalib.scad>
-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);
+}
+
--- /dev/null
+include <yenyalib.scad>
+
+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]);
+ }
+
+