+ CatchCore();
+}
+
+module CatchAssembly(){ /////toplevel
+ rotate([0,0, -0.5 * (cpp1[0] + cpp2[0]) / sm_inner_rad * 360/TAU])
+ translate([0,0, catch_strap_width])
+ scale(sm_inner_rad / 100)
+ import(str("poster-tube-lid,CatchPostDistort-fa",
+ (coarse ? 20 : 3),
+ ".stl"),
+ convexity=20);
+
+ SomeStrap(){
+ union(){ }
+ union(){
+ translate([-200, -200, -200])
+ cube([400, 200, 400]);
+ }
+ }
+}
+
+module CatchDemo(){ /////toplevel
+ color("blue") translate([0,0,
+ -catch_strap_width
+ -cpp0[1]
+ ])
+ CatchAssembly();
+ translate([0,0,+side_height
+ ])
+ Cover();
+}
+
+module CatchDemoS(){ /////toplevel
+ color("blue") translate([0,0,
+ -catch_strap_width
+ -cpp0[1]
+ ])
+ CatchAssembly();
+ intersection(){
+ translate([0,0,+side_height
+ ])
+ Cover();
+ mirror([0,1,0]) translate([-250,33,0]) cube([500,500,500]);
+ }
+ color("black")
+ translate([0,-33,0])
+ cube([6.15, 2,2], center=true);
+}
+
+module CatchPinProfileDemo(){ /////toplevel
+ echo("G ",
+ cpp2[0] - cpp1[0],
+ bayo_n[0] - bayo_e[0]);
+ color("blue") translate([-cpp2[0],
+ -cpp2[1],
+ +1,
+ ])