+}
+
+module Handle(){
+ bs0 = retaining_len + overret_gaplen;
+ bs1 = bs0 + overret_hch;
+ linear_extrude(height=total_len, convexity=100) GappingSection();
+ linear_extrude(height=retaining_len, convexity=100) WithRetainSection();
+ translate([0,0, bs1]) linear_extrude(height= total_len - bs1)
+ BasicSection();
+ translate([0,0, bs1+0.1]) mirror([0,0,1]) {
+ intersection_for (sl=[0,1]) {
+ multmatrix([[1,0,0,0],
+ [0,1,sl,0],
+ [0,0,1,0],
+ [0,0,0,1]])
+ linear_extrude(height= overret_gaplen + 10, convexity=100)
+ BasicSection();
+ }
+ }
+}
+
+module Demo(){
+ color("red") translate([0,0,-3]) BasicSection();
+ color("blue") translate([0,0,3]) WithRetainSection();