A simple parametric laser-cut filament spool design.
Designed specifically for my Ultimaker's stock 50 mm ID spool holder, but with a slightly larger 250 mm OD than Hafner "SD 200 K" 200 mm OD spools for holding about 1 kg filament.
The flange and core pieces are supplied as two different DXF files. Pack them to fit your laser cutter bed and stock sheet size. You'll need one set (of the six) core pieces and two of the flanges per spool. I've included the CDR file for the (rather inefficient) 12" x 24" 1/8" (300mm x 600mm 3mm) plywood sheet layout I used. These sheets are inexpensive and using one per spool isn't too wasteful.
Use six M3x16 or M3x18 hardware to hold the spool together. Alternatively you may glue the spool together with PVA wood glue for a cheaper solution. Either method is a little tricky to assemble at first, but you will quickly become adept. Some tape can help hold the nuts in the t-slots if you are having trouble - especially useful if you have small hands and can't reach inside easily.
If you need to use imperial hardware you might like to tweek the source OpenSCAD file and regenerate the DXF paths to match their geometry. Similarly if you aren't using 1/8" plywood (about 3.1 - 3.2 mm thick) you'll need to regenerate the cutting paths. Plywood can be poorly controlled in thickness and it is worth carefully measuring your sheets before cutting to ensure the tabs and slot construction will mate properly.
The kerf of the laser cut isn't modelled, but the design depends on it being non-zero, yet fairly small. This shouldn't be a problem for any laser cutter, but a CNC mill may need adjustments for minimum corner radius.