# =================================================================
# Futterturm -- STL- und Bildexport
#
#   make            alle Druckteile nach build/
#   make halbe      zusaetzlich die beiden Deckelhaelften
#   make img        Vorschaubilder nach img/
#   make build/rohr.stl     einzelnes Teil
#   make clean      build/ loeschen
# =================================================================

OPENSCAD ?= openscad
SRC      := futterturm.scad

# Binaeres STL: rund ein Sechstel der Dateigroesse von ASCII-STL
STLOPT   := --export-format binstl
BUILD    := build
IMG      := img

# Teile, die man in der Vorgabekonfiguration druckt
PARTS := deckel rohr stopfen spange2 stift
STLS  := $(PARTS:%=$(BUILD)/%.stl)

RENDER = $(OPENSCAD) --render --colorscheme=Tomorrow --autocenter
VIEWALL = --viewall

.PHONY: all halbe img clean
.DELETE_ON_ERROR:

all: $(STLS)

# Die Zielverzeichnisse entstehen im Rezept ($(@D)), nicht als eigenes
# Target -- sonst kollidiert das Verzeichnis img mit dem Phony-Ziel img.
$(BUILD)/%.stl: $(SRC)
	@mkdir -p $(@D)
	$(OPENSCAD) $(STLOPT) -D 'part="$*"' -o $@ $<

# Deckel in zwei Haelften -- fuer Druckbetten unter 344 mm
halbe: $(BUILD)/deckel_a.stl $(BUILD)/deckel_b.stl

$(BUILD)/deckel_a.stl: $(SRC)
	@mkdir -p $(@D)
	$(OPENSCAD) $(STLOPT) -D geteilt=true -D 'part="deckel_a"' -o $@ $<

$(BUILD)/deckel_b.stl: $(SRC)
	@mkdir -p $(@D)
	$(OPENSCAD) $(STLOPT) -D geteilt=true -D 'part="deckel_b"' -o $@ $<

# -----------------------------------------------------------------
# Vorschaubilder fuers README
# -----------------------------------------------------------------
img: $(IMG)/alle.png $(IMG)/deckel.png $(IMG)/rohr.png \
     $(IMG)/rohr-schnitt.png $(IMG)/spange2.png $(IMG)/stopfen.png

$(IMG)/alle.png: $(SRC)
	@mkdir -p $(@D)
	$(RENDER) $(VIEWALL) --imgsize=1200,850 --camera=0,0,0,55,0,25,0 -D 'part="alle"' -o $@ $<

$(IMG)/deckel.png: $(SRC)
	@mkdir -p $(@D)
	$(RENDER) --imgsize=1400,420 --camera=0,0,0,55,0,12,380 -D 'part="deckel"' -o $@ $<

$(IMG)/rohr.png: $(SRC)
	@mkdir -p $(@D)
	$(RENDER) $(VIEWALL) --imgsize=520,900 --camera=0,0,0,78,0,22,0 -D 'part="rohr"' -o $@ $<

$(IMG)/spange2.png: $(SRC)
	@mkdir -p $(@D)
	$(RENDER) $(VIEWALL) --imgsize=900,620 --camera=0,0,0,110,0,25,0 -D 'part="spange2"' -o $@ $<

$(IMG)/stopfen.png: $(SRC)
	@mkdir -p $(@D)
	$(RENDER) $(VIEWALL) --imgsize=800,600 --camera=0,0,0,62,0,25,0 -D 'part="stopfen"' -o $@ $<

$(IMG)/rohr-schnitt.png: doc/rohr-schnitt.scad $(SRC)
	@mkdir -p $(@D)
	$(RENDER) $(VIEWALL) --imgsize=800,760 --camera=0,0,0,72,0,28,0 -o $@ $<

clean:
	rm -rf $(BUILD)
