der has an icon associated with it instead of text. The sliders have been added to the same 'bundle', meaning they co-ordinate their layout so that the rail and the grips line up vertically.
(0:06) Numeric popup while dragging a knob.
(0:20) One of the states of the icon can be slaved to the slider value, thus resulting in an animated icon.
(0:30) A slider with named presets and snapping. Presets need not be spaced equally.
(0:40) Slider values can be incremented/decremented by the smallest possible amount using the [-] or [+] keys, or the arrow keys.
(0:53) Sliders can be snapped to the nearest preset using [.]
(1:01) Sliders can be set to the lowest/highest possible value using [Home] or [End]
(1:12) Zooming in increases the accuracy of a slider.…
Added by David Rutten at 10:35am on December 7, 2016
ems in the same way. Lofting was particularly difficult, you had to have a separate loft component for every lofted surface that you wanted to generate because the component would/could only see one large list of inputs. Then came along the data structures in GH v0.6 which allowed for the segregation of multiple input sets.
If you go to Section 8: The Garden of Forking Paths of the Grasshopper Primer 2nd Edition you will find the image above describing the storing of data.
Here you will notice a similarity between the path {0;0;0;0}(N=6) and the pathmapper Mask {A;B;C;D}(i). A is a placeholder for all of the first Branch structures (in this case just 0). B is a place holder for all the second branch structures possibly either 0, 1 or 2 in this case. And so forth.
(i) is a place holder for the index of N. If you think of it like a for loop the i plays the same role. For the example {A;B;C;D}(i) --> {i\3}
{0;0;0;0}(0) --> {0\3} = {0}
{0;0;0;0}(1) --> {1\3} = {0}
{0;0;0;0}(2) --> {2\3} = {0}
{0;0;0;0}(3) --> {3\3} = {1}
{0;0;0;0}(4) --> {4\3} = {1}
{0;0;0;0}(5) --> {5\3} = {1}
{0;0;0;1}(0) --> {0\3} = {0}
{0;0;0;1}(1) --> {1\3} = {0}
{0;0;0;1}(2) --> {2\3} = {0}
{0;0;0;1}(3) --> {3\3} = {1}
{0;0;0;1}(4) --> {4\3} = {1}
{0;0;0;1}(5) --> {5\3} = {1}
{0;0;0;1}(6) --> {6\3} = {2}
{0;0;0;1}(7) --> {7\3} = {2}
{0;0;0;1}(8) --> {8\3} = {2}
...
{0;2;1;1}(8) --> {8\3} = {2}
I'm not entirely sure why you want to do this particular exercise but it goes some way towards describing the process.
The reason for the tidy up: every time the data stream passes through a component that influences the path structure it adds a branch. This can get very unwieldy if you let it go to far. some times I've ended up with structures like {0;0;1;0;0;0;3;0;0;0;14}(N=1) and by remapping the structure to {A;B;C} you get {0;0;1}(N=15) and is much neater to deal with.
If you ever need to see what the structure is there is a component called Param Viewer on the first Tab Param>Special Icon is a tree. It has two modes text and visual double click to switch between the two.
Have a look at this example of three scenarios in three situations to see how the data structure changes depending on what components are doing.
…
branches in each A's list of B's, or remove its ends etcso that if I want to remove the last B in every A{0;1},{0;2},{0;3},{0;4},{0;5},{0;6}{1;1},{1;2},{1;3},{1;4}{2;1},{2;2},{2;3},{2;4},{2;5}would become{0;1},{0;2},{0;3},{0;4},{0;5}
{1;1},{1;2},{1;3}
{2;1},{2;2},{2;3},{2;4}I guess the question is do I need to figure out the cull pattern- each B may have different lengths...…
13;2} ... 20.{13;12}
21. {21;0}22. {21;1}23. {21;2} ... 41. {21;20}
42. {34;0}43. {34;1}44. {34;2} ... 75. {34;33}
76. {55;0}77. {55;1} ... ....
I want to grab the first 8 [0-7], the next 13[8-20], the next 21[21-42] etc
so i have the (known fibonacci seq) list of numbers on the left here:
C S
8 0
13 8
21 21
34 42
55 76
89 131
144 220
233 364
and i need the list on the right, so that i can select items using a Series (N=1 and S and C from the list above) and a List Item component.
the simple question is:
is there a component that can take a list and accumulate it in this way that I need?
if not, is there anyone that can point me to a simple relevant VB example so i could easily adapt it?
many thanks,
gotjosh…
cenPt As New On3dPoint(0, 0, 0)
Dim tSphere As New OnSphere
Dim rad As Double = 5.0
tSphere.Create(cenPt, rad)
Dim nSphere As New OnNurbsSurface
tSphere.GetNurbForm(nSphere)
Dim tSrf As New OnNurbsSurface
Dim ptList As New List (Of On3dPoint)
ptList.Add(New On3dPoint(-5, -5, 0))
ptList.Add(New On3dPoint(-5, 5, 0))
ptList.Add(New On3dPoint(5, 5, 0))
ptList.Add(New On3dPoint(5, -5, 0))
tSrf = RhUtil.RhinoCreateSurfaceFromCorners(ptList(0), ptList(1), ptList(2), ptList(3))
Dim arrCrv(0) As OnCurve
RHUtil.RhinoIntersectSurfaces(nSphere, tSrf, tol, arrCrv, Nothing)
A = arrCrv…