Files
willtools-demo/docs/pa-unused-options.md
will 25592fa6c2
ci / test (push) Successful in 6m14s
WillTools 2026-09-09 -- clean snapshot of the development repo for review
History-free snapshot of the private development repository at 77a82eb.
Code, docs and the public catalogue only: no plant or job knowledge
layers, no client, job or producer names (tools/scrub.py clean against
the widened term list; a second word-level grep clean). The intro deck is
left out because its slide images cannot be checked for job drawings.
2026-09-09 08:35:15 -05:00

7.1 KiB

Panel Analysis: controls the solve does not read (inventory)

Owner, 2026-09-07 (issue #22, item 2): "现在还有什么选项,是前端做出来了,引擎 或者后端还没实现的?比方说我现在选择 code,有意义吗?"

This is the answer, as of 2026-09-07. Method: every key the five page modules (pa_criteria / pa_extents / pa_structural / pa_handling / pa_reinforcement) render, checked for a consumer in WillTools.extension/lib/vibe/panelanalysisform.py's validate() / build_deck() (what reaches the deck), tools/panelanalysis.py and panellift/src/panellift/*.py (what the engine and 后端 read), and the pa_sketch_* modules (what a drawing reads). "Not used by the solve" means it never reaches the deck. A key a drawing reads but the solve does not is listed with that said.

How the page shows it: pa_pagespec stamps unused_by_solve: true on every field block or stage-matrix row whose own hint says "not (yet) used by the solve", plus the explicit list in _UNUSED_BY_SOLVE_KEYS; the page mutes those and tags them "not used by the solve" (docs/pa-web-spec.md §2a). So the cue is only as honest as the hints — three hints were found stale the other way on 2026-09-07 (deflection_ limit, cracking_assumption, strand_rail_location DO reach the deck) and were corrected. Run python tools/pa_pagespec.py --out /tmp/s.json and grep unused_by_solve rather than trusting this list; it was true the day it was written.

Design Criteria

key control state
design_spec Governing design code (ACI 318-19 / -14 / -11) Not used. No formula in panellift (pci.py, capacity.py, inplace.py) or tools/panelanalysis.py branches on the edition. Selecting it changes nothing.
conc_ec_psi, conc_eci_psi Elastic moduli Not used by the solve (panellift computes its own from f'c). Live on the page: recomputed from f'c / f'ci / unit weight as those are edited (issue #22 item 1).
rebar_fy_ksi, rebar_es_ksi, mesh_fy_ksi, mesh_es_ksi, strand_ep_ksi Material stiffness / yield Not used. Collected for the record.
ps_loss_humidity_pct, ps_loss_release_hours, ps_loss_erection_days Loss inputs Not used. Only ps_loss_pct (the flat percentage) reaches the deck.
second_order 2nd-order effects Not used.
inplace_comp_ratio, inplace_tension_sqrt In-place stress limits Not used as such; the deck carries the HANDLING limits (handling_tension_sqrt / handling_comp_ratio).
deflection_limit, cracking_assumption Service check Used (_service_from → loading.service). Hints corrected 2026-09-07.

Concrete Extents

key control state
top_in_form Which face is up in the casting bed Not used (reference only). Shown only for a Sandwich section since 2026-09-07 (owner ruling).
left_miter, right_miter Miter flags Not used. Only print a footnote sentence (_miter_sentence).
top_in_form_check, top_in_form_width_in, top_in_form_height_in Formed step at the top edge Not used; no longer rendered (issue #22 item 4). Declared so a saved value survives; return when pa_sketch_extents folds the step into the section, weight and centroid.
wythe_top_in, insulation_in, wythe_bottom_in Sandwich wythes Not rendered by any page today; read by the drawings (pa_sketch_extents, pa_sketch_reinf, pa_sketch_handling) and liftexport, not by the in-place solve.
fc2_psi, fci2_psi, unit_weight2_pcf Wythe-2 materials Not rendered by any page today; unit_weight2_pcf is read by pa_sketch_handling only. No wythe-2 modulus field exists, so item 1's "wythe-2 pair" has no target yet.

Structural Model

key control state
restraint.<n>.type = Fixed / Free / Floor tie Restraint type Not used. inplace.InPlaceInputs.restraint_xs is bare positions — every restraint solves as a simple support whatever its type. Fixed is only a hatch glyph in pa_sketch_freebody. Needs an engine concept before it can mean anything (owner's call: which types matter, and what a Fixed end does to the model).
load_opt_pattern_live Pattern live load Not used.
seismic_cs, seismic_zone_location, seismic_apply_to, seismic zones Seismic (collapsed) Not used. Module docstring: collected, never computed.
temp_ext_f, temp_int_f, temp_elasticity_mult, temp_alpha_t Temperature (collapsed) Not used.
ext_soil_*, int_soil_* Soil loads (collapsed) Not used.
addl_sw_start_in, addl_sw_end_in, addl_sw_magnitude_plf Additional Self Weight (collapsed) Not used, and the owner wants this section GONE in favour of the concentrated-loads table (issue #22 item 6a — not done in this pass, see the issue comment).
design_strips_method Design strips (collapsed) Not used.
conc_load table, wind_zone table, support table, restraint positions Used (applied_axial, wind, supports, restraints in the deck).

Handling (stage matrix)

Only include and load_multiplier are drives='solve' in panelanalysisform.STAGE_OPTIONS; every other row is stage3:

row state
lift_type, concrete_strength, stress_limits, rigging, sling_angle, ground_reaction, min_tilt_deg, max_tilt_deg, top_crane_carries Not used. build_deck packs only each included stage's load_multiplier. The rigging / sling_angle names that DO appear in panellift are the job file's own handling.rigging block (set by liftexport off plant knowledge), a different namespace from stage.<name>.rigging.
Secondary Erection load_multiplier Not used — no deck slot (_STAGE_DECK_MULT_KEY has three).
weight_lb (Panel weight override) Used by the handling weight/centroid summary and the deck's concrete_extents.weight_lb. Owner wants it replaced by the concentrated-loads table (item 6a).
face_lifter / edge_lifter tables, dunnage Used by the drawing and _lifter_tables; the per-stage lifter SET (item 8) does not exist yet — every included stage sees the same lifters.

Reinforcement

key control state
strand_rail_location Rail Used (_model_strand_x_ft mirrors/offsets the read strand x). Hint corrected 2026-09-07.
strand_rail_offset_in Rail offset Drawing only (pa_sketch_reinf); not in the deck.
mesh, mesh_layers, mesh_depth_in Welded wire mesh Drawing only (pa_sketch_reinf); not in the deck. (This page is under active change on the Windows side — re-check.)
interrupt table Reinforcement interrupts Collected only (issue #23 item 9h); the development-length restart is the companion engine issue.

What to do with one

Either wire it into the solve — in which case delete the "Not yet used" phrase from its hint so the page stops muting it — or leave it muted. Never a third state where the control looks live and does nothing; that is the complaint this document exists for.