// -*- C -*- main_height = 95; spike_top_width = 21.04; spike_botpos_height = 9.5; spike_botpos_width = 11.68; topwall_width = 1.5; module NegativePlan(){ x4z = (spike_top_width - spike_botpos_width) / (main_height - spike_botpos_height); x0 = (spike_botpos_width - x4z * spike_botpos_height)/2; x1 = spike_top_width/2; z1 = main_height; polygon([[ x0, -5], [ x0, 0], [ x1, z1], [-x1, z1], [-x0, 0], [-x0, -5]]); } module PositivePlan(){ w = spike_top_width + topwall_width*2; translate([ -w/2, 0 ]) square([ w, main_height ]); } PositivePlan(); //NegativePlan();