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 a full proof of concept.

Feel free to follow the links and to offer a critique.

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

AISC Filtered Shape Properties
https://khoitsma1.pythonanywhere.com/apps/app3
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

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

WT Strut Capacity (eccentrically loaded)
https://khoitsma1.pythonanywhere.com/apps/app6
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.



The concept proof here is:
First, that I can build new apps, and seamlessly link them into what I have already.
Second, that the programming is readable.

    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

Third, that handling a large amount of data is quick and easy.

These 2 are just UI (user interface) demos
https://khoitsma1.pythonanywhere.com/apps/app1
https://khoitsma1.pythonanywhere.com/apps/app4

Leave a Reply

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