-module xy_joint() {
- hull() {
- intersection() {
- lens_holder();
- translate([-infty-0.5*rear_pin_dist,
- rear_pin_dist+rear_pin_diam/2+0.35*wall_thickness,
- 0])
- cube([infty, infty, clip_wall]);
- };
-
- translate([clip_x_off, clip_y_off, 0])
- intersection() {
- seat_clip();
- translate([-infty+clip_wall+0.20*clip_h1, -infty-clip_space, 0])
- cube([infty, infty, clip_wall]);
- };
- };
- hull() {
- intersection() {
- lens_holder();
- translate([0.5*rear_pin_dist,
- rear_pin_dist+rear_pin_diam/2+0.35*wall_thickness,
- 0])
- cube([infty, infty, clip_wall]);
- };
-
- translate([clip_x_off, clip_y_off, 0])
- intersection() {
- seat_clip();
- translate([0.8*clip_h1-clip_wall, -infty-clip_space, 0])
- cube([infty, infty, clip_wall]);
- };
- };
-};
-
-module yz_joint() {
- difference() {
- hull() {
- translate([clip_x_off, clip_y_off, 0])
- intersection() {
- seat_clip();
- translate([-1.5*clip_wall+(fraen_h-pin_len)*tan(clip_angle), -clip_space/2-clip_wall+epsilon, 0])
- cube([clip_wall, epsilon, fraen_h - pin_len]);
- };
- translate([clip_x_off - 1.5*clip_wall+(fraen_h-pin_len)*tan(clip_angle), 0, 0])
-
- cube([clip_wall, epsilon, (fraen_h - pin_len)]);
- };
- hull() {
- translate([0, 0, fraen_h - pin_len + epsilon])
- cylinder(r = fraen_diam/2 + pin_diam/2 + wall_thickness/2,
- h = epsilon);
- for (angle = [0, 90, 180, 270])
- rotate([0, 0, angle])
- translate([rear_pin_dist, rear_pin_dist, -epsilon])
- cylinder(r=wall_thickness/2+3.75/2, h = epsilon);
- };
- };
-};
-