// -*- C -*-
-cover_zsz = 45;
+cover_ysz = 45;
cover_len = 70;
attach_tube_dia = 18;
attach_cx = -15;
-attach_cdz = -10;
+attach_cdy = -5;
attach_w = 25;
attach_inrad = 25; ///
// calculated
-cover_lcircle_r = cover_zsz / (1 + 1/sqrt(2));
+cover_lcircle_r = cover_ysz / (1 + 1/sqrt(2));
base_len = cover_len - cover_lcircle_r;
-attach_total_len =
- attach_inrad + attach_tube_dia + attach_hole_dist + attach_hole_dia/2;
+attach_straight_len =
+ attach_inrad + attach_tube_dia + attach_hole_dist + attach_hole_dia/2
+ - attach_w / 2 + attach_hole_dist;
+
+attach_down = tube_dia + attach_hole_dist;
module RearSideTemplate(){
polygon([[0.1,0],
[-base_len,0],
- [-base_len,-cover_zsz],
- [0.1, -cover_zsz]]);
- translate([-base_len, -cover_zsz + cover_lcircle_r])
+ [-base_len,-cover_ysz],
+ [0.1, -cover_ysz]]);
+ translate([-base_len, -cover_ysz + cover_lcircle_r])
circle(r=cover_lcircle_r);
}
module AttachTemplate(){
hull(){
-// polygon([[0, 0],
-// [-0.1, 0],
-// [-0.1, -cover_zsz],
-// [0, -cover_zsz]]);
- translate([attach_cx, -attach_cdz]) rotate([0,0,-attach_ang]) {
- polygon([[-attach_cx, attach_w/2],
- [0, -attach_w/2],
- [attach_total_len, -attach_w/2],
- [attach_total_len, attach_w/2]]);
- translate([attach_total_len, 0])
+ polygon([[0, 0],
+ [-0.1, 0],
+ [-0.1, -cover_ysz],
+ [0, -cover_ysz]]);
+ translate([attach_cx, -attach_cdy]) rotate([0,0,-attach_ang]) {
+ polygon([[-attach_cx, attach_w/2],
+ [0, -attach_w/2],
+ [attach_straight_len, -attach_w/2],
+ [attach_straight_len, attach_w/2]]);
+ translate([attach_straight_len, 0])
circle(r=attach_w/2);
}
}
}
-//module Tube(){
-// translate(
+module BodyPositive(){
+ color("blue") linear_extrude(height=60) RearSideTemplate();
+ translate([0,0,-attach_down]) linear_extrude(height=100) AttachTemplate();
+}
+
+module Tube(){
+ %translate([attach_cx, -attach_cdy, -20]) {
+ rotate_extrude(convexity=10) {
+ translate([attach_inrad + attach_tube_dia/2, 0])
+ circle(r=attach_tube_dia/2);
+ }
+ }
+}
+
+module Bolt(){
+ %translate([0,0,-50]) linear_extrude(height=80) {
+ circle(r=attach_hole_dia/2, $fn=20);
+ }
+ %translate([0,0,10]) linear_extrude(height=20) {
+ circle(r=attach_hole_dia/2 * 2, $fn=20);
+ }
+}
+
+module Bolts(){
+ translate([attach_cx, -attach_cdy]) rotate([0,0,-attach_ang]) {
+ translate([attach_inrad - attach_hole_dist - attach_hole_dia/2, 0])
+ Bolt();
+ translate([attach_inrad + attach_tube_dia
+ +attach_hole_dist + attach_hole_dia/2, 0])
+ Bolt();
+ }
+}
-color("blue") RearSideTemplate();
-AttachTemplate();
+Tube();
+Bolts();
+BodyPositive();