FF can produce different results each time it is run. See images below, these were created with the same parameters, I just clicked on "recompute". I would have thought that if left iterating long enough, it would eventually converge on the same optimal solution every time. Regarding the symmetry, I would imagine that even taking away 3 elements at a time, given that it can add elements back in at any stage, it should still arrive at a stable, symmetrical solution...
It would be fantastic if you could discuss these issues with your colleagues next week and keep me posted!
I have also read the FFF section of the manual. It is a little hard to understand exactly what each of the inputs means. Would it be possible to illustrate them with a numerical example? eg "a truss with 100 members, and overdrive set to 1.4 will take away x members each iteration... etc etc"
Thanks for you help,
Steven…
.ToNurbsCurve()).
2. Then you create a block instance out of it.
3. Then you define Planes at each random point (as the C# does already).
5. Then you define 2 transformations : one that does scale (in a "similar" way with the 2nd C#) and one that does PlaneToPlane (from blocks' "world" to the plane "world").
6. Then you call the block instance on duty and you apply these 2 for each random plane (a coordinate system in fact: term plane used in GH is highly unfortunate) that is derived as: surface.PointAt(thisRandomU, thatRandomV).
I hear you: what's the fuss with all that nonsense mister? Well ... let's say 100 times faster execution of the 2nd C#: is this good enough?
I'll provide this "pro" approach (a bit more complex than the very simple/primitive 2nd C#, mind) in the traditional V2 update (soon, maybe this weekend).
best, Peter
…
ate the "base" ... load Rhino file fist.
2. This greatly reduced demo creates a Del Mesh "in real-time" (it's a very complex project that I'm after these days: 10 C# scripts work together to do ... something, he he) AND finds convex hull points as well, So it works "twice" but still is fast. In fact it's about 15 times faster than the very same thing that I did with Generative Components.
3. Again: NOT for your case but good fun (I believe). Obviously doing this for a couple of surfaces of yours ... it could yield also a real-time solution.…
a part of it,,,, plz find the file attached and tell me if there's a problem i can't recognize ?
the energy plus Icon tells me to update honey bee & I updated it but no results .
for the simulation results I need for my study :
- air temperature in side the building
- thermal comfort analysis
In 3 cases " when the kinetic facade is closed , 50% open & 100% open " then I need to make optimization to get the optimum movement of the facade .
so I need to know what's the problem with my file !!! and if there are advises for the next steps of my study will be great .
and I have a question , honey bee can deal with windows , but what about doors ? how to have a correct results with no doors in the building ?
thank you in advance
Mona rezq
…
of rectangles (ANY set) in ANY rotation/size etc AND a set of profiles (ANY profile) in a SEPARATE Rhino file: Sizes MUST comply with the ones used in V2 (i.e. stuff not in Planet Mars 1M miles from origin etc etc). Profiles MUST been oriented like the one in V2 (otherwise: Armageddon - I mean I could easily handle with any plane used for the profile ... but why bother?)
3. Describe ANY imaginable additional desire of yours with regard the frames. I mean ANY (just a small demo of the Dark Side). Like putting 3d solid flowers at the corners or flying pigs or anything.
waiting for the frames (the rectangles, that is)
PS: This is a very simple implementation of the Dark Side (complexity 1 out of 100, so to speak).…
alidated the entire RhinoCivil Engineering solution and migrate to a purely Rhinoceros solution.
85 components for Grasshopper among other analysis of a field study of linear project or study platform. Dedicated to the construction and engineering firms using topographic data.
FoodForRhino
Look to YouTube
Blogger
Support email: rhinodeveloppements@gmail.com…
b RunScript(ByVal srf As Surface, ByVal startPT As Point3d, ByVal startVEC As Vector3d, ByVal intMAXbounces As Integer, ByVal coef As Double, ByRef reflectionPointList As Object, ByRef contactPlanes As Object, ByRef valuePointList As Object) Dim originPt As Point3d = startPt Dim dirVec As Vector3d = startVec Dim surfaceNormal As New vector3d Dim outputPts As New List(Of Point3d) outputPts.Add(originPt) '''Dim outputPlanes As New List(Of on3dvector) '''Dim outputNormalPlanes As New List(Of On3dVector) Dim n As Integer = 0 '''Dim blnSwitch As Boolean = False While n < intMaxBounces '''Dim bounce As New On3dRay Dim shooter As New OnRayShooter Dim hit As New OnX_EVENT Dim plane As New OnPlane hit.m_type = RMA.OpenNURBS.IOnX_EVENT.TYPE.csx_point shooter.m_min_travel_distance = doc.AbsoluteTolerance() shooter.Shoot(originPt, dirVec, srf.toArray(), hit) Dim intIndex As Integer = getSrfIndex(srf, hit.m_pointA(0), hit.m_b(2), hit.m_b(3)) originPt = hit.m_pointA(0) If originPt.CompareTo(onutil.On_origin) = 0 Then '''print("exit") Dim lastPoint As Point3d = outputPts.Item(outputPts.Count - 1) Dim newPoint As New Point3d newPoint.x = (dirVec.x * 100 * coef) + lastPoint.x newPoint.y = (dirVec.y * 100 * coef) + lastPoint.y newPoint.z = (dirVec.z * 100 * coef) + lastPoint.z outputPts.Add(newPoint) Exit While End If surfaceNormal = srf(intIndex).normalAt(hit.m_b(2), hit.m_b(3)) '''plane.CreateFromNormal(hit.m_pointA(0), surfaceNormal) dirVec = reflectVector(dirVec, surfaceNormal) '''outputNormalPlanes.Add(dirVec) outputPts.Add(originPt) '''outputPlanes.Add(dirVec.PerpendicularTo(dirVec)) n = n + 1 End While If outputPts.Count > 1 Then reflectionPointList = outputPts.ToArray() '''contactPlanes = outputPlanes.ToArray() '''normalPlanes = outputNormalPlanes.ToArray() End If End Sub
'<Custom additional code> Function getSrfIndex(srf As list(Of Surface), testPt As point3d, u As Double, v As Double) As Integer Dim intIndex As Integer For i As Integer = 0 To srf.count - 1 Dim srfPoint As New point3d srfPoint = srf(i).pointAt(u, v) If srfPoint.distanceTo(testPt) < doc.AbsoluteTolerance Then intIndex = i Next Return intIndex End Function
Function reflectVector(incomingDirection As vector3d, surfaceNormal As vector3d) As vector3d Dim tempVec As New vector3d tempVec = incomingDirection tempVec.Reverse() tempVec.Rotate(onUtil.On_PI, surfaceNormal) Return tempVec End Function
Thanks,
Phillip…
quel que este interesado en aprender procesos Generativos y Paramétricos con Grasshopper para Rhino 5.
El Workshop esta organizado para que durante estos tres días, el estudiante domine los conceptos básicos y avanzados de Grasshopper.
Pre-requisitos:
Tener conocimiento del manejo de Rhino 5.
Cada estudiante debe traer su propio computador o portátil.
Rhino3D Colombia suministrara el Software de evaluación de Rhino 5 y Grasshopper.
Numero total de horas: 24
Fechas: Agosto 15, 16 y 17
Horas: de 8:00 am a 5 pm
Profesor: Andres Gonzalez, McNeel Miami
Lenguaje: Español / Ingles
Número de estudiantes: Máximo 8
Rhino Visual Tips 5.0 + SAVANNA3D
Se entregara un USB a cada participante con:
Rhino Visual Tips 5.0
Costos:
Antes del 2 de Agosto: 495.000 pesos Colombianos, después del 2 de Agosto, 595.000 pesos Colombianos.
Mayores informes:
www.Rhino3DColombia.com
Tel: 412 3015 Medellin, Colombia.
…
y3d(_pt,_v) length = Rhino.Geometry.Intersect.Intersection.MeshRay(_m,ray) print length if length < 0.0: lines=Rhino.Geometry.Line(_pt,_pt+(100*_v)) return lines
if Run == True: if parallel: meshVecTupleL = [] for pt in points: for v in vectors: meshVecTupleL.append((mesh, pt, v)) withNulls = ghpythonlib.parallel.run(intersect, meshVecTupleL, True) a = [item for item in withNulls if item != None]
1. How come we never defined length as an empty list and still it stored all the numbers?
2. If length < 0.0 , lines are being created. How does python/rhino knows which pt to make the line at since we are processing the entire list "length" ?
3. If I add another statement before return lines that would return the startpoint of the line instead of the line itself, it doesn't work. Why is that?
Thanks for your help. …
Added by Apoorv Goyal at 3:41pm on January 13, 2015