feat: consolidate units to Metric/Imperial with unit-aware dialogs
Some checks failed
CI / lint (push) Has been cancelled
CI / test (macos-latest, 3.10) (push) Has been cancelled
CI / test (macos-latest, 3.11) (push) Has been cancelled
CI / test (macos-latest, 3.12) (push) Has been cancelled
CI / test (ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (windows-latest, 3.10) (push) Has been cancelled
CI / test (windows-latest, 3.11) (push) Has been cancelled
CI / test (windows-latest, 3.12) (push) Has been cancelled

- core/units: two dominant systems (Metric m/kN, Imperial ft/kip) with
  display conversion helpers, legacy 4-system migration in ProjectMeta
- dialogs/docks: unit-aware material, section, case, load, grid and
  results labels; diagram renderer unit labels; render controls update
- docs: add consistent_units.md; regen examples/*.osmodel artifacts
- tests: update persistence/phase8/project/unit-labels for new systems
This commit is contained in:
smillmorel 2026-09-08 16:33:30 -04:00
commit d01a5957b7
99 changed files with 3143 additions and 976 deletions

View file

@ -4,7 +4,7 @@
"name": "Elastic Frame (OpenSees Ex 4)",
"description": "3-story 3-bay 2D elastic frame, AISC W-shape sections, gravity (distributed) + lateral (point) + 5-mode eigen.",
"author": "OpenSees Examples Manual",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -523,7 +523,8 @@
"Iz": 3400.0,
"Iy": 3400.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 2,
@ -534,7 +535,8 @@
"Iz": 4330.0,
"Iy": 4330.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 3,
@ -545,7 +547,8 @@
"Iz": 5900.0,
"Iy": 5900.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 4,
@ -556,7 +559,8 @@
"Iz": 4930.0,
"Iy": 4930.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 5,
@ -567,7 +571,8 @@
"Iz": 1830.0,
"Iy": 1830.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -581,7 +586,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -593,7 +599,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -605,7 +612,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 4,
@ -617,7 +625,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 5,
@ -629,7 +638,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 6,
@ -641,7 +651,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 7,
@ -653,7 +664,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 8,
@ -665,7 +677,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 9,
@ -677,7 +690,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 10,
@ -689,7 +703,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 11,
@ -701,7 +716,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 12,
@ -713,7 +729,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 13,
@ -725,7 +742,8 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 14,
@ -737,7 +755,8 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 15,
@ -749,7 +768,8 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 16,
@ -761,7 +781,8 @@
],
"section_id": 4,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 17,
@ -773,7 +794,8 @@
],
"section_id": 4,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 18,
@ -785,7 +807,8 @@
],
"section_id": 4,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 19,
@ -797,7 +820,8 @@
],
"section_id": 5,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 20,
@ -809,7 +833,8 @@
],
"section_id": 5,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 21,
@ -821,9 +846,11 @@
],
"section_id": 5,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -954,6 +981,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",
@ -972,6 +1000,7 @@
1,
2
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",