// -*- C -*- // should rename this to actual name of the product include lip_height = 2.0 - 0.15; lip_depth = 2.5 /*?*/ - 0.20; neck_width = 26.5 - 0.45; neck_depth = 28.5 - 0.45; neck_length = 1.5 + 0.50; slope = 0.35; nep0 = [0,0]; nep1 = nep0 + [0,1] * neck_length; nep7 = nep0 + [1,0] * lip_depth; nep2 = [ nep7[0], nep1[1] + slope * (nep7[0] - nep1[0]) ]; nep3 = nep2 + [0, 0.1]; nep4 = [ nep0[0]-1, nep3[1] ]; nep6 = nep7 + [0,-1] * lip_height; nep5 = [ nep4[0], nep6[1] ]; nepm = [ nep0[0], nep3[1] ]; total_height = nep2[1] - nep6[1]; nep_z_offset = -nep2[1]; nep_side_offset = [ neck_width/2, nep_z_offset ]; nep_rear_offset = [ neck_depth/2, nep_z_offset ]; inner_pos = [-0.1, -total_height]; module NeckEdgePlan() { polygon([ nep0, nep1, nep2, nep3, nep4, nep5, nep6, nep7 ]); } module Neck() { for (m=[0,1]) { mirror([m,0]) { translate(nep_side_offset) NeckEdgePlan(); rectfromto(inner_pos, nep_side_offset + nepm); } } } //NeckEdgePlan(); Neck();