// -*- C -*- main_sz = 20; wall_th = 3; front_fullsz = 10; back_tot_l = 30; back_cut_l = 4; back_cut_w = 10; back_prong_w = 3; module MidPlan(){ polygon([[0, 0], [0, main_sz], [wall_th, main_sz], [wall_th, wall_th], [main_sz, wall_th], [main_sz, 0]]); } module FrontPlan(){ halfway = (front_fullsz + main_sz)/2; polygon([[0, 0], [0, main_sz], [front_fullsz, main_sz], [main_sz, front_fullsz], [main_sz, 0]]); } module BackPlan(){ sqmid = main_sz * sqrt(0.5); prlen = back_tot_l - sqmid; prx = 0.5*back_cut_w + back_prong_w; difference(){ union(){ square(main_sz); rotate(-45) translate([-prx, sqmid]) square([prx*2,prlen]); } rotate(-45) translate([-back_cut_w/2, back_tot_l-back_cut_l]) square([back_cut_w, back_cut_l+1]); } } //MidPlan(); //FrontPlan(); BackPlan();