From: Ian Jackson Date: Thu, 5 Nov 2020 18:34:57 +0000 (+0000) Subject: scaffold-clamp: wip X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=commitdiff_plain;h=e73f001828c046df241cda57b9297e08dde5a1ee scaffold-clamp: wip Signed-off-by: Ian Jackson --- diff --git a/scaffold-clamp.scad b/scaffold-clamp.scad index e621b71..d0e7668 100644 --- a/scaffold-clamp.scad +++ b/scaffold-clamp.scad @@ -37,10 +37,12 @@ flats_y = open_gap/2 + th; stride_z = hinge_unit*2 + hinge_z_gap*2; total_z = hinge_units * stride_z - hinge_z_gap; +pin_flatten = pin_dia/2 * (1 - cos(45)); + $fa = 3; $fs = 0.1; -module MainPlan() { +module MainPlan(flatten=false) { difference(){ offset(r=-smooth_r) offset(delta=smooth_r) union(){ @@ -52,7 +54,14 @@ module MainPlan() { circle(r = tube_dia/2); rectfromto([0, -open_gap/2], [max_x+1, +open_gap/2]); - translate([hinge_x, 0]) circle(r= hole_dia/2); + translate([hinge_x, 0]) { + intersection(){ + circle(r= hole_dia/2); + if (flatten) + translate([ pin_flatten, 0 ]) + square(center=true, [hole_dia, hole_dia + 1]); + } + } } } @@ -62,28 +71,33 @@ module Portion(d=0) { [max_x+10, -(tube_dia/2+th+10)]); } -module MainPlanA(){ +module MainPlanA(flatten){ intersection(){ - MainPlan(); + MainPlan(flatten); Portion(0); } } -module MainPlanB(){ +module MainPlanB(flatten){ difference(){ - MainPlan(); + MainPlan(flatten); Portion(hinge_gap); } } -module HalfClamp(){ ////toplevel - linextr(0, total_z) mirror([0,1]) MainPlanB(); - for (i=[0 : hinge_units-1]) { - translate([0,0, stride_z*i]) - linextr(0, hinge_unit) MainPlanA(); +module HalfClampX(flatten){ + translate([0,0, -total_z/2]) { + linextr(0, total_z) mirror([0,1]) MainPlanB(); + for (i=[0 : hinge_units-1]) { + translate([0,0, stride_z*i]) + linextr(0, hinge_unit) MainPlanA(flatten); + } } } +module HalfClampA() { HalfClampX(false); } +module HalfClampB() { rotate([180,0,0]) HalfClampX(true); } + module PlanDemo(){ ////toplevel MainPlan(); translate([0,0,-4]) color("red") Portion(1); @@ -96,5 +110,10 @@ module PlanDemo(){ ////toplevel // translate([max_x - hinge_x + 20, 0]) color("blue") MainPlanA(); } +module Demo(){ ////toplevel + color("red") HalfClampA(); + color("blue") HalfClampB(); +} + //PlanDemo(); //HalfClamp();