chiark / gitweb /
cable-splice-clamp: demo; geometry is a bit pants but seems nearly right for many...
[reprap-play.git] / cable-splice-clamp.scad
1 // -*- C -*-
2
3 cable_maxdia = 12;
4 cable_mindia = 6;
5
6 wallmin = 1;
7 wall = 2;
8
9 delta_ellipse = 0.45;
10
11 // calculated
12
13 outerdia = cable_maxdia / cos(30) + wall*2;
14 delta_shift = 1 - delta_ellipse;
15
16 delta_shift_gap = (cable_maxdia-cable_mindia) * delta_shift;
17
18 module CrossSection(plus=0) {
19   difference(){
20     for (dx = [-plus, 0, plus])
21       translate([dx, 0])
22       circle(r= outerdia/2, $fn=6);
23
24     scale([cable_maxdia,
25            cable_maxdia * delta_shift + cable_mindia * delta_ellipse])
26       circle(r= sqrt(0.5) * delta_shift + 0.5 * delta_ellipse, $fn=4);
27
28     square(center=true, [40, delta_shift_gap]);
29   }
30 }
31
32 module CrossSectionDemo(){ ////toplevel
33   color("blue"){
34     translate([0, delta_shift_gap/2, 0]){
35       difference(){
36         circle(r = cable_maxdia/2, $fn=20);
37         circle(r = cable_mindia/2, $fn=20);
38       }
39     }
40   }
41   
42   linear_extrude(height=20)
43     CrossSection(0);
44
45   color("red")
46     linear_extrude(height=1)
47     CrossSection(2);
48 }
49
50 CrossSectionDemo();