chiark
/
gitweb
/
~ianmdlvl
/
reprap-play.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
2898a43
)
cable-splice-clamp: wip
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Tue, 9 Feb 2016 02:02:03 +0000
(
02:02
+0000)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Tue, 9 Feb 2016 02:02:03 +0000
(
02:02
+0000)
cable-splice-clamp.scad
patch
|
blob
|
history
diff --git
a/cable-splice-clamp.scad
b/cable-splice-clamp.scad
index cd310bf862fca12885f956e2e70ca35bfc13fadd..851b5f615f257f8718d1250ce53cdd546b1b7aba 100644
(file)
--- a/
cable-splice-clamp.scad
+++ b/
cable-splice-clamp.scad
@@
-2,15
+2,21
@@
cable_maxdia = 12;
cable_mindia = 6;
cable_maxdia = 12;
cable_mindia = 6;
+strap_width = 4 + 0.5;
+total_len = 70;
-wallmin = 1;
-wall = 2;
+wallmin = 1.5;
+
+strap_count = 2;
+
+strap_wall_h = 1.5;
+strap_wall_l = 2.0;
delta_ellipse = 0.45;
// calculated
delta_ellipse = 0.45;
// calculated
-outerdia = cable_maxdia / cos(30) + wall*2;
+outerdia = cable_maxdia / cos(30) + wall
min
*2;
delta_shift = 1 - delta_ellipse;
delta_shift_gap = (cable_maxdia-cable_mindia) * delta_shift;
delta_shift = 1 - delta_ellipse;
delta_shift_gap = (cable_maxdia-cable_mindia) * delta_shift;
@@
-21,9
+27,14
@@
module CrossSection(plus=0) {
translate([dx, 0])
circle(r= outerdia/2, $fn=6);
translate([dx, 0])
circle(r= outerdia/2, $fn=6);
- scale([cable_maxdia,
- cable_maxdia * delta_shift + cable_mindia * delta_ellipse])
- circle(r= sqrt(0.5) * delta_shift + 0.5 * delta_ellipse, $fn=4);
+ intersection(){
+ scale([cable_maxdia,
+ cable_maxdia * delta_shift + cable_mindia * delta_ellipse])
+ circle(r= sqrt(0.5) * delta_shift + 0.5 * delta_ellipse, $fn=4);
+ circle(r= cable_maxdia/2 * sqrt(delta_shift)
+ + cable_mindia/2 * (1-sqrt(delta_shift)),
+ $fn=20);
+ }
square(center=true, [40, delta_shift_gap]);
}
square(center=true, [40, delta_shift_gap]);
}
@@
-47,4
+58,23
@@
module CrossSectionDemo(){ ////toplevel
CrossSection(2);
}
CrossSection(2);
}
+module CompleteClamp(){ ////toplevel
+ linear_extrude(height=total_len)
+ CrossSection();
+
+ for (i=[0 : strap_count]){
+ if (i*2 != strap_count) {
+ translate([0, 0,
+ total_len * (i + 0.5) / (strap_count + 1)])
+ for (m=[0,1]){
+ mirror([0,0,m])
+ translate([0,0, strap_width/2])
+ linear_extrude(height=strap_wall_l)
+ CrossSection(strap_wall_h);
+ }
+ }
+ }
+}
+
CrossSectionDemo();
CrossSectionDemo();
+//CompleteClamp();