Showing posts with label Analysis. Show all posts
Showing posts with label Analysis. Show all posts

Wednesday, 23 November 2011

Tributary Areas and Variable Loading

I've finally got some final improvements made to some useful functionality that can save hours of spreadsheet processing (or the like thereof).
I've enabled functionality within Grasshopper to compute tributary areas for nodes contained within a structural grid, as well as generating node loads from varying loading phenomena such as snow drifting or wind pressure.

This algorithm was used (in a more time consuming and specific way) for the 2012 velodrome roof in applying wind pressures from wind tunnel testing advice.  At the time we were still optimizing cable spacing but still wishing to test multiple loading scenarios.  This routine can work out tributary areas for arbitrary grids (based on mid distance from adjacent nodes), grid normals (although load can be applied in a uniform direction if desired) and utilize a varying loading intensity at different locations.  This can be defined (or checked) intuitively from a surface (or polysurface) relative to a reference plane (the local z from datum defines the magnitude of loading pressure).

If you download the models below, you'll see it uses a reference plane from the structure (required for non-planar grids), and the relative position from the loading plane.  I haven't yet developed grasshopper visualization of the generated node loads (it's on my todo list along with boundary conditions, releases etc) so you'll have to visualize in the analysis software.  I also plan to implement face loading for finite elements in a similar manner, and any other suggestions that might arise from users, so don't hesitate to send them through.

Please check the results carefully, I hope you find it useful.  I'm also very happy to assist in applying or testing this with your own applications to projects.
GSA model,  SAP model (others to be added shortly).

Wednesday, 23 March 2011

Galapagos and GSA solver

It's still early stages of testing and development of some recent work I've been doing to enable access to GSA solver directly within Grasshopper (and importantly Galapagas).



The attached example is still primitive, I'll find a moment to extend it to include a stiffness per mass objective, but it does demonstrate a few aspects of using this technique.

All feedback appreciated, including requests for more components to save manual generation of GWA attributes (which is shown for the point load generation).

Grasshopper Definitions
GSA    SAP    SpaceGASS    Egret    Robot

Monday, 21 March 2011

Grasshopper-GSA Form Finding and Structural Analysis


Some really exciting new features to be activated in the next public build of the Rhino/Grasshopper plugin connecting to Oasys GSA that will allow generation of a complete Structural Analysis model within Grasshopper including loads, materials, analysis tasks and solver controls.  This will allow form finding of membrane and tensegrity structures incorporating advanced structural attributes including loads, with realistic materials.

This will not be real time "dynamic" response such as kangaroo physics plugin (which at present can not perform at real time speeds with realistic materials and stiffness).

Interrogating and utilizing analysis results will also be enabled, including more conventional models and frames.

If you have requests/suggestions for this release don't hesitate to get in touch.  Other popular solvers including SAP2000, Robot and Strand7 are expected to follow in the near future.

I'll shortly be posting more detailed instructions, but for the time being you can download the grasshopper definition from here : Grasshopper Definition  You'll need latest Plugin for GSA from http://www.geometrygym.com/downloads

Tuesday, 22 February 2011

GH to GSA Finite Elements from Area and Regions


A feature that I added earlier this year was the ability to generate Structural Areas and Regions for Oasys GSA from Grasshopper.  You then mesh the structural areas within GSA.

Here's the associated models to try yourself.

Rhino model  Grasshopper Definition

Friday, 16 April 2010

Parametric Structure Models in Grasshopper

The first Geometry Gym plug-in for Grasshopper with Structural model Interaction has just been uploaded.
http:\\www.geometrygym.com/downloads  Versions for GSA, Strand7/Straus7 and Sofistik are available, other modelling interaction will soon follow (ie  SAP, SDNF, Robot etc).  If you want to influence the priority list for release, send me an email with which version you'd like to use.

So, here's a screen capture demonstrating the use of the plug-in, and sending the parametric model out of Rhino into GSA (similar for Strand7, Sofistik and others).



And to try this for yourself, here's the sample models shown and a revisit of the Gherkin.

First Grasshopper Definition to generate structural beams :          GSA Robot SAP2000 Sofistik Strand7


A simplified version of Newcastle Millennium bridge.  I haven't had a chance to add a slider to rotate it yet :-(

Associated Rhino model with properties :  GatesHead Rhino Model
Grasshoppper Definition : GSA Robot SAP2000 Sofistik  Strand7



Revisiting the mini-Gherkin.  Note I'm sure if I get a chance to study Grasshopper Trees and Branches this definition could be simplified a bit.

Associated Rhino model with properties :  Gherkin Rhino Model
Grasshopper Definition : GSA Robot SAP2000 Sofistik Strand7


Monday, 4 January 2010

Structure Analysis Model from Curves



Try for yourself the routines to generate structure analysis model from curves and points in Rhino.
Rhino Model from here.

Sunday, 5 April 2009

More on Manipulating Structural Models

Here's the next entry with a tutorial/example on ways of manipulating your structural analysis model within Rhino.



It's been a month since my last post, but there's some great improvements on the way for the plug-ins, and you can see a sneak preview of some of this on the video clip for this tutorial.


Better quality AVI file for those that can't access YouTube or wish to see more detail.

In the current released version, when nodes are moved in the model, the centreline curves and 3d extrusions remain static to the old node positions.   To update the geometry, the nodes are updated in the GSA model, and then the existing Rhino representation must be manually replaced by running the interpreter command again.

The plug-in has now been developed with dynamically response to geometry manipulations made in rhino.  If you move or relocate nodes in the Rhino, the element centrelines (and shortly 3d extruded representations) will update on the new node positions.  Also the upcoming version will automatically replace/update any existing structural data in the rhino file, rather than require the user to manually delete it to avoid duplicate representation.

Anyway, here's some more methods/examples for manipulating your structural model node positions in Rhino.

This example is a simple representation of a bridge, for which we wish to investigate the form and shape.

GSA model: archBridge.gwb
Robot model: archBridge.str
SAP200 model : archBridge.s2k
Sofistik model: archBridge.dat
SpaceGASS : archBridge.txt
Strand7 model : archBridge.txt
And if you want the 3dm file with the parabola : archBridge.3dm

Open the GSA model, and copy all the GWA data from the gateway.
In rhino, right-click on the ggInterpretGWA button to generate the structural analysis model in Rhino (alternatively you can export the model to GWA from GSA, and left click to open the file).

We don't really need the 3d extrusions at this stage, so either untick the option, or turn off the layers once interpreted.

I'm going to use some point moving commands I've scripted into the latest version of the BullAnt plug-in which you can download from here: http://www.geometrygym.com/downloads  Note that most of the new commands and functionality being developed will only become active when you activate the free trial license for the plug-ins.
I hope to give some tutorials for creating your own RhinoScripts for some of these manipulations in the near future.





The first bulk node manipulation we're going to do, is to move the points to equidistant points on the parabolic curve which represents the arch shape we wish to assess and update our model.


In the BullAnt plug-in toolbar, there is a button for the command ggUtilMovePointsToCurve that will prompt the user for multiple points, and then a curve to move the points onto.  During the selection of the curve, the user may toggle whether end points on the curve should be included, and a tolerance for coincident points (useful if your model contains joints with coincident nodes).  The command will attempt to sort the points into a logical order, and then update each point position to the corresponding division point on the curve.  A confirmation step visually draws arrows and dotted lines representing the changes (you might have to zoom depending on the scale of the movements and overall selection).  Once updated (remember the present version of the plug-in won't update the element centerlines yet), you can copy the node coordinates to the clipboard, and then update your GSA model by pasting the GWA data to the gateway.

The video then shows the same sequence having scaled the parabolic shape to give it more height.

Note that the hangers are no longer vertical for our new profile.  If retaining vertical hangers is important, we'll use a slightly different , you can mov the vertical hangers in position so that they all interesect the desired parabolic curve.  I recommend changing the current layer to a new empty layer, so we can bulk select in a minute.  Then run the Rhino Intersect command to generate a point at all of the desired intersection locations.   We can then use the BullAnt plugin command ggUtilMatchClosestPoint to select an original and target set of points to match.  As the command can utilise a specified maximum distance to move any point, we can bulk select all the structural nodes by right-clicking on the "OasysGSA NODES" layer.  Confirm the selection (by enter or spacebar), and then similarly select the newly created intersection points in the second selection.  Every point in the first group within distance of a point in the second group will have it's position updated to the nearest, and we can update our analysis model.

Rhino allows so many methods and options of generating/updating point positions that you'll find you're only really restricted by your own experience or ability to learn new ones.  Many situations might require manual processing, others will allow techniques such as grasshopper, scripting and all tools and plug-ins available.  Some upcoming blog entries will look at these options.