Draftwright 0.4.28
Recognition of turned parts is substantially more accurate, and a part that draftwright cannot
fully describe now produces a drawing that says so instead of producing nothing.
Three changes alter existing behaviour. Read these before upgrading.
- An unauthored general tolerance is no longer invented. The title block used to default to
ISO 2768-m, asserting a manufacturing requirement on every drawing whose caller supplied
none — including every STEP-derived generated script. It now statesUNSPECIFIED. Pass
tolerance="ISO 2768-m"explicitly to keep the old output;tolerance=""leaves the cell
blank (#1157, and this dissolves #501). - Turned-step recognition changed, through Quiddity 0.2.6 → 0.2.8. Rounded plate corners and
parallel offset cylinders no longer form a false stepped shaft, a modelled thread is no longer
read as one shoulder per turn, and contiguous equal-diameter bands coalesce into the single
span they physically are. Drawings of turned parts may show different diameter and length
callouts than 0.4.27 — in every case measured, fewer false ones (#1555, #1135). - A partial turned profile warns instead of raising.
generate_sheet_scriptand
Sheet.build()used to raiseValueErrorwhen declaredstep()segments did not span the
body, which meant no script and no drawing at all. They now build and report
turned_profile_not_spanned, naming the undescribed stretch. A hand-authored.step()
misuse — #631's original case — is therefore a warning rather than an error (#1132).
New diagnostics.
Sheetcan now reconcile AP242 PMI. PassSheet(part, source="part.step", pmi="annotate");
generated scripts do this for you. Unlowered records reportpmi_not_lowered, content with no
census behind it reportspmi_unreconciled, and a declaration claiming a source identity the
document does not contain reportspmi_source_unknown. Previously a script-built drawing ran
no PMI reconciliation at all — deleting a raw PMI record changed nothing it reported (#1563).lint_summary()["pmi"]now names the document it was reconciled against, with its sha256.
Fixed. On a geometry-only import, lint_summary()["score"] no longer rises when declared
features are removed (#1126). The score remains a severity heuristic, not a quality verdict —
read lint_summary()["quality"] for that.
Quiddity is pinned to 0.2.8.
Full changelog: v0.4.27...v0.4.28