I haven't fully committed yet to coding all of my engineering calculators within the SketchUp API, but I am heading that direction as I further contemplate my next Sketchup Plugin: Medeek Structural Plugin.
The largest obstacle is the ability to generate MS Excel files and PDF documents (reports). For this to really work I need a way to have my plugin's calculations export their data into nicely formatted spreadsheets and/or PDF reports. I have no idea where to even start and don't even know if this sort of thing is remotely possible with SketchUp, the API or Ruby, I'm assuming it is because I am sure other people have run into this same sort of thing as me.
Any assistance or direction in this regard would be greatly appreciated.
Ultimately, I am hoping to create a structural plugin that will allow an engineer to do all of the lateral and vertical calcs for a typical residential or light commercial wood structure. The reason for using SketchUp for this sort of thing is the ability to leverage SketchUp's intuitive drawing interface to create all of the building primitives/elements and provide an easy to use method for viewing and inputting building geometry and other design criteria.
I've actually had the idea to create this type of program since about 3 years ago but the show stopper was always the graphical interface and 3D component of it. Not until I began tinkering with the API about a year ago and waded into a full blown plugin development (truss plugin) did I realize the potential available within SketchUp. SketchUp and its API solves the 3D interface hurdle magnificently and now I am hopefully on course to create the one piece of software that will be the apex of my engineering career and hopefully further automate and advance the field of residential structural engineering.
I've really only been working on the truss plugin for about a year now and there is a lot more to be done as well as two more plugins that I am hoping to get started on into the new year:
Medeek Structural Plugin
Medeek Wall Plugin
The structural plugin will deal less with the actual framing geometry and more specifically with the lateral and vertical engineering of the structure. It will be geared toward other structural engineers with the intent to automate residential structural engineering as much as possible.
Wood Shear Walls (segmented and perforated), Diaphragms (roof)
Beams, Headers, Joists, Rafters, Footings, Posts, I-Joists,
What will make this the killer app is that the 3D model will be able to automatically propagate the loads down through the structure while at the same time allowing the user to create the structure's geometry in an intuitive and friendly 3D environment - SketchUp.
Of course the real power of such a plugin only becomes apparent when you create a model and then decide to build that same house or structure in a different location with different site criteria. Rather than having to start from scratch you simply enter in the new wind speed, ground snow load, and seismic design criteria into the model and the plugin recalculates the entire structure and then alerts you on any members that are undersized or over stressed. This would be particularly beneficial to homebuilders who have a set number of model homes they use but build in various locations.
Its not much to look at but this is the beginning of the Medeek Structural Plugin:
I think I am going to try and utilize the Wall and Truss plugins as the jumping off point for the Structural Plugin. I've got to spend some more time fine tuning the shearwall module of the Wall Plugin first then I think we will be ready to try and develop this further.
I am really interested in this plugin. I am General Contractor in NE Oregon and draw up a lot of the house plans that I build for clients. It would be extremely helpful to have a tool that did the lateral and gravity calcs for me during the project design.
I am still working the bugs out of the Wall plugin and adding new features. Once the primary architectural elements are complete then work will begin on the structural engineering elements.
I was going to name the engineering module or plugin "Medeek Structural" however I've decided to change the name to "Medeek Engineering".
The plugin icon will now be:
The first toolbar I will add is the Beam Engineering Tools which will allow the user to add point loads, distributed loads and supports to beams drawn in the wall plugin:
This will be a separate extension that will be integrated with the other extensions in the mdkBIM bundle. It does not need to be installed with the mdkBIM bundle and is completely optional. However, it is not really a stand alone extension since it can only be used with geometry drawn by other Medeek extensions.
After giving it some additional thought I think it would be good to decouple this extension to the extent that even if for example the Wall plugin is not installed the user could install the engineering extension and still apply loads/support and analyze a given beam. However they would be unable to modify the beam as drawn (ie. size, depth, length) unless the Wall plugin was installed.
In the Account Manager its icon will be:
With respect to who will use this module, I actually do think a lot of architects and designers would find use for it even if they are unable to "stamp" their design as "engineered". There would be many situations where a designer would want to get a reasonably ballpark idea on how big a beam or header needs to be. Unless there are complex loading situations at play, assigning some basic loads and supports to a beam is usually not rocket science. However, as always it is garbage in, garbage out. Obviously the user needs to have some understanding of the correct site specific loads in order to get the correct answers.
That being said, my primary audience for this plugin is residential structural engineers (like myself) who are wanting to quickly apply loads to a design and push out a report with minimal effort. I still have a long way to go with all of this but I am definitely opening a new can or worms with this one, let's see where we can take it in the next few months.
I think I am entering uncharted territory with this new development. To my knowledge there does not exist a comprehensive software that combines architectural design with engineering, that is my goal with integrating this new engineering module/extension with the mdkBIM suite.
When you click on the "Draw Load/Support" icon of the toolbar you will be presented with this matrix menu:
Merging this topic with the previous structural plugin topic.
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:
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.
An example of point loads with Load Labels and Magnitudes turned on:
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:
The last matrix analysis engine I wrote was for the truss calculator, its been a while. The good news is that I have my textbook on how to do it and it turns out that the beam analysis problem is really only a one dimensional problem, much less complicated than a two or three dimensional problem. This is going to be fun, just so you guys no I'm on summer vacation right now so let me have some fun with a bit of engineering.
This is my reference and favorite text on the subject matter:
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:
Insertion of a support:
In certain situations you will need to regen the engineering loads and supports on a beam. A scenario might be where you edit the beam and change either its depth or width or both.
The regen engineering context menu item will allow you to do this and will appropriately reposition and/or resize the supports and loads to match the beam.
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:
Editing a support:
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...
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.
The updated toolbar with the "Engineer Beam" icon added.
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:
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.
Really looking forward to this plugin! Currently I use a combination of Forte and Vitruvis and I find I end up with a notepad full of calculated tributary areas and weight calcs so I can plug the info into the programs. To have a layer in the Sketchup model that contains all that information is a huge win. If there is anyway to contain within the plugin tributary areas with Auto uniform load calcs that would incredible.