Skip to content

Fix per-girder stiffener preservation and render longitudinal stiffeners on both sides#186

Open
MdTalha17 wants to merge 5 commits into
Aditya-Donde:devfrom
MdTalha17:dev
Open

Fix per-girder stiffener preservation and render longitudinal stiffeners on both sides#186
MdTalha17 wants to merge 5 commits into
Aditya-Donde:devfrom
MdTalha17:dev

Conversation

@MdTalha17

Copy link
Copy Markdown

Description

This PR resolves issues with per-girder stiffeners and girder properties being globally reset to defaults during solve execution, and fixes the 3D CAD representation of longitudinal stiffeners.

Key Fixes:

  1. Per-Girder Configuration Preservation: Prevented solve_extend_basic_input_dict() from deleting and overwriting user-configured inputs in defaults.py on subsequent design solver runs.
  2. Design Mode Switch Safety Check: Handled transition from Optimized to Custom design mode by overwriting "All", None, or empty values with solved defaults, avoiding conversion/multiplication TypeError exceptions.
  3. CAD Parameter Binding: Passed stiffeners_dict down to BridgeParametersDTO so the CAD generator actually receives and renders the girder-specific stiffeners configurations.
  4. Symmetric Longitudinal Stiffeners: Updated the 3D girder geometry builder to construct longitudinal stiffeners on both sides of the girder web (left and right), rather than just on one side.

Detailed Changes

1. Core Bridge Defaults Extension

  • File: src/osdagbridge/core/bridge_types/plate_girder/defaults.py
    • Updated _on_no_of_girders_changed() to check girder indices via regex (e.g., matching .G{i}).
    • Only dynamic keys corresponding to girder indices exceeding the new girder count (or bracing index exceeding no_of_bracings) are deleted as stale, preserving valid configurations.
    • Added safety checks (key not in working_input_dict) to prevent resetting existing user inputs to global defaults.
    • Added fallback overwrite for "All", None, or empty string "" girder dimensions in Custom design mode to prevent solver crash errors.

2. CAD Parameters DTO Mapping

  • File: src/osdagbridge/core/bridge_types/plate_girder/plategirderbridge.py
    • Passed the parsed stiffeners_dict into BridgeParametersDTO inside get_3d_cad_parameters(), allowing the CAD generator to obtain per-girder configurations.

3. Girder Geometry Builder

  • File: src/osdagbridge/core/bridge_components/super_structure/plate_girder/builder.py
    • Modified build_plate_girder_geometry() within the longitudinal stiffeners block to construct and append plates on both sides of the web:
      • Right side: Centered at seg.tw / 2 + long_stiff_width / 2
      • Left side: Centered at -seg.tw / 2 - long_stiff_width / 2

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