I'm an AFOL. I have a reasonable collection of LEGO from my childhood, but have continued to buy the occasional set. Right now my focus is on the Creator Expert vehicles and train sets.
Recently I've been using LeoCAD to design and render MOCs and experiments. LeoCAD is a LEGO CAD tool, one of the LDraw system of tools for designing and sharing LEGO creations. Subpages related to these MOCs and experiments:
I'm using a Makefile with some LeoCAD scripting to render images of the models and submodels. With an "ortographic" projection and flat shading, these renders look similar to official LEGO manual renders.
LEOCAD=/Applications/LeoCAD.app/Contents/MacOS/LeoCAD
FILE=main.ldr
# identify the submodel names, which must not contain spaces.
SUBMODELS=$(shell cat ${FILE} | grep "^0 FILE" | cut -d " " -f 3- - | cut -d "." -f 1 -)
test:
echo ${SUBMODELS}
render-all:
for submodel in ${SUBMODELS}; do \
SUBMODEL=$$submodel make render-submodel ; \
done
render-submodel:
# top and bottom
SUBMODEL=$$SUBMODEL LAT=90 LONG=0 make render-submodel-angle
SUBMODEL=$$SUBMODEL LAT=270 LONG=180 make render-submodel-angle
# sides
SUBMODEL=$$SUBMODEL LAT=0 LONG=0 make render-submodel-angle
SUBMODEL=$$SUBMODEL LAT=0 LONG=90 make render-submodel-angle
SUBMODEL=$$SUBMODEL LAT=0 LONG=180 make render-submodel-angle
SUBMODEL=$$SUBMODEL LAT=0 LONG=270 make render-submodel-angle
# elevated diagonals
SUBMODEL=$$SUBMODEL LAT=35 LONG=45 make render-submodel-angle
SUBMODEL=$$SUBMODEL LAT=35 LONG=135 make render-submodel-angle
SUBMODEL=$$SUBMODEL LAT=35 LONG=225 make render-submodel-angle
SUBMODEL=$$SUBMODEL LAT=35 LONG=315 make render-submodel-angle
render-submodel-angle:
mkdir -p images
${LEOCAD} \
-i images/${SUBMODEL}-${LAT}-${LONG}.png \
-s ${SUBMODEL}.ldr \
--camera-angles ${LAT} ${LONG} \
--shading flat \
-w 1280 -h 720 \
--line-width 2 \
--orthographic ${FILE}
export-all:
for submodel in ${SUBMODELS}; do \
SUBMODEL=$$submodel make export-submodel ; \
done
export-submodel:
${LEOCAD} \
--export-collada ${FILE}.dae \
-s ${SUBMODEL}.ldr ${FILE}
blender --background --python dae2glb.py -- ${FILE}