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.
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.