Skip to content

Fix the fan-dipole build sheet cut list and geometry sketch - #10

Merged
skip17331 merged 1 commit into
mainfrom
fan-buildsheet
Jun 3, 2026
Merged

Fix the fan-dipole build sheet cut list and geometry sketch#10
skip17331 merged 1 commit into
mainfrom
fan-buildsheet

Conversation

@skip17331

Copy link
Copy Markdown
Owner

Bugs (reported)

For a 40/20/15/10 m fan dipole:

  1. Cut list — effectively only the lowest band looked real. The generic by-length cut list listed unlabelled half-wires ("Wire 1–4", qty 2 each, at half the true length) plus a phantom 0.5 m wire (the feed-bridge modelling artifact), with no band shown — so a builder couldn't tell which wire belonged to which band.
  2. Sketch — the geometry drew as an overlapping, mirrored star ("longest-to-shortest on the left, shortest-to-longest on the right"). That's the raw NEC geometry (legs fanned ±15° in azimuth, each split across a feed gap) projected to a plan view — correct for the solver, useless as a builder's drawing.

Both stem from the build sheet/sketch reading the raw deck instead of the model.

Fix (both fan-dipole-specific; every other antenna untouched)

  • Cut list (results/buildsheet.py) — built from model.legs: one full-length wire per band, labelled with its frequency (e.g. "Dipole leg for 14.175 MHz"), quantity 1, no phantom bridge.
  • Sketch (results/sketch.py) — a builder's schematic: the legs drawn to scale as parallel dipoles, longest at the top, each labelled with its band, tied together at a shared centre feedpoint.

Before → after (cut list, 40/20/15/10)

Wire 1  qty 2  9.958 m       Dipole leg for 7.150 MHz   qty 1  20.51 m
Wire 2  qty 2  5.023 m   →   Dipole leg for 14.175 MHz  qty 1  10.35 m
Wire 3  qty 2  3.355 m       Dipole leg for 21.225 MHz  qty 1   6.91 m
Wire 4  qty 2  2.498 m       Dipole leg for 28.500 MHz  qty 1   5.15 m
Wire 5  qty 1  0.500 m  (phantom feed bridge — gone)

Tests

tests/test_fan_dipole.py (+2): the cut list has one labelled, full-length entry per leg with no phantom bridge; the sketch draws one labelled wire per leg with the shared-feed schematic. Verified the build sheet still renders to Markdown and HTML (SVG embedded) for a fan dipole. Suite 512 → 514, green locally.

🤖 Generated with Claude Code

Two bugs, both from the build sheet reading the raw NEC deck — which for a fan
dipole splits every leg into two feed-gap halves fanned in azimuth plus a tiny
feed-bridge wire.

Cut list: the generic by-length grouping listed unlabelled half-wires ("Wire
1..4", quantity 2 each, at half the real length) plus a phantom 0.5 m bridge,
with no band shown — so a builder couldn't tell which wire was which band. Now
the fan dipole's cut list is built from the model's legs: one full-length wire
per band, labelled with its frequency (e.g. "Dipole leg for 14.175 MHz").

Sketch: the auto-projection drew the azimuth-fanned legs as an overlapping
star (mirrored left/right). Now the fan dipole gets a builder's schematic — the
legs drawn to scale as parallel dipoles, longest at the top, each labelled with
its band, tied together at a shared centre feedpoint.

Both fixes special-case FanDipoleModel in results/buildsheet.py and
results/sketch.py; every other antenna is untouched. Tests assert the cut list
has one labelled entry per leg (no phantom bridge) and the sketch draws one
labelled wire per leg. Suite 512 -> 514.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@skip17331
skip17331 merged commit 78219d8 into main Jun 3, 2026
6 checks passed
@skip17331
skip17331 deleted the fan-buildsheet branch June 3, 2026 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant