12 attach_inrad = 25; ///
13 attach_hole_dist = 5; ///
14 attach_hole_dia = 4 + 0.5; ///
19 cover_lcircle_r = cover_ysz / (1 + 1/sqrt(2));
21 base_len = cover_len - cover_lcircle_r;
24 attach_inrad + attach_tube_dia + attach_hole_dist + attach_hole_dia/2
25 - attach_w / 2 + attach_hole_dist;
27 attach_down = tube_dia + attach_hole_dist;
29 module RearSideTemplate(){
32 [-base_len,-cover_ysz],
34 translate([-base_len, -cover_ysz + cover_lcircle_r])
35 circle(r=cover_lcircle_r);
38 module AttachTemplate(){
44 translate([attach_cx, -attach_cdy]) rotate([0,0,-attach_ang]) {
45 polygon([[-attach_cx, attach_w/2],
47 [attach_straight_len, -attach_w/2],
48 [attach_straight_len, attach_w/2]]);
49 translate([attach_straight_len, 0])
55 module BodyPositive(){
56 color("blue") linear_extrude(height=60) RearSideTemplate();
57 translate([0,0,-attach_down]) linear_extrude(height=100) AttachTemplate();
61 %translate([attach_cx, -attach_cdy, -20]) {
62 rotate_extrude(convexity=10) {
63 translate([attach_inrad + attach_tube_dia/2, 0])
64 circle(r=attach_tube_dia/2);
70 %translate([0,0,-50]) linear_extrude(height=80) {
71 circle(r=attach_hole_dia/2, $fn=20);
73 %translate([0,0,10]) linear_extrude(height=20) {
74 circle(r=attach_hole_dia/2 * 2, $fn=20);
79 translate([attach_cx, -attach_cdy]) rotate([0,0,-attach_ang]) {
80 translate([attach_inrad - attach_hole_dist - attach_hole_dia/2, 0])
82 translate([attach_inrad + attach_tube_dia
83 +attach_hole_dist + attach_hole_dia/2, 0])