// Button hole to match button-shape-super.inc // Assumes defined: // // button_cyl = the "stem" shape, as in button-shape-super.inc. // // button_shape_HX = button X half-extent // button_shape_HY = button Y half-extent (excluding relief) // button_shape_HZ = button Z half-extent // // button_max_disp_Y, button_min_disp_Y = range of Y displacement // for the plunger that must be allowed by the hole. // // button_hole_clearance = width of gap between button and hole // // Defines // // button_hole = a hole that should be subtracted from // the environment, where the button shape fits. // // button_frame = a frame to be added to the environment // // button_hole_frame_HX = X half-exetent of hole + frame // button_hole_frame_HZ = Z half-exetent of hole + frame #declare button_hole = object{ button_cyl scale < button_shape_HX + button_hole_clearance, 1, button_shape_HZ + button_hole_clearance > } #declare button_hole_frame_HX = button_shape_HX + button_hole_clearance #declare button_hole_frame_HZ = button_shape_HZ + button_hole_clearance #declare button_frame = object{ empty }