v0.4.2
Small-parts and lint-quality release — everything from the tuner-peg drawing session (#62–#65) plus follow-ups.
Added
- Enlargement scales for small parts (#62).
choose_scale()now tries ISO 5455 enlargement scales — 10:1 (A4) and 5:1 (A4, A3) — before 2:1, so small precision parts get legible drawings instead of a 1:1 sheet with tiny views. The fit check no longer reserves title-block width when the view rows clear the title block vertically, letting borderline parts stay on smaller sheets. scale=andpage=overrides (#63) onmake_drawing(),build_drawing(), andchoose_scale(), plus--scale/--pageCLI flags.pageaccepts an ISO name ("A3"),"WIDTHxHEIGHT"in mm, or a(width, height)tuple. Give one and the other is chosen to fit; give both and they are used as-is.Leader/leader_offsetgaintext_side="auto"|"left"|"right"(#64) to force which side of the elbow the label extends to, and the default placement rule is now documented (the label follows the horizontal direction of tip → elbow). A forced side that would run the shaft through the label text raisesValueError.
Fixed
view_annotation_overlaplint no longer fires on line-work that must touch the view (#65). Centrelines are exempt, and annotations exposing alabel_bboxare tested by their label-text extents only — witness lines and leader shafts can enter the view freely. A label actually sitting on the part still fires.DatumFeatureandSurfaceFinishexpose a reallabel_bbox(#69) — the letter frame and Ra text extents — so the label-text-only lint logic covers them too.DatumTargetis exempt fromview_annotation_overlap(#71) — it sits on the part face by definition; page-bounds and pairwise checks still apply.
Full changelog: https://github.com/pzfreo/build123d-drafting-helpers/blob/main/CHANGELOG.md