+module PlugKeeperStalkProfile(){
+ hull(){
+ for (m=[0,1]) mirror([0,m,0]) PlugKeeperProfileHalf();
+ translate([ plugkeeper_x_maxw + keeper_stalk_len, 0,0 ])
+ square([ 0.1, keeper_stalk_basewidth ], center=true);
+ }
+}
+
+module PlugKeeper(){
+ for (m=[0,1]) mirror([0,m,0]) {
+ translate([0,0, -keeper_stalk_thick])
+ linear_extrude(height=plug_h + keeper_stalk_thick)
+ PlugKeeperProfileHalf();
+
+ translate([0, 0, plug_h - plug_tooth_h])
+ linear_extrude(height= plug_tooth_h)
+ translate(plugkeeper_d_u * -plug_tooth_dy)
+ PlugKeeperProfileHalf();
+
+ }
+
+ translate([0,0, -keeper_stalk_thick])
+ linear_extrude(height = keeper_stalk_thick)
+ PlugKeeperStalkProfile();
+}
+