From c269c6014b10f6f699f58155b773ce00d47b7bdf Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 30 Dec 2016 16:54:02 +0000 Subject: [PATCH 1/1] sewing-table: interlocks sorted --- Makefile | 2 +- sewing-table.scad.m4 | 58 ++++++++++++++++++++++++++++++++------------ 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index 1aac776..306f4f4 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ CONFIG=$(PLAY)/slic3r-config.ini FILAMENTSPOOL_AUTOS = filamentspool filamentspool-lt filamentspool-sm FILAMENTSPOOL_AUTOS += filamentspool-storarm3 -USING_AUTOS ?= $(FILAMENTSPOOL_AUTOS) xeno-drivebay-bracket dungeonquest-cone anke-gps-bracket cable-hole-trunking-cover anglepoise-neck crossbar-computer-led-mount wardrobe-hook knifeblock pandemic-counter pattress-boxes-3-cover bike-lipo-box earring-stand +USING_AUTOS ?= $(FILAMENTSPOOL_AUTOS) xeno-drivebay-bracket dungeonquest-cone anke-gps-bracket cable-hole-trunking-cover anglepoise-neck crossbar-computer-led-mount wardrobe-hook knifeblock pandemic-counter pattress-boxes-3-cover bike-lipo-box earring-stand sewing-table AUTO_TOPLEVELS := $(foreach m,$(USING_AUTOS),$(shell $(PLAY)/toplevel-find $m)) diff --git a/sewing-table.scad.m4 b/sewing-table.scad.m4 index eb7dc2a..37c2be0 100644 --- a/sewing-table.scad.m4 +++ b/sewing-table.scad.m4 @@ -30,7 +30,7 @@ tile_hard_edge_hole_dist = ply_edge_hole_dist + hole_slop; thehd = [ tile_hard_edge_hole_dist, tile_hard_edge_hole_dist ]; interlock_rad = interlock_dia/2; -interlock_negative_rad = interlock_rad + 0.25; +interlock_negative_rad = interlock_rad + 0.125; module Post(){ mirror([0,0,1]) { @@ -102,19 +102,21 @@ module RoundLeftCorner(this_post, right_post) { } } -module InterlockCore(r) { +module InterlockCore(r, plusth, ymir) { dx = sqrt(3) * r; $fn= 80; - translate([0, -thehd[0], 1]){ - mirror([0,0,1]){ - linear_extrude(height=tile_th+2){ - circle(r=r); - difference(){ - translate([-dx, -0.1]) - square([ dx*2, r/2 + 0.1 ]); - for (xi = [-1, 1]) { - translate([ xi*dx, r ]) - circle(r=r); + translate([0, -thehd[0], plusth]){ + mirror([0,ymir,0]){ + mirror([0,0,1]){ + linear_extrude(height=tile_th+plusth*2, convexity=10){ + circle(r=r); + difference(){ + translate([-dx, -0.1]) + square([ dx*2, r/2 + 0.1 ]); + for (xi = [-1, 1]) { + translate([ xi*dx, r ]) + circle(r=r); + } } } } @@ -124,17 +126,21 @@ module InterlockCore(r) { module InterlockNegative(this_post, right_post) { INREFFRAME(this_post, right_post) - InterlockCore(interlock_negative_rad); + InterlockCore(interlock_negative_rad, 1, 0); } -module TestPiece1(){ +module Interlock(this_post, right_post) { + INREFFRAME(this_post, right_post) + InterlockCore(interlock_rad, 0, 1); +} + +module TestPiece1(){ ////toplevel holes = [ [-100, 0], [ 0, 0] ]; difference(){ TileBase(holes[0], holes[1]); InterlockNegative(holes[1], holes[1] + [0,1]); - } Posts(holes); RoundEdge(holes[0], holes[1]); @@ -142,4 +148,24 @@ module TestPiece1(){ RoundLeftCorner(holes[0], holes[1]); } -TestPiece1(); +module TestPiece2(){ ////toplevel + holes = [ [ 0, 0], + [ 50, 0] + ]; + TileBase(holes[0], holes[1]); + Posts(holes); + RoundEdge(holes[0], holes[1]); + Interlock(holes[0], holes[0] + [0, -1]); +} + +module Demo(){ + translate([ -thehd[1], 0 ]) + color("blue") + TestPiece1(); + translate([ +thehd[1], 0 ]) + TestPiece2(); +} + +//TestPiece1(); +//TestPiece2(); +//Demo(); -- 2.30.2