-union() {
- lens_holder($fn = 128);
- translate([clip_x_off, clip_y_off, 0])
- seat_clip();
-/*
-hull() {
- translate([0, 9.1+3.5/2+epsilon, wall_thickness/2])
- cube([9.1, epsilon, wall_thickness], center=true);
- translate([20-clip_wall/2, 40-clip_space/2-clip_wall+epsilon, wall_thickness/2])
- cube([9.1, epsilon/2, wall_thickness], center=true);
+module full_joint() {
+ difference() {
+ hull() {
+ intersection() {
+ rotate([-90, 0, 0])
+ scale([0.25, 1, 1])
+ cylinder(r = fraen_h-pin_len, h = rear_pin_dist + wall_thickness+rear_pin_diam/2);
+ translate([-infty/2, rear_pin_dist + wall_thickness + rear_pin_diam/2 - epsilon, 0])
+ cube(infty);
+ };
+ translate([clip_x_off, clip_y_off, 0])
+ intersection() {
+ seat_clip_rotated();
+ translate([(fraen_h-pin_len)*tan(clip_angle)-clip_wall, -clip_space/2-0.1*clip_wall+epsilon, 0])
+ rotate([90+clip_x_rot, 0, 0])
+ scale([0.45, 1, 1])
+ cylinder(r = fraen_h-pin_len, h = epsilon);
+ };
+ };
+ 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);
+ };
+ }