buddyd16 / Structural-Engineering

Structural Engineering Modules (Python 2.7 primarily)
BSD 3-Clause "New" or "Revised" License
227 stars 66 forks source link

[Wood Stud Wall] Making this a true Wood Stud Wall design tool. #17

Open hotmailbox opened 3 years ago

hotmailbox commented 3 years ago

Hi,

I just found your awesome post regarding wood post interaction diagram. It's super cool. Not sure if you are still active in this personal project and open for further development but I want to contribute ideas anyway. I wish I could be proficient in programing. I am wondering if you can add something to it to make it a bit more practical for every day design tasks. So instead of publishing a chart for specific stud height, revise/create different script to actual design studs for specific conditions (studs at the 1st story of n-story building with different stacking floor framing conditions at walls above for different loading conditions).

Add options to select:

  1. Number of stories with stacking wall above.
  2. Interior wall or exterior wall (and associated minimum lateral loads or wind load in psf)
  3. Conditions of floor/roof framing at each level above (floor/roof joist span on the left and on the right of the wall if they are bearing on the wall, dead & live loads in psf each side, cantilever or not, floor/roof joists continuous over wall or not, platform framing or balloon framing for eccentricity,...)to calculate the loads on to the wall at each level.
  4. Wall selfweight in psf
  5. Each story height and framing depth to calculate the wall weight and true stud height.

And the script will give options for stud size & spacing with detailed calculations when select each option.

I hope this will reach you well.

Thank you for doing all of this.

JackBandlow commented 3 years ago

You are welcome to take over this project. I am actually becoming a construction lawyer and plan to further develop my coding skills within the legal realm. I am happy to help you with this project. Let me know what I can do to help

hotmailbox commented 3 years ago

Oops, didn't expect to the reply within minutes. Much appreciated.

Congratulations on your new career. What state are you practicing? Did you go to law school after engineering degree? And self-taught program skills? Truly amazing.

I don't have programing skills to take on the project but ideas. The ideas I listed above is what I have been dreaming for a wood stud design tool. Not sure if I can find a like-minded one on Eng-Tips to continue this.

buddyd16 commented 3 years ago

I have a laundry list of projects I working on offline to eventually add to the repo, doing a lot of excel work lately.

I think @JackBandlow may have been working on python3 conversion, not sure I can only tell they forked the repo at some point, but I am very much still the owner of the repo??

In addition I also started the https://github.com/open-struct-engineer group and have been focused on the Concrete cross section tool there.

hotmailbox commented 3 years ago

Sorry, who is Celt83? Should be buddyd16?

buddyd16 commented 3 years ago

Yeah Celt83 (eng-tips) = buddyd16 (github)

I like your ideas here.

How I end up using the wood wall tool is to get the capacity values for various conditions and then in Revit I have a Dynamo script that performs load tracking and stack designs using the common spacing capacities.

JackBandlow commented 3 years ago

Yeah, I am mostly self taught in terms of coding and yes I am going to law school after getting an engineering degree. I am not sure what my end on this project is. It has been a few years since I have been involved in this.

buddyd16 commented 3 years ago

Just to clear this up @JackBandlow has had 0 involvement in this repo beyond forking it for themselves back in 2019.

JackBandlow commented 3 years ago

@buddyd16 that sounds accurate. I wasn't sure if I had any involvement.

hotmailbox commented 3 years ago

Thanks all for clarifying things up.

It's great that you are working with Revit too. I have quite a few ideas to integrate engineering and Revit but haven't had a chance to implement them because the lack of knowledge in programming.

@buddyd16 Again, thank you for doing this. I hope you will have time to implement my ideas for this tool. If successfully implemented, it'd be the most complete wood wall design tool. I would add one more feature that allow it to specify all stud size & spacing at all levels for a stacked wall system. Do you mind if I relive the thread on Eng-tips to pick other brains for ideas for this stud wall design tool?

hotmailbox commented 3 years ago

Or another feature that can generate entire stud wall schedule for a project based on multiple wall design. Say you name or mark walls A, B, C, D,... and tag them on plans in Revit, then you have a Dynamo tool to get all the input I listed above (number of stories, story height, tributary width each side each level and loads,...) then feed them to design tool which in turn gives you a nice stud wall schedule with different options and ready in Revit. It's totally possible, right?

buddyd16 commented 3 years ago

"...because the lack of knowledge in programming." This is easily fixed, I started here, Automate The Boring Stuff , and advanced to a large percentage of the stuff on here within a couple months.

Feel free to revive the thread on Eng-Tips.

Possible maybe, its actual deceptively difficult to get to what your asking for. The automation of the load take down ultimately requires a general grillage style load analysis program which will also have a a fundamental flaw - it will require users to model in Revit exactly as you would model in RISA/RAM, this means floors can't be modeled over the entire footprint instead they need to be modeled by area and have their span direction defined properly. I started down this path and just hit so many walls with needing users to do things a very specific way that I ultimately abandoned the approach and currently make users manually input tributary widths and area load psf's into custom wall family properties.

hotmailbox commented 3 years ago

Very impressive of what you have done/learnt for such a short amount of time.

No, for stud wall design, I don't think it's easy to have Revit to do the load take down. A simple tool with all manual input and spits out a stud wall schedule that can be used in Revit. Or if possible use Dynamo or PyRevit to get the span of framing each side of the wall at each level for tributary width calculation (with option to select the framing perpendicular or parallel to the wall). Before attempting to get things linked and automated with Revit, a standalone tool should work in concept first. Similar to this one image

My ideas came from this one https://youtu.be/ZK598XVWXGU?t=149

hotmailbox commented 3 years ago

How would I change the species and its design values? I don't see the drop-down menu to select and re-populate design values accordingly. Manually input all values, right? Am I missing something?

buddyd16 commented 3 years ago

Manual entry for now. To build a species database To do drop down menus I need to manually type all of the supplement values into excel and then save as a csv file just haven’t got around to it yet.

On Sun, Feb 21, 2021 at 2:27 AM hotmailbox notifications@github.com wrote:

How would I change the species and its design values? I don't see the drop-down menu to select and re-populate design values accordingly. Manually input all values, right? Am I missing something?

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/buddyd16/Structural-Engineering/issues/17#issuecomment-782813782, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC6XJSU7NHMW4PZXQMAW5ILTACYXNANCNFSM4X6HJANA .

hotmailbox commented 3 years ago

Thanks,

I manually input design values for several typical species & grades then saved the input files for later use. Works like a charm.

What did you use to compile the scripts to windows exe files? I tried py2exe and pyinstaller but failed to make it work.

Again, this is one of the best wood stud wall design tool.

buddyd16 commented 3 years ago

I used pyinstaller when I did it the first time, it's been awhile since I tried compiling any of the scripts though. If I remember right pyinstaller would end up creating two folders one of which had the .exe and all the supporting files. The GUI for the wood wall uses matplotlib which generates hundreds of supporting files. If you chose to compile to a single file then the exe is acting more like a zip file and unpacks everything each time you run it, because all the supporting files are really small it can actually take a really long time to unpack everything before the program actually runs.

hotmailbox commented 3 years ago

I see. It's not worth compiling then. Thank you for being very responsive. Concrete beam scripts are very helpful too. Python is not hard to understand but it'll take time to get to where you're now.

buddyd16 commented 3 years ago

be mindful of the bug with "L" and asymmetric-"T" shapes with the concrete beam one, the solver implemented in there doesn't rotate the neutral axis so the result isn't in force equilibrium with a uniaxial moment for those shape types.

feel free to reach out if you have any questions on things. I wrote a lot of this before I read any kind of style guidelines or program structuring books so everything is a bit all over the place.

hotmailbox commented 3 years ago

Don't worry. I am the one who always read manual or readme. Do you have any specific interest on any calc you want to write? I always want to make app for retaining walls, shoring design per Caltrans Shoring Manual, and tools to post-process data from ETABS. What state are you practicing?

hotmailbox commented 3 years ago

Hi,

What do I have to do to make these scripts work for latest Python?

buddyd16 commented 3 years ago

it may be more involved than this, still need to read up on the Python 3 changes, but using the simple_beam.py file as an example:

from __future__ import division
import Tkinter as tk
import ttk
import tkFont
import pin_pin_beam_equations_classes as ppbeam
from numpy import zeros
import numpy as np
import scipy.integrate as sci_int
import math
import os
import webbrowser
import tkMessageBox
import tkFileDialog

change to:

from __future__ import division
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.font as tkFont
import pin_pin_beam_equations_classes as ppbeam
from numpy import zeros
import numpy as np
import scipy.integrate as sci_int
import math
import os
import webbrowser
import tkinter.messagebox as tkMessageBox
import tkinter.filedialog as tkFileDialog

I used print statements as a crutch to debug a lot of stuff as well so anywhere you see:

print blahblahblah

change it to:

print(blahblahblah)
buddyd16 commented 3 years ago

for the wood_stud_wall_gui.py file: change the imports to this:

import tkinter as tk
import tkinter.messagebox as tkMessageBox
import tkinter.ttk as ttk
import tkinter.font as tkFont
import wood_classes as wood
import matplotlib
matplotlib.use('TKAgg')
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
import tkinter.filedialog as tkFileDialog
import os
import math

then every instance of NavigationToolbar2TkAgg needs to be changed to NavigationToolbar2Tk

every instance of canvas.show() needs to be changed to canvas.draw()

hotmailbox commented 3 years ago

Thanks,

After googling around, I was able to change the code in wood_stud_wall_gui.py to work in both Python 2 and 3 without any issues.

shuttle1987 commented 3 years ago

As a software engineer who's very interested in engineering mathematics I'd be very keen to have a chat with everyone about this project and the directions it is going in.

Specifically at the moment I have to do some structural designs for a wooden frame and I could really do with some help with that. I has assumed, falsely, that there would be more open source software in this space than there is and my searches led me to here. I'd be more than happy to help with improving the code here if the project is useful and still being used.

buddyd16 commented 3 years ago

to be honest I don't really have a solid direction, this ended up being more of a file dump of some scripts I got working generally enough that I thought they could be useful to others. I have not had a lot of spare time to get in and make some of the edits and reorganization that I think need to happen.

Long term I do plan to return to this at some point it's just not in the cards currently.

youandvern commented 3 years ago

@shuttle1987 I would also be interested to have a conversation about this. I'm a structural engineer studying software engineering and I recently started building an open source site to host engineering calculations like this. It's pretty basic at the moment, but I would love to continue working in this space to help enable more calculation sharing like this.