Grasshopper

algorithmic modeling for Rhino

Is there any documentation generated for Vector Field class and its methods & properties? I've been searching for it.

Thanks in advance.

A gif maked with the last definition:

Views: 3747

Replies to This Discussion

Found with reflector: GH_Field, GH_LineCharge and so on. ;) I Suppose that I must search in GH SDK :)

For now yes. I'll upload new SDK documentation someday soon.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Nice find, it's seems pretty straight forward to use. This code should do something random, no inputs required:

 


Dim size As New interval(0, 10)
Dim bx As New box(plane.WorldXY, size, size, size)
Dim rnd As New random(666)
Dim field As New gh_field
Dim crvlist As New list(Of curve)

For i As Integer = 1 To 100
Dim pc As New gh_pointcharge
pc.Charge = rnd.NextDouble
pc.Location = bx.PointAt(rnd.NextDouble, rnd.NextDouble, rnd.NextDouble)
field.Elements.Add(pc)
Next

For i As Integer = 1 To 500
Dim p As New point3d(bx.PointAt(rnd.NextDouble * 0.5 + 0.25, rnd.NextDouble * 0.5 + 0.25, rnd.NextDouble * 0.5 + 0.25))
Dim pts As point3dlist = field.SolveSteps(p, 0.1, 30, gh_differentialsolver.RungeKutta4)
Dim crv As nurbscurve = nurbscurve.CreateInterpolatedCurve(pts.ToArray, 3)
crvlist.add(crv)
Next

a = crvlist

I'm playing with it too :) Have you tried to input a merged field into a custom VB component in GH? It always gives me an error talking about that reference value is a List of GH_Fields and I cannot convert it into GH_Field.

:)

Try this:

    field.Elements.AddRange(x)

 

Didn't work :S "La expresión no genera ningún valor" at AddRange line.

Dim field As GH_Field
Dim origin As Point3d
Dim force As Vector3d
Dim pt_list As List(Of Point3d)
Dim iterations As Integer = I

field = field.Elements.AddRange(F)

origin = P
For i = 0 To iterations - 1
pt_list.Add(origin)
force = field.TensorAt(origin)
origin = force + origin
Next

Pa = PolylineCurve.CreateControlPointCurve(pt_list)

The file I'm playing with.

Attachments:

This should work:


Dim field As New GH_Field
Dim origin As Point3d = p
Dim force As New Vector3d
Dim pt_list As New List(Of Point3d)
Dim iterations As Integer = I
'Dim part_path As PolylineCurve

field.Elements.AddRange(F)
For i = 0 To iterations - 1
pt_list.Add(origin)
force = field.TensorAt(origin)
origin = force + origin
Next

Pa = PolylineCurve.CreateControlPointCurve(pt_list)

 

Ok...here it is (thanks Vicente for your help), the code for a component that draws the path of a moving particle. 

Dim field As New GH_Field
Dim origin As Point3d = Nothing
Dim force As New Vector3d
Dim pt_list As New List(Of Point3d)
Dim iterations As Integer = I
Dim particle As New GH_PointCharge

particle.Location = P
particle.Charge = 1

origin = particle.Location()

If origin = Nothing Then Return

'Dim part_path As PolylineCurve
field.Elements.AddRange(F)
field.Elements.Add(particle)

For i = 0 To iterations - 1
pt_list.Add(origin)
force = field.TensorAt(origin)
origin = force + origin
Next
Pa = PolylineCurve.CreateControlPointCurve(pt_list)

End Sub

An updated version with some extras.

Attachments:

I'm not sure but I think what you are trying to do is the same that can be done using the gh_field.solvestep and gh_field.solvesteps methods. These use more math savvy methods like euler and runge-kutta to solve the differential problem, instead of just adding a tiny increment and iterating.

I've tried that methods...and the results are more like field lines (I suppose that David made it to solve field lines drawing). Try using then...I have try and the results are no the same (particles never return when energy is lost). Perhaps I need to try it harder :P

X.solvestep gives you a vector...not very usefull.

X.solvesteps gives you a point (but moving that points didn't look like particles in a field...perhaps I need more time to see how this works)

I'm rendering some images now. When finished I'll uoload the file with the euler solver configured instead the iterative one.

In the other hand, I have to revise the code because the vector addition have some "conceptual" problems.

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service