Universal spool adapter


Thingiverse is in a horribly broken state, and apparently has been for quite a while (1, 2, 3, 4, 5). The Customizer feature has been down for months, and the search engine still hasn’t registered the miter box cam pin I uploaded over a month ago. Despite being downloadable from the direct link, it doesn’t even show up on my profile page.

(a lot of people seem to be migrating to Cults3D, which is at least functional, although the ongoing infestation of garbage seems to be clobbering its performance; I mean, how many dozens of kit-bashed buddha-with-another-head variations does anyone really need to upload in one day? Also, you have to create an account before they’ll let you download anything, and they don’t have an equivalent to Thingy’s customizer at all)

So I haven’t bothered to upload the customizable spool adapter I made to fit Sunlu filament to the Dremel 3D45 external spool holder.

Printed at 0.3mm layer height, all four pieces only use up 17 grams of filament, and take less than 90 minutes to print. OpenSCAD source after the jump.


Tested with the latest release candidate of OpenSCAD, and the latest version of the BOSL library.

Print two of each part, sizing the spacers to fill the remaining space on your spindle.

Spool Adapter

// default parameters are for mounting Sunlu spools on:
// Mk II: A Rigid spool holder for Dremel 3D40 / 3D45
// https://www.thingiverse.com/thing:3170382
// ~8 grams at 0.3 mm layer height

include <BOSL/constants.scad>
use <BOSL/shapes.scad>
use <BOSL/transforms.scad>

/* [Basic Parameters] */
// inner diameter of new spool
spool_inner_diameter = 73;
// outer diameter of existing spool holder
spindle_diameter = 18;
// length of adapter body (just enough to stabilize spool)
length = 10;
// length of retaining rim
rim_length = 2;
// thickness of spindle, rim, and spokes
thickness = 1;
// number of spokes per half-circle
spokes = 3;
// space to allow adapter to fit easily on holder and spool
clearance = 1;

/* [Curve Rendering] */
$fs = 0.5;
$fa = 1;

module spoked_wheel(l, id, od, w, s) {
  difference() {
    union() {
      tube(h=l, od=od, wall=w);
      for (i=[0:s-1]) {
        zrot(i * (180/s))
          cuboid([od - 0.02, w, l], align=V_TOP);
      }
      tube(h=l, id=id, wall=w);
    }
    down(0.01)
      cyl(l=l + 0.02, d=id, align=V_TOP);
  }
}

spoked_wheel(
  l  = length + rim_length,
  id = spindle_diameter + clearance,
  od = spool_inner_diameter - clearance,
  w  = thickness,
  s  = spokes
);
tube(
  h    = rim_length,
  id   = spool_inner_diameter - clearance,
  wall = thickness*2
);

Spool spacer

include <BOSL/constants.scad>
use <BOSL/shapes.scad>
use <BOSL/transforms.scad>

/* [Basic Parameters] */
// length of spacer
spacer_length = 5;
// inner diameter of new spool
spindle_diameter = 18;
// spacer thickness
thickness = 1;
// space to allow adapter to fit easily on holder and spool
clearance = 1;

/* [Curve Rendering] */
$fs = 0.5;
$fa = 1;

inner_diam = spindle_diameter + clearance;
tube(h=spacer_length, id=inner_diam, wall=thickness, align=V_TOP);

Comments via Isso

Markdown formatting and simple HTML accepted.

Sometimes you have to double-click to enter text in the form (interaction between Isso and Bootstrap?). Tab is more reliable.