X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=earring-stand.scad;h=63cf8c6f5d87ca44c963a4853abb37ed132ca8cc;hp=28024a876f5ed3bba2b98947420128b2b6d30943;hb=fcee4325ff676f7d8070037394a44b960e397acc;hpb=11bbae0f64a33a21098dfd6c6f6001a53cbdd072 diff --git a/earring-stand.scad b/earring-stand.scad index 28024a8..63cf8c6 100644 --- a/earring-stand.scad +++ b/earring-stand.scad @@ -2,6 +2,10 @@ include +front_height = 80; +front_width = 120; +front_setback = 30; + eclip_inner_rad = 2.5; eclip_gap_rad = 0.5; eclip_prong_th = 3; @@ -136,7 +140,53 @@ module TestPlanDemo(){ color("green") EclipRPlan(test_alpha, test_main_th); } +beta = asin(front_setback / front_height); + +uf = [-sin(beta), cos(beta)]; +ur = [-uf[0], uf[1]]; + +pp = [0, 0]; +pq = pp + uf*front_height + ur*eclip_ra_offset; +pr = [ pq[0] - eclip_base_offset + eclip_wall_offset, 0 ]; + +module Sketch(){ + polygon([pq, pp, pr]); +} + +thicks = [ 2, 2, 2 ]; + +module Joins(alpha, objnum, objnum_f, objnum_m) { + echo("Joins",objnum, objnum_f, objnum_m); + thm = thicks[objnum_m]; + if (objnum==objnum_f) { + EclipLPlan(alpha); + EclipRPlan(alpha, thm); + } + if (objnum==objnum_m) + rotate(alpha) + EclipPPlan(thm); +} + +module Object(objnum){ + echo("Object",objnum); + translate(pp) Joins(beta, objnum, 0,1); + translate(pr) mirror([1,0,0]) Joins(0, objnum, 0,2); + translate(pq) rotate([0,0,90]) Joins(beta, objnum, 2,1); +} + +module Base(){ Object(0); } +module Front(){ Object(1); } +module Back(){ Object(2); } + +module Demo(){ + Base(); + Front(); + Back(); +} + //PlanDemo(); //TestBase(); //TestProtr(); //TestRAProtr(); +//Sketch(); +Demo();