// -*- C -*- whole_depth = 90; whole_width = 120; antifoot_width = 15; antifoot_height = 15; antifoot_slope = 1.0; antifoot_depth = 10; antifoot_base = 12; antifoot_front = 5; leg_width = 8; leg_thick = 8; stretcher_thick = 5; stretcher_width = 8; antifoot_back = antifoot_depth + antifoot_height/antifoot_slope; module AntiFoot(){ translate([-antifoot_front-antifoot_back, antifoot_width/2, 0]) rotate([90,0,0]) translate([antifoot_front, antifoot_base, 0]) linear_extrude(height=antifoot_width) polygon([[-antifoot_front, -antifoot_base], [-antifoot_front, antifoot_height], [0, antifoot_height], [0, 0], [antifoot_depth, 0], [antifoot_back, antifoot_height], [antifoot_back, -antifoot_base]]); translate([-antifoot_back, 0, 0]) cube([stretcher_width, whole_width*0.55, stretcher_width]); } module LeftLeg(){ effective_depth = whole_depth - antifoot_back; translate([-effective_depth, -whole_width/2, 0]) AntiFoot(); multmatrix([[1,0,0,0], [-((whole_width - leg_width)/2 / effective_depth), 1,0,0], [0,0,1,0], [0,0,0,1]]) mirror([1,0,0]) cube([effective_depth, leg_width, leg_thick]); } module RightLeg(){ mirror([0,1,0]) LeftLeg(); } module Stand(){ LeftLeg(); RightLeg(); } Stand();