ulting topography, I just wanted it to be reasonably close so it looked appropriate as context. That sort of drives the rest of it (OSM).
Even though the earth is not truly a sphere, I treat it as one for the purposes of calculating distances in Elk. So the first step for both the SRTM and OSM translations is to figure out the length of one degree and use that number against the coordinates to determine the position in the XY plane.
Latitude:
The circumference of a circle is 2πr. The circumference of the earth is about 6371000m so you get about 40 million meters for the circumference. Further convert that to a distance per degree and you get around 111,194m or 364,812'. (PI * EarthRadius) / 180 gives you the degree length in meters and multiplying it by Y was just scaling it to feet. Since circumference is 2πr, another way to write the formula would be (2 * PI * EarthRadius) / 360.
Longitude:
Longitudinal lines converge at the poles so their distance at the equator is the same as latitude (111,194m per degree), but converges to 0 as it gets closer to either pole. Technically this means that the farther away from the equator you go the points should be slightly closer together. I'm just getting an average distance for the points, so I get the median latitude degree in order to determine the radius of the earth sphere at that distance.
Then you subtract the lower end of the domains from the CSV's longitude and latitude, and then multiply the resulting decimal number by the calculated lengths for a degree in longitude and latitude and those numbers are combined to be the X and Y coordinates of the points.
Hope this helps.
-Tim…
to do once I figured out how you use only a small portion of each of my generated curves to make the 360 degree Loft surface. I had a huge AHA! moment when I realized the complete Loft surface really only needs a small portion of the generated curves rotated around to form a closed (except for top & bottom) surface. That is a major new insight for me and I appreciate you pointing it out.
I also tweaked the Twist angle parameter a bit so the resulting positive and negative Twist surfaces, when combined, yielded a result that was closer to my original shape. This is when I discovered something very interesting.
When I baked/exported the result using just one of the 2 twisted surfaces I got an STL file that had no errors, that 3D Builder was able to simplify from a 37 MB file to a 3 MB file, and that sliced A-OK. But, when I combined the left and right twisted surfaces, I was back with my same set of problems: the exported STL file had many errors, could not be fixed, and did not slice properly.
I went back to my original layout that uses the complete set of generated curves to create the Loft surface and found I got exactly the same results - using only one twisted surface worked fine, but nothing worked when the left and right twisted surfaces were combined. By nothing I mean I tried all the standard methods (GH Join and Sunion, Rhino Solid/Union, Join, etc.) What I think this means is that the Loft surface behaves the same, and apparently is the same, regardless if it is generated by rotating strips or by using complete closed curves.
Furthermore, I am guessing the problems with the combined/exported STL file made from both left and right twisted surfaces has to do with overlapping/coincident parts of each one - like the top & bottom planar surfaces and some of the wiggly parts.
If I am correct about this then it suggests to me that there is some sort of glitch in Rhino's STL Export function. This is surprising to me since I though an STL file only paid attention to the external shape of thngs,and did not know or care about any inside stuff. Of course this is all conjecture on my part, but at least for now seems it will be impossible for me to actually print the double-twisted geometry.…
Added by Birk Binnard at 3:52pm on September 23, 2016
imum height of built volume which would not violate the solar access for defined surroundings given filtered sun vectors.
Solar Collection - A complementary 3D envelope which defines the lowest heights from which a new built volume would receive solar access, given a built context and filtered sun vectors.
The new component harnesses ladybug's SunPath tool to determine relevant sun positions based on input from an .epw file. The simulation also takes into account surrounding buildings if provided or a self envelope if omitted, with the goal of adding control and flexibility in conjunction with a more accurate simulation.
A video tutorial is available here - https://www.youtube.com/watch?v=hRtsxgJCVEw
An example file is both attached and accessible through here - https://www.dropbox.com/s/ao11882no95io9x/solarEnvelopeAdvanced_example_file.gh?dl=0
The component takes as an input a filtered list of sun vectors, a base surface which represents the site border and a list of curves, representing the surrounding context
and outputs a point cloud and a polysurface -
which in turn can be closed and further evaluated (On the left - solar collection, on the right - solar rights) -
By Boris Plotnikov and with the assistance and guidance of Prof. Guedi Capeluto, based on SustArc model. The component could not have be alive without the invaluable help of the awesome Chris Mackey and Mostapha Sadeghipour Roudsari in development and integration, also a big thanks is due to Abraham Yezioro for testing and advising on usability.
For further reading it might be worth taking a look at Ralph Knowles's work, e.g -http://www.fau.usp.br/aut5823/Acesso_ao_Sol/Knowles_2003_Solar_Envelope.pdf and G. Capeluto and E. Shaviv's, e.g - http://www.ibpsa.org/proceedings/BS1999/BS99_C-22.pdf the component relies to a great extend on the concepts described there.
Thanks for reading and enjoy!…
of pitch forwards and backwards2. What effect do the following have on the system... a) Angle of Attack (AOA) of the front wing b) AOA of the rear wing c) Position of the mast along the fuselage. d) Position of rider above the mast (distribution of weight between front and rear feet amd position of the mast between the feet).So, in essence I want to model a 2 dimensional system as follows...I would like to incorporate a coefficient of lift versus AOA for the front and rear wings.Data for this can be found in text file format for example here for the Eppler 817 airfoil that I want to use... EPPLER817 DATAI might need more info than this though???Assume constant velocity???Ultimately, the lift generated by the hydrofoil will equal the weight of the rider otherwise you would sink or jump forever upwards but the hydrofoil can generate more lift or less lift than the rider depending on its angle of attack. I could assume the wing can generate -1.0x to 1.5x the weight of the rider in lift?The rear wing is usually approx 1/3 the size of the front wing. So perhaps assume 1/3 of the lift of the front wing although I will probably use a different airfoil section which will have different lift characteristics.Assume the rider can shift weight forwards and backwards between front foot and rear foot to keep the foil level, but perhaps include a time lag or some means of indicating how stable the system is.Ignore the water surface and assume the wings remain submerged.I want to assess the difference between having an AOA on the front wing and no AOA on the rear wing versus no AOA on the front but a AOA that creates a downforce on the rear wing (Which is how they are normally configured I think). I believe the rear wing is alwasy trying to pitch the front wing upwards creating a greater AOA and hence more lift. The rider has to keep pressure on their front foot to stop the front wing stalling and control the lift to be equal to their weight.My aim is to understand what parameters to use for front wing AOA, rear wing AOA and mast position to create a hydrofoil that is stable but not so stable that it takes a lot of effort to pitch it forwards and backwards. So I'm not looking for the most stable configuration, I'm looking to avoid something that is really unstable or requires (for example) the rider to put 100% of weight on one foot!Is it possible to create a meaningful simulation of this with Kangaroo 1 or 2? I made a start... Not sure I've approached it in the right way and haven't attempted to add the coefficient of lift vs AOA feedback.A video of kite hydrofoiling...
More info for those still reading...Kite hydrofoils come in many shapes and sizes... there are high aspect ration wings for racing, low aspect wings for beginners / low speed. There seem to be many configurations of mast position, feet position over the mast, length of fuselage, size of front wing to rear wing etc etc. I'm planning on CNC machining the front wing, fuselage and rear wing in one piece made up from bamboo. Then applying glass fibre or carbon fibre. I already have an aluminium mast and will make a board.…
Added by martyn hogg at 1:52pm on November 14, 2016
he process. The last one is there because fixing it would cause another problem, which we feel is more serious. Solutions may well be forthcoming in the future though.
1. Grasshopper curves and points are drawn more towards the camera than they really are. This is a conscious decision. Often Rhino geometry and Grasshopper geometry exist in the same place. If we would draw the Grasshopper preview in place, then there's no telling whether you'd see the Rhino curve or the Grasshopper curve. We feel it's important that you always see the Grasshopper curve on top. This is why we draw all curves and points slightly towards the camera. However we don't do this for meshes. This results in something akin to the image below. The eye represents the location of the viewport camera, the shaded box represents the actual location of the geometry and all the thick black lines represent the edges of the geometry moved towards the camera. As you can see, the red lines will be visible, even though they should be behind the shaded box. This effect can get very strong when the camera is close to some geometry relative to the size of the boundingbox of all geometry.
2. Wires behind the camera are sometimes visible. This is a bug I don't know how to solve. We'll get around to it eventually. When an object is behind the camera the display transform sometimes makes it visible in front of the camera in some weird inverted perspective mode.
3. Meshes are not z-sorted prior to display. This means that the order in which they are drawn is not back-to-front, but fairly arbitrary. This means that a transparent mesh may appear to punch a hole in the mesh behind it. If this is annoying you to no end, you can use Ctrl+F on the Grasshopper components that contain the meshes that are punching holes and then press F5 to recompute. The draw order should now be different. Of course sometimes it will only 'fix' it for a specific camera angle.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
0 degrees) and +/- convex/concave sign for a given vertex of a mesh in a Python module in Grasshopper? I can't find Rhinocommon commands to even approach this for meshes instead of surfaces (which require a UV location using the Gaussian command) and even a list of connected vertices I am not sure if they will return in useful circular order around the vertex or just unpredictably, if I have to manually calculate angles one at a time around the vertex.
In fact, using:
print MESH.Vertices.GetConnectedVertices(45)
shows the returned vertex order is *not* in nice cyclic order around the vertex, so I don't know how to even calculate angles manually one at a time lest some pairs not even represent a face corner.
Daniel Piker suggests doing this calculation on a mesh here:
http://www.grasshopper3d.com/forum/topics/curvature-of-mesh
"What if you triangulated the mesh first, then measured the Gaussian curvature (using the angle defect) per vertex?
If there are non-planar quads then it is true that which of the 2 possible triangulations is used will slightly affect the value, but I imagine this would average out over the surrounding vertices."
I certainly don't want to have to remesh my efficient model with extra triangles though.
I display my face and vertex numbers outside of Python, as a guide:
Intuitively, I think I may be able to derive it from the face normals surrounding each vertex since on a flat mesh, they will all be the same normal versus the vertex normal and on a slightly curved mesh they will be slightly angled and on a sharp point vertex they will be highly angled versus the vertex normal.
This is all especially difficult since the Rhinocommon CHM file still has so few Python examples instead of just C# and Visual Basic. Also, how point data must be translated into Python lists manually using .X, .Y and .Z modifiers and sometimes back for me to operate on them.
…
register, please contact Miss Roula Homsi Tel: 06/218400 ext:4007email: r.homsi@bau.edu.lbTOPICS: Parametric design , Algorithms, Kinetic Architecture, responsive facades, interactive design, smart buildings, generative design, NURBS modeling, parametric modeling, architectural design algorithms, form finding algorithms , and Environmental Adaptive Dynamic ArchitectureComputational skills: Rhino3D – Grasshopper 3d – Paneling tools - Kangaroo plugin - fields grasshopper -Digital Fabrication- Arduino micro controllers - lighting and temperature sensors - Firefly plugin - gHowl – mobile controller - Wi-Fi controllersWORKSHOP PROGRAM: PHASE ONE: Day 01- opening lecture on Algorithmic Added Design - tutorials and introductions to NURBS modeling with Rhino 3d- Parametric modeling tutorials with grasshopper 3d- Grasshopper processes, algorithmic logic and data management-Essential mathematical functions and logical operations- Projects assignments, groups divisions, project phase’s scheduleDay 02 - Form finding methods and theories for architecture - Training on physical algorithms using Kangaroo plugin-Catenary systems on curves, Catenary on surfaces, and mesh relaxation- Algorithms and design inspirations- Subdivision algorithms, paneling tools- Responsive materials, structural optimizations- Project phase one submissionDay 03- Envelope pattern optimizations for natural lighting- Kinetic Architecture introduction and projects examples- Responsive material analysis and design systems- Kinetic facades and dynamic pattern - Training on Arduino & preparing digital models for kinetic simulationPHASE TWODay 04- environmental Sensors, design reaction- lighting sensors, temperature sensors-Responsive envelop responsive simulations to sensors.-Smart and embedded systems for Architecture- Architectural models movements and mechanisms Day 05- Wireless controllers for grasshopper- Mobile controllers - Projects final submissionDay 06 -Finalizing students projects,-Models fabrications and sensors installations, documenting reactions-Final project ourcomesFEES for the 2 phases __ fees is 420 $ per participants( 360 for BAU students) Fees includes all teaching materials, software kit, lectures kit, laser cutting, Arduino microcontroller boards, sensors and using equipment. Students need to bring their own laptops, digital equipment and model making tools.PREREQUESTSThis program is open to current international Engineering, architecture and design students, masters, PhD candidates and young architects and professionals. Software Requirements: basic knowledge of 2D and 3D modeling software.…
rotation
A with another displacement and rotation
A B with displacement and rotation
A B with another displacement and rotation
A B C with displacement and rotation
A B C with another displacement and rotation
A B C D with displacement and rotation
A B C D with another displacement and rotation
My problem (I have):
I only get the last polyline curve.
I get :
D with displacement and rotation
D with displacement and rotation
D with displacement and rotation
D with displacement and rotation
Everything seems fine when I look at the resulting curves BEFORE the output. The problem seems at A = curvelist...
There is probably a story with the all the flattens.
I am completely lost lost lost...
°°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°°
Dim curvee As OnCurve
Dim o As New Integer
Dim q As New Integer
Dim anglebase As New Double
Dim vectorr As New On3dVector
Dim curvelist As New List(Of OnCurve)
Dim center As New On3dPoint
center.x = 0
center.y = 0
center.z = 0
o = geometry.Count
q = vector.Count
anglebase = 360 / repetitions
For zzz As Integer = 0 To q / repetitions - 1
For jj As Integer = 0 To repetitions - 1
For oo As Integer = 0 To (p - 1) Mod o
curvee = geometry(oo)
move_rotate(0, anglebase * jj, curvee, center)
curvelist.Add(curve)
Next
Next
Next
A = curvelist
p = p + 1
°°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°°
Here is the code for "move_rotate". It directly comes from :
http://www.grasshopper3d.com/forum/topics/onnurbscurvetransform-method
°°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°° °°°°
Dim p As Integer = 1
Sub move_rotate(ByVal dblZ_amount As Double, ByVal dblRotationAngle As Double, ByVal _
ObjectToMove As OnCurve, ByVal pntCenter As On3dpoint)'As OnNurbsCurve
Dim move_xform As New OnXform
move_xform.Translation(0, 0, dblZ_amount)
Dim vertZ_axis As New On3dVector(0, 0, 1)
Dim rotate_xform As New OnXform
rotate_xform.Rotation(dblRotationAngle, vertZ_axis, pntCENTER)
ObjectToMove.Transform(move_xform)
ObjectToMove.Transform(rotate_xform)
End Sub
…
rring to the above image)
Area
effective
effective
Second
Elastic
Elastic
Plastic
Radius
Second
Elastic
Plastic
Radius
of
Vy shear
Vz shear
Moment
Modulus
Modulus
Modulus
of
Moment
Modulus
Modulus
of
Section
Area
Area
of Area
upper
lower
Gyration
of Area
Gyration
(strong axis)
(strong axis)
(strong axis)
(strong axis)
(strong axis)
(weak axis)
(weak axis)
(weak axis)
(weak axis)
A
Ay
Az
Iy
Wy
Wy
Wply
i_y
Iz
Wz
Wplz
i_z
cm2
cm2
cm2
cm4
cm3
cm3
cm3
cm
cm4
cm3
cm3
cm
I have a very similar table which I could import to the Karamba table. But I have i_v or i_u values as well as radius of inertia for instance.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
dimensjon
Masse
Areal
akse
Ix
Wpx
ix
akse
Iy
Wpy
iy
akse
Iv
Wpv
iv
Width
Thickness
Radius R
[kg/m]
[mm2]
[mm4]
[mm3]
[mm]
[mm4]
[mm3]
[mm]
[mm4]
[mm3]
[mm]
[mm]
[mm]
[mm]
L 20x3
0.89
113
x-x
4,000
290
5.9
y-y
4,000
290
5.9
v-v
1,700
200
3.9
20
3
4
L 20x4
1.15
146
x-x
5,000
360
5.8
y-y
5,000
360
5.8
v-v
2,200
240
3.8
20
4
4
L 25x3
1.12
143
x-x
8,200
460
7.6
y-y
8,200
460
7.6
v-v
3,400
330
4.9
25
3
4
L 25x4
1.46
186
x-x
10,300
590
7.4
y-y
10,300
590
7.4
v-v
4,300
400
4.8
25
4
4
L 30x3
1.37
175
x-x
14,600
680
9.1
y-y
14,600
680
9.1
v-v
6,100
510
5.9
30
3
5
L 30x4
1.79
228
x-x
18,400
870
9.0
y-y
18,400
870
9.0
v-v
7,700
620
5.8
30
4
5
L 36x3
1.66
211
x-x
25,800
990
11.1
y-y
25,800
990
11.1
v-v
10,700
760
7.1
36
3
5
L 36x4
2.16
276
x-x
32,900
1,280
10.9
y-y
32,900
1,280
10.9
v-v
13,700
930
7.0
36
4
5
L 36x5
2.65
338
x-x
39,500
1,560
10.8
y-y
39,500
1,560
10.8
v-v
16,500
1,090
7.0
36
5
5
I have diagonals (bracings) which can buckle in these "non-regular" directions too, and they do. If I could add those values then in the Karamba model I could assign specific buckling scenarios..... I can see another challenge which will be at the ModifyElement component, I will not be able to choose these buckling lengths, in these directions.
Do you think this functionality can be added within short, or should I try to find another way to model these members?
Br, Balazs
…