# Multi-Page Apps using Dash/PythonAnywhere Apr 2020

Multi-Page Apps
I have completed a couple more apps using Dash by Plotly

This time, my goal was to build the apps on the web — accessible from any device – desktop, phone, iPad.

Now, I have accomplished a full proof of concept.

Feel free to follow the links, to use the apps, and to offer a critique.

https://khoitsma1.pythonanywhere.com

App B1 Grating Calculation (added July 2023)
https://khoitsma1.pythonanywhere.com/appB1
I present a grating calculation spreadsheet as an example of an embedded Excel application

Input cells may be freely edited by the user
Calculated cells provide numeric results (cell formulas are hidden)
Compare my calculations to the load table PDF from Borden Metal Products (Canada) Ltd.

• The spreadsheet basis is a one-foot width of grating
• Grating is welded, not ‘press-locked’
• Grating is ‘built’ from user dimensional input (∴ not proprietary)
• The clear span is calculated from 2 user inputs, center-to-center span and support width
• The maximum allowable deflection is set at 0.25 inch (petrochemical industry standard)
• The effect of grating weight is considered in calculating allowable loads:
• the uniform weight of grating is deducted from the maximum uniform load
• the ‘equivalent concentrated load‘ is deducted from the maximum concentrated load

App B2 AISC Strong Axis Bending
https://khoitsma1.pythonanywhere.com/pages/appB2
Replaces 45 pages in AISC 15th Manual
Graphical and tabular data
Change the shape selection (HP12, for instance)
Hover over the chart data points

App B31 Filtered Sorted AISC Shape Properties
https://khoitsma1.pythonanywhere.com/pages/appB31
Lookup any AISC shape
Filter by text or by regex (W12, for instance)
Sort by any AISC property (ascending or descending)

App B32 AISC Shape Properties
https://khoitsma1.pythonanywhere.com/pages/appB32
All properties for a user’s selection (2L4X3X3/8X3/4SLBB, for instance)
Just start typing 2L4 and the drop down will filter to your text
With scroll bars horizontal and vertical

App B4 Coefficient C for Bolt Groups
https://khoitsma1.pythonanywhere.com/pages/appB4
Replaces 48 pages in AISC 15th Manual
Same old idea; this is my version of ‘Hello World’.

App B51 WT Strut Capacity [eccentrically loaded]
https://khoitsma1.pythonanywhere.com/pages/appB51
I transformed my WT strut spreadsheet into a single program function with only 8 inputs.

```def WTStrutEcc(sh_name, stl_name, P_load, Lb_feet,
Gusset_thickness, Stem_in_CompressionQ,
Axial_amplificationQ, Consider_selfweightQ):```

Two databases are used; one for shape properties, and one for steel properties.

Notice the optional plot.

https://khoitsma1.pythonanywhere.com/pages/appB52
Just like App B51 except I added calculated smallest and lightest shapes and their capacities.

App C1 AISC Bolt Capacity (added May 2024)
https://khoitsma1.pythonanywhere.com/pages/appC1
Calculates the shear capacity of a bolt configuration — bolt, plate, spacing, edge distance, specification, installation. In one quick app, solves all aspects of AISC 15th Edition Tables 7-1 through 7-5. All in accordance with the 15th Edition of the Manual of Steel Construction, Section J3 (AISC 360-15, J3).

Concept
The proof of concept here is that:

1. I can build new apps, and seamlessly link them into what I have already.
2. The programming is easily readable to an engineer, even to a non-programmer engineer. Here is an excerpt from my WT Strut calculations.
3. ```    Lc_over_rmin_smallQ = Lc_over_rmin <= Lc_over_criteria

x0 = sh.Y - sh.TF / 2
y0 = sh.X

r0_bar_squared = x0 ** 2 + y0 ** 2 + (sh.IX + sh.IY) / sh.A

H = 1 - (x0 ** 2 + y0 ** 2) / r0_bar_squared

Fex = (PI / (Lcx / my_rx)) ** 2 * E
Fey = (PI / (Lcy / my_ry)) ** 2 * E
Fez = ((PI / (Lcz) ** 2 * E * sh.CW + G * sh.J)) * (1 /
sh.A / r0_bar_squared)

FE_E4 = ((Fey + Fez) / 2 / H) * (1 - SQRT(1 - (4 * Fey * Fez * H) /
(Fey + Fez) ** 2))

Fe_nonslender = (PI / Lc_over_rmin) ** 2 * E
```
4. Handling a large amount of data is quick and easy.