400m swatch from a point somewhere in Catalunya.
The three APIs used were the following:
Google Elevations API
Mapquest Open Elevation Service API
Geonames SRTM3 API
I also tested the USGS Elevation Service, but I was looking for API which allowed me to query globally.
Here are the results (441 locations queried):
As a side note, Grasshopper reports the requests for data came in at*:
1.9s for Google Elevations API
3.5s for Geonames
413ms for Mapquest
*this is not only measuring the request, but also has to take into account the request throttling due to the various API limitations.
As you can see, there is quite a difference in the data, especially when looking at what Google returns. It is pretty clear that Mapquest and Geonames use very similar data coming from the SRTM3 dataset. This dataset is at 3 arc-seconds (appx 90m) for most of the globe (up to 60ºN and 56ºS). The resolution is 1 arc-second for the United States. Google reportedly uses hundreds of data sources to achieve a finer resolution, though this comes at a cost. Geonames and Mapquest put a limit of how many locations you can query at one time, with no limit per day (that I could find). Google puts a limit of 2500 requests per day, with each request having up to 512 locations, or a total of 25,000 locations.
The comparison was made possible by some of the little utility components which are included in gHowl, namely the XYZ->GEO component which translates points in Rhino/Grasshopper to WSG84 coordinates. …
ulio´s latest bakeAttribute, so it also sets a specified layercolor?
Thanks,
Phillip
Reply by Giulio Piacentino 1 hour ago
Hi Phillip
if possible, you should try to modify layer colors independently from baking. A layer can have only one color, but many objects.
To modify a layer color, use something along these lines:
if(!string.IsNullOrEmpty(layer) && !color.IsEmpty) { int n = RhinoDoc.ActiveDoc.Layers.Find(layer, true); if(n < 0) return; Rhino.DocObjects.Layer l = RhinoDoc.ActiveDoc.Layers[n]; l.Color = color; A = l.CommitChanges(); }
Can I also ask you to start a new discussion next time? I hope this helps,
- Giulio
…
tion for how a piece of paper can be bent into different shapes through a special folding technique. The idea is that 1) I create a module of the repeating pleating pattern in grasshopper, 2) create a rectangular surface through lofting which can change size and shape by pulling the control points of the side railings which created this surface, and 3) finally, array the initial module onto this malleable plane, and be able to see the different shapes that can result from changing the control points on the plane.
Here is an image of the module and one possible orientation of the foldable structure that I am after.
I have written a GH file for controlling the folding of the individual module. Although it achieves the end result, it doesn't quite fold correctly, and so doesn't achieve my purpose of clear visualization. (I am currently using version 6.0059.) The file is attached, please take a look and if possible, advice me on what I can do to make it fold correctly. Here is the file : origami-module.gh .
I have tried to use the tutorial Parametric Truss from Design Reform to array my modules onto a plane, but it doesn't work for me. (Most likely because my base form is not a rectangle? I am not sure.) Any help on how to do this with my module would be wonderful.
I have tried to create a plane that can change shape by moving the control points. In my method, I used 2 lines to loft. However, this only gives me two control points. I want to be able to control other parts of the line as well, in order to change the elevation of different parts of the line.
Any help and advice on this is very appreciated! I am also constrained by time (I have until the middle of July to finish this) and timely advice would be wonderful.
…
mple:
I wish to populate a rectangle with some random points, but I need them to be more dense at the base of the rectangle and then linearly getting more and more sparse towards the top.
This is how I worked it around:
1) first I have created a triangular prism,
2) then I've populated its volume with some random points
3) and finally I've projected them on the plane I'm wishing to populate.
But I don't really like the final result since the points are not as nicely spaced as if they were produced by the "Populate 2d" command. They look kind of "clumpy":
Do you have any better idea?
The best thing would be to be able to put a grayscale bitmap underneath and use it as a "density map"...
Here you have the .gh file I made:
prism.gh
Thank you very very much for the help! :)
By the way:
While I was preparing my 3d random distribution of points I've spotted a weird behaviour of the random command:
Even if the seeds are all different, for some values of them the points still belong to some common planes...
To solve that I had to jitter the output of one of the Random components.
I suppose this is a weakness of the pseudorandom generator implemented in the random component, isn't it?…
ilion.
Then i sketched the outline curves in rhino with a few control points. The building is symetric so i only draw one side. But i'm not sure what is better for a voroni. a sharp or a soft surface? Or dose i need points?
So i have some questions:
1. how can i loft the curves correctly? My problem is that if i divide my curves for more control points, grasshopper automatically change my curve. thats ok but than i've the problem with a short curve, which fit bevor with the large one, but after the devision it can't connect.
So i tryed to duplicate the long curve and split it but with the shatter battery it dosen't work. It always cut the curve somewhere.
2. my next problem is, the curves in rhino should be my main construction, which is always visible. so i decided to offset the curves that i got a colum. but i don't know how to orient the offset curves in the xyz axis.
3. hopefully if i have the surfaces, how can i build a voroni which is offsetet, and has maybe some different thicknesses? :D
Would be really great if s.o. can help me. I tried a lot but not every thing is simple.
Sorry for my bad english.
Thx max
Here are my files:
FCP_MAX_GH_konstruktion_1.3dm
FCP_MAX_GH_konstruktion_1.gh
…
w how. Thanks for that. Now I do have some questions.
1. I am using the area weight tool. I am first calculating the volume of the form. I then multiply that value by it's density. So for concrete I am using 2400 kg/m^3 x volume. I then divided that number by the area of the membrane that is supporting the mass. This gives me my area weight. It seems to be working well but I want to verify that this is the correct workflow. I also want to verify that gravity would be turned off since I am thinking it is already calculated within the weight component.
2. I am finding that the new triangular element tool works much better than trying to use EA/L as input for the springs from mesh. Even when I set the timestep, subiteration, and drag I still have issues with getting very stiff materials to work. On the new finite elements tool I wanted to verify that E was in pascals. I also wanted to ask if I use imperial units can psi be entered. Now from what I am seeing the materials are deforming more than expected and to get less deformation and stretch in the mesh area I am finding the E value needs to be increased more than the true material values. Often I am raising E by a multiple of 10 or 100.
I am going to describe my problem and I will gladly share the definition if you'd prefer looking it over but basically I have an inflated membrane at a certain pressure made of a particular material. I then have a certain volume of concrete on top of the inflated membrane. My goal is to review the displacements as the concrete is applied over the membrane and find the proper pressures to apply to keep it free from deformation. I am including a picture from a project that we used kangaroo on and attempted to deal with such issues. It was a class sponsored by Cloud9 architecture held at Art Center College of Design where I was one of the instructors. Hopefully this illustrates the problem. To summarize any example file that shows the best way to implement real material properties and unit based forces would be a helpful reference and would be greatly appreciated.
…
iangular element properly discretizes the area continuum forces, so they are independent of meshing density, unlike simply using a network of 1d springs.
The warp and weft stresses can also be set separately allowing greater control of the shape (making them equal will give minimal surfaces).
Because the soap film elements alone do not have any in-plane stiffness, it can often be useful to have some spacer elements to keep the nodes well distributed.
Also, if mesh edges follow geodesics on the surface, it helps keep the strips straight when unrolled, allowing more efficient use of material.
The G-string component can be used for both - keeping the nodes well spaced, and aligning edges with geodesics. It pulls each node toward a combination of its neighbours, but taking only the part of the force tangential to the surface, so it does not interfere with the shape of the surface, only affecting how the nodes are distributed on it.
The "GeoIndex" input lets you choose which neighbours will be used here. In this example, a quad mesh is used, and index 0 and 2 give the neighbours in the warp direction, while 1 and 3 are in the weft direction. Note that it is the triangulation of this quad mesh that is used for the actual soap-film elements.
There is also a "spacing" option. If this is true, the nodes will try and space out evenly along the geodesic, while if it is false, only the direction is affected. In this example it is set to false for the warp and true for the weft.
The example also includes use of the stripper and unroller components to get the flat strips. I have shown the result of splitting in either direction, and as you can see, only one of these is straight.
Finally, if all of this sounds overly complex, don't worry - for quick studies you can still use the simpler approach of just turning all edges of a mesh into springs, and provided you have a decent starting mesh, the result will be very similar to using the 2d element method given here. This is just provided for those that want to take things to greater degree of accuracy and further towards fabrication.…
s that I just can't quite figure out.
Zoom in of the lower left hand corner...
1. First off, I am not sure why two versions of the rectangles are showing, the original and the scaled versions from the image. This doesn't appear to be affecting my final results, so not a big deal, but would like to understand why there are two and get rid of the original rectangles if possible.
2. I would like to change the scaling factor of the the rectangles in the Y direction. They are currently scaling too small based on the image I provided. Is there a way to set a lower value minimum so that the rectangles are not quite so small. Please not that I am only wanting to scale the rectangles in the Y direction. I want the X to currently remain constant.
3. Lastly, I would like to offset the grid points in the y direction randomly so that the image does not seem so gridded. These should shift no more than 3/8 of the distance between the grid from the center point.
Desired Result:
Any help is greatly appreciated!…
Added by Josh Sawyer at 10:48am on September 17, 2017
: ----------------------------------------------------------------------------------------------
1)
Hi Clemens I've analysed a plate structure using Karamba and wanted to do a convergence analysis on results computed as a function of the number of elements.
Now, when strictly looking at the result magnitudes of internal energy (IE) and maximum displacement (w_max), it's acceptable, that their relative deviations are very small. But I cannot explain the tendencies of their graphs. From what I know, FEM should always compute underestimated results when compared to analytical solutions. So I don't understand why both the IE and w_max seem to be decreasing for an increasing number of elements.
But my main concern is the behaviour of the peak moment, it seems to be simply hill climbing untill suddenly a singularity kicks in. I initially wanted to use the peak moment as a fitness value for optimisation, but with this behaviour, I don't think that would make sense. I've attached my GH file as well.
It would be much appreciated if you could enlighten me on these subjects. Cheers Daniel Andersen
2)
Hi Daniel,
I could not run your definition because I have not all the plug-ins installed that you use.
You are basically right that the displacement should increase with a finer mesh. However the result of the shell analysis also depends on the shape of the triangles (well formed vs. very distorted). In order to test this, I think it would be interesting to use a very simple example (e.g. rectangular plate with one column) where you can easily control mesh generation. Would you like to start a discussion on this in the karamba group at http://www.grasshopper3d.com/group/karamba?
It is not a good idea to use the bending moment at a singularity for optimization because the result will be heavily mesh dependent. Also real columns do have a certain diameter and modeling them as point supports introduces an error.
Best,
Clemens
3)
oh, and by the way!
Here's some relevant literature on handling peak moments: https://books.google.dk/books?id=-5TvNxnVMmgC&pg=PA219&lpg=PA219&dq=blaauwendraad+plates+and+fem&source=bl&ots=SdDcwnrSA1&sig=6HulPmKNIhqKx4_rGxitteMC4CU&hl=da&sa=X&ved=0CDEQ6AEwA2oVChMIg66k0LPaxgIVgY1yCh1KPAeY#v=onepage&q=chapter%2014&f=false (Blaauwendraad, J., 2010. Plates and FEM : Surprises and Pitfalls, see Chapter 14) It would be great if a feature dealing with peak moments could be incorporated in Karamba. In my work, I ended up exporting my models to Robot in order to verify the moment values. Best, Daniel
4)
Hi Daniel,
thank you for your reply and the link to Blaauwendraads excellent book!
At some point I hope to include material nonlinearity in Karamba which will help in dealing with stress singularities.
If you want you could open a discussion with a title like 'moment peaks in shells at point-supports'. Then we could copy and paste the text of our conversation into it.
Best,
Clemens
----------------------------------------------------------------------------------------------…