// -*- C -*-
-mainlen = 30;
-straps = [10,20];
+mainlen = 33;
+straps = [10,23];
width = 60;
endwall = 5;
sidewall = 8;
basethick = 3;
endwallheight = 20;
+morebase = 20;
plugwidth = 35;
plugstartheight = 10;
strapthick = 4;
-strapwidth = 5;
+strapwidth = 7;
strapbotgap = 1;
overstrap = 6;
discdia = 60;
-discoff = 10;
+discoff_rear = 10;
+discoff_front = 50;
sidewallraise = strapbotgap + strapthick + overstrap;
}
}
-module Ell(){
+module Ell(baseoff){
translate([-endwall,0,0]) {
- cube([mainlen + endwall, width, basethick]);
+ translate([baseoff,0,0])
+ cube([mainlen + endwall + morebase, width, basethick]);
cube([endwall+0.1, width, endwallheight + sidewallraise + basethick]);
}
}
cube([endwall*3, plugwidth, 100], center=true);
}
-module Disc(){
+module Disc(discoff){
translate([discoff + discdia/2, width/2, -1])
- cylinder(r=discdia/2, h=50);
+ cylinder(r=discdia/2, h=50, $fn=100);
}
-module Block(){
+module Main(baseoff){
difference(){
union(){
- Ell();
+ Ell(baseoff);
Sides();
}
Plug();
- Disc();
}
}
-Block();
+module RearBlock(){
+ difference(){
+ Main(-morebase);
+ Disc(discoff_rear);
+ }
+}
+
+module FrontBlock(){
+ difference(){
+ Main(0);
+ Disc(discoff_front - endwall);
+ }
+}
+
+module Both(){
+ RearBlock();
+ translate([mainlen + endwall + 10, 0, 0])
+ FrontBlock();
+}
+
+Both();