SKÅDIS

2022-03-05

IKEA's SKÅDIS is a pegboard with two diagonally overlaid grids of peg holes, with a 40cm spacing on each grid.

Mounts

I have a SKÅDIS pegboard mounted in my workspace, and occasionally design and print new mounts for it. I've been working on standardising my process, so many of the following borrow from common library components, available in the SKÅDIS mount repository on Github.

Automation

Inspired by the Touchy Bugs automation, I added a Makefile with multiple entry points. It can:

  1. Iterate through all *.scad files in a directory, and for each:
  2. Build an *.stl (for printing) and *.glb (for rendering).

Makefile

BASE_NAME := ${basename ${FILE_NAME}}

all:
	for FILE_NAME in *.scad; do \
	    $(MAKE) FILE_NAME=$FILE_NAME one ; \
	done

one:
	openscad -o $(BASE_NAME).stl ${FILE_NAME}
	openscad -o ${BASE_NAME}.png ${FILE_NAME}
	blender --background --python stl2glb.py -- ${BASE_NAME}

The script for Blender is straightforward. Just import a *.stl and export as a *.glb

stl2glb

import bpy
import sys
import os
cwd = os.getcwd()

# Iterate through elements in the default scene (camera, cube, light) and delete them.
for obj in bpy.context.scene.objects:
  if obj.type == 'MESH':
    obj.select_set(True)
  else:
    obj.select_set(False)
  bpy.ops.object.delete()

bpy.ops.import_mesh.stl(filepath=cwd + "/" + sys.argv[-1] + ".stl")
bpy.ops.export_scene.gltf(filepath=cwd + "/" + sys.argv[-1] + ".glb")

For more information, check out the SKÅDIS mount repository on Github.


Feedback? Questions? Email me