diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2709b6a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +hexbrick-demo.scad +*.stl +*.png +!hexbrick-preview.png diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..65d2c24 --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +default: hexbrick-demo.scad hexbrick-demo.stl hexbrick-demo.png hexbrick-preview.png + +hexbrick-demo.scad: hexbrick-lib.scad demo.scad + cat $^ > $@ + +%.stl: %.scad + openscad -o $@ $^ + +XVFB_RUN := xvfb-run -s "-screen 0 1024x768x24" + +%.png: %.scad + $(XVFB_RUN) openscad --camera=15,20,0,30,0,25,120 --autocenter --imgsize 7680,5120 -o $*_4x.png $^ + convert -geometry 25% $*_4x.png $@ + rm -f $*_4x.png + +hexbrick-preview.png: hexbrick-demo.png + convert -geometry 50% $< $@ + + +.PHONY: clean +clean: + rm -f hexbrick-demo.scad hexbrick-demo.stl hexbrick-demo.png + +.DELETE_ON_ERROR: diff --git a/README.md b/README.md new file mode 100644 index 0000000..e5c4ac4 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Interlocking Hexagonal Toy Bricks + +![Hex Bricks rendered by openscad](hexbrick-preview.png "The plated sample bricks") diff --git a/demo.scad b/demo.scad new file mode 100644 index 0000000..2949da8 --- /dev/null +++ b/demo.scad @@ -0,0 +1,29 @@ + +// A-1 +hexgrid(-1,3) +piece_coordlist([[[0,0]]]); +piece_coordlist([ + [[0,1]], [[2,0]] +]); + +// A-3.1 +hexgrid(1,3) +piece_coordlist([ + [[0,2]], [[2,1]], [[4,0]] +]); +// A-3.2 +hexgrid(4,0) +piece_coordlist([ + [[0,2]], [[2,1]], [[3,2]] +]); + +// A-3.3 +hexgrid(1,1) +piece_coordlist([ + [[0,1]], [[2,0]], [[1,2]] +]); + +// D-1 (lateral brick) +hexgrid(4,-1) +piece_coordlist([[[0,0],[2,0]]]); + diff --git a/hexbrick.scad b/hexbrick-lib.scad similarity index 93% rename from hexbrick.scad rename to hexbrick-lib.scad index 41499ad..fd3e780 100644 --- a/hexbrick.scad +++ b/hexbrick-lib.scad @@ -171,31 +171,3 @@ module piece_coordlist(cc) { } } } - -// A-1 -hexgrid(-1,3) -piece_coordlist([[[0,0]]]); -piece_coordlist([ - [[0,1]], [[2,0]] -]); - -// A-3.1 -hexgrid(1,3) -piece_coordlist([ - [[0,2]], [[2,1]], [[4,0]] -]); -// A-3.2 -hexgrid(4,0) -piece_coordlist([ - [[0,2]], [[2,1]], [[3,2]] -]); - -// A-3.3 -hexgrid(1,1) -piece_coordlist([ - [[0,1]], [[2,0]], [[1,2]] -]); - -// D-1 (lateral brick) -hexgrid(4,-1) -piece_coordlist([[[0,0],[2,0]]]); diff --git a/hexbrick-preview.png b/hexbrick-preview.png new file mode 100644 index 0000000..7e9db02 Binary files /dev/null and b/hexbrick-preview.png differ