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.


Main Menu for all Apps

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.
My spreadsheet features:

  • 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/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/appB31
Lookup any AISC shape
Filter by text or by regex (W12, for instance)
Sort by any AISC property (ascending or descending)
sorted on BFDET descending

« Specifying a filtered lookup »
sorted on BFDET descending

« This is sorted on BFDET descending »

App B32 AISC Shape Properties
https://khoitsma1.pythonanywhere.com/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/appB4
Replaces 48 pages in AISC 15th Manual
Same old idea; this my version of ‘Hello World’.

App B51 WT Strut Capacity [eccentrically loaded]
https://khoitsma1.pythonanywhere.com/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.





App B52 Enhanced WT Strut Capacity [eccentrically loaded] (added January 2024)
https://khoitsma1.pythonanywhere.com/appB52
Just like App B51 except I added calculated smallest and lightest shapes and their capacities.

minimum WT

« Smallest and lightest WTs »

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 readable, even to a non-programmer. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *