Engineering Plugin for SketchUp

Started by Medeek, July 27, 2020, 07:30:34 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Medeek

When you click on the "Draw Load/Support" icon of the beam load/support toolbar you will be presented with this matrix menu:

Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Medeek

Still working on how best to graphically represent the various loads and supports but this a bit of a preview of how it will go:

Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer


Don_P

Sweet!
For inputs ideas;
This is the standby for dimensional sticks;
https://awc.org/codes-standards/calculators-software/spancalc

I needed sticks, built up beams and solid sawn of any dimension and species so have some different inputs;
Dimensional, NDS table 4a
http://www.timbertoolbox.com/Calcs/ddsimplebeam.html

Heavy timber, table 4d;
https://forestryforum.com/members/donp/beamclc06b.htm

Oh, often enough its uniform with point load(s)
Well and then combined, an open pavillion post beam and brace in the wind.

Medeek

The loads and supports will be on the Eng layer, annotations will be on Eng2 and warning graphics will be on Eng3.

Here is an example of some point loads applied to a timber beam, now I just need to setup annotations:



The different color arrowheads indicate one of the six load types (Dead, Live Floor, Live Roof, Wind, Snow, Seismic).  The colors assigned to each load type will be able to be customized in the global settings.  The size of the arrowheads will also be customizeable.

Regenerating the beam geometry will not regen the loads, there will be separate context menu item (right click the beam) to regen the engineering loads/supports.
Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Medeek

An example of point loads with Load Labels and Magnitudes turned on:

Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer


Medeek

An example of some distributed and point loads applied to a steel (W) beam:



I could also do something like this for the distributed load representations, thoughts?



Now I just need to add the supports and we are done with the engineering geometry.

After that I need to figure out the finite element analysis (matrix analysis) engine that will be used to calculate the shear, moments and deflections of the beam (single or multi-span).  Since the number of loads and supports is potentially unlimited there is no one classical equation that will solve this problem:

https://www.awc.org/pdf/codes-standards/publications/design-aids/AWC-DA6-BeamFormulas-0710.pdf
Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Don_P

The second one is easier on my eye.
I'd normally have the distributed load with the point load sitting on it at some location.
In some cases it may be a load uniformly increasing from end to end and then a point load or several on it, say a valley with snow and then a few widely spaced heavy timber purlins bearing on it.
It is going to be interesting to code. My beam calcs are mostly right out of DCA6, this is going to have to blend and sum several at once. I know its possible but beyond me, good luck!

On the back burner then think about combined bending from all that and an axial load.

Medeek

An example of a beam with loads and supports:



Clicking the control key allow the user to insert supports by their center and then bearing length.

View model here:

https://3dwarehouse.sketchup.com/model/9e576bc8-88cd-4a71-9b47-3c0298b6e823/Beam-Engineering-3
Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Medeek

Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer


Medeek

When you assign a support with blocking (lateral bracing) then it will be drawn with a dashed line (both sides of beam) as shown to indicate that bracing is being provided at that location:

Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Medeek

Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Medeek

The beam engineering geometry features are now complete.  You can now add, move, delete or modify an unlimited number of supports, distributed loads and point loads.  If the beam itself is modified there is also a function to regenerate all of the engineering geometry to properly match the updated beam width and depth.

The next step will be to work on the actual engineering engine (FEA) and add in additional engineering (global) parameters.  Some of these parameters will be things like deflection limits etc...
Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Medeek

Moving a distributed load:



It may be more intuitive to select the distribute load and then select whether to move the start or end point, rather than just moving it by its center point.  Granted, one can modify the start and end locations within the edit menu.
Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Medeek

Version 0.8.0 - 03.14.2021
- Created the Medeek Engineering Plugin, utilizing SketchUp's Ruby API (BETA release).

I haven't paid much attention to this plugin for about 8 months as I have been so busy updating all of the other plugins (Wall, Truss, Foundation and Electrical).  When I get some more time I will get back to work on the matrix analysis engine that is required for the calculation module.  For now you should be able to add loads and supports to beams created with the beam module of the Medeek Wall plugin.

The plugin is very much in BETA right now, however I wanted to at least get it out so people can start playing with the load and support tools and give me any feedback they might have.

The BETA/Trial version of the plugin can be downloaded here:

http://design.medeek.com/resources/medeekengineeringplugin.pl

Note, that you cannot purchase this plugin yet.  I will not enable purchasing until I have completed the calculation module and brought it out of BETA status.
Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer


Medeek

Now that I have the shear, moment, slope and deflections algorithms in place for point loads it is just a matter of algebraically adding multiple loads for more complex loading scenarios (ie. multiple loads and load cases). Here is a very simple example of two point loads applied to a two span beam. Note that self weight of the beam is not yet being considered:







I need to add some formatting logic into the top beam diagram to account for shorter spans so the dimensions don't run into the supports as shown. This is why a lot of testing and debugging is necessary.

This beam engineering tool with its matrix analysis engine is probably the single most complicated piece of code I've ever written, it certainly rivals the truss calculator (2013) and the complex roof (2019) module. I will admit that I now freely use ChatGPT with some of my coding puzzles lately and surprisingly it even understands the context of what I'm coding and offers suggestions to improve the accuracy and efficiency of the engine itself.

The numerical integration (for the slope and deflection) was initially stymied by incorrect boundary condition constants and I had no easy way of analytically solving for them. At that point I was fully aware of the issue but I was stumped at how to arrive at the right solution. ChatGPT suggested a normalization algorithm which proved to be correct and was even an easy fix within the algorithm. It's like having a really smart graduate student looking over your shoulder pointing out what your doing wrong and how to make it all better.
Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer

Medeek

I've been wanting to finish this beam calculator for some time now so I'm trying to dig deep and see if I can't get it out the door, even if it only has the capabilities to handle wood (sawn lumber, glulam, SCL, I-Joist) beams and joists initially..

Unlike my previous web based beam calculator this new tool will be completely open ended, there will be no limit on the number of supports or loads one can assign. Each load can have up to six different load types (dead, live, live roof, snow, wind, or seismic) So in a sense it is a general solver or engine which makes it quite powerful and much more useful in my opinion.

The one other harsh reality with engineering though is that the code is always changing. I will need to continually update the tool as future revisions to the ASCE7 and NDS are released as applicable. I've noticed as I review various copies of the ASCE7 (2005 - 2022) that the load cases are continually changing, which I find a bit odd, you would think that after years of refining the code we would slowly arrive at suitable load combinations and stick with them. This constant flux is rather annoying to be perfectly honest, and makes me really question the powers that be and why they can't iteratively arrive at a standard and eventually stick with it.

We all know how the (engineering) sausage is made. Why continually tweak the recipe? The technology and materials used in the building industry has not dramatically changed in my lifetime (50+ years). All of this continual tweaking and minor adjustments to the engineering code really does nothing to safety of the structure in my mind and simply adds to the cost of engineering since new software updates are required and additional training is imposed. Maybe the ASCE needs to keep itself relevant and the revenue from selling updated pricey copies of its signature standard (ASCE7) is a serious cash cow? I don't know what the story is with all of this but I feel I need to rant a bit when I just shelled out $260.00 for a paperback book that I will only crack open once every few months at best.

Here is another screenshot of a multi-load conditional with multiple spans:


Nathaniel P. Wilkerson, P.E.
Designer, Programmer and Engineer