at your original list of numbers, if I am to go through and check manually to see what I should be getting out, I think you should only get a few outputs (which is why I was confused by all the outputs at the end of the definition.
For example, just as an example I started with X1 as 279 (item index 11). When I did the math, the only indexes that I got were 15,28, and 33.
This is because:
since 279 is positive, look for next number that is at least 180 less or 360 more than X1.
the value of 78 (item index 15) is the first value to satisfy this requirement.
Then, since 78 is smaller than 279, we are looking for the next value at least 180 more or 360 less than 78.
The value 272 (item index 28) is that next value.
Then since 272 is larger than 78, we are looking for the next value at least 180 less or 360 more than 272.
The value 52 (item index 33) is the next value.
So the definition should output the following:
indexes 15, 28, 33.
Does that make sense?…
Added by Brian Harms at 4:20pm on December 10, 2011
h 11 returns two values, and the lists with 10 and 6 return one. In any case, I changed the logic a bit.
Check it out in the other vb component. The idea is just to check if the list is odd or even first with the Mod operator. If the lsit is odd, return the middle item in the list as you have set it up. If the list is even, return the mid items also in the same way as you have set it up. I am attaching the edited .gh file, a Class1.cs file which shows in C# how I set up the component (translated vb code will follow), and the .gha I built from it.
The logic should be a bit easier to follow in this version. Check out the edited vb component in the definition for a 'translated version.'
Apologies for the C# ness...I currently do not have Visual Studio Express installed, just Visual C# express. This one is converting just fine to:
Dim list As New List(Of Object)()Dim out_v As New List(Of Object)()Dim out_i As New List(Of Integer)()If Not DA.GetDataList(0, list) Then ReturnEnd IfDim val As Object = list(Convert.ToInt32(Math.Floor(Convert.ToDouble(list.Count / 2))))Dim i As Integer = Convert.ToInt32(Math.Floor(Convert.ToDouble(list.Count / 2)))If (list.Count Mod 2) Then out_v.Add(val) out_i.Add(i)Else out_v.Add(val) out_i.Add(i) out_v.Add(list(i + 1)) out_i.Add(i + 1)End IfDA.SetDataList(0, out_v)DA.SetDataList(1, out_i)…
Added by Luis Fraguada at 11:43am on September 2, 2011
rcle A 0---1---2Circle B 0---1---2---3---4---5---6---7---8---9---10---11I was actually trying to connect through separated lines, point (A,0) to (B,11) and (B,1),point (A,1) to point (B,3) and (B,5), and (A,2) to (B,7) and (B,9).I was able to do it using a list item selecting the points and creating a line between them, but i would be to long to do it if i would like to divide in many more points, and try to connect them using list item... i went looking around for a bit, i think its possible to do it with a path mapper or a flip matrix, althought i have no clue how to make it.
You will find enclosed, some screenshots...If anyone could give me any tip, i thank you all in advance.Have a nice day.+Joan…
Added by Joan tarragon at 7:38am on December 5, 2011
om frame -5 till frame -10 a frame spacing of 100mm is used,
etc.
Frame 0 is located on X=0 mm
Frame -5 will be on X=-500 mm
Frame -6 will be on X=(X of frame -5) -25 = -525 mm
Frame -11 wil be on X= ((X of frame -10) -10 = ?? mm
etc.
Cheers,
Bas…
idually and by group
3) Clean up functions to discard failed results
4) Use generated images using windows directories to delete designs (so you can bring one next to each other and discard similar ones)
5) Hide irrelevant parameters
6) View generated images in zoom
7) Individually set limits on filter parameters (using sliders)
8) Reload CAD file without having to close and open genoform
9) Much smaller UI (we want to allow the screen for design work, so the functionalities have been made into pop-ups).
10) Navigate in view to a desired design (by number)
11) Any other features our users want ? (let us know)
We hope that this version is much more easier to use and allows designers to manage what they wish to generate section by section or layer by layer.…
ult, my 3dm is very large.
Another problem, when the fonction is ok, the draw in grasshopper is ok, when i bake i have only a litte part of the opération.....
If you could help me, thank you
[Edit] Here the description in the null item :
{0;0}0. Brep: brep.m_T[43047] trim is not valid. trim.m_type = seam, the edge is manifold, but brep.m_L[trim.m_li=1114].m_type is not outer.brep.m_L[1114] loop is not valid. brep.m_T[loop.m_ti[21]=43047] is not valid.brep.m_F[0] face is not valid. brep.m_L[face.m_li[1114]=1114] is not valid.ON_Brep.m_F[0] is invalid.1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. …
nch, xno items in one list)2 divide the list lenght value by the numer of items per branch needed3A generate a list with the series component: the step equal to the target numer of items per branch; the no of items equals the number of target branches
3B generate a list with the series component: the first number of the series equals to the number of items needed (-1 to account for the 0 index); the step size again equal to the target number of itmes per branch as 3A4 feed 3A & 3B to a domain component thus identifying the start -3A- and end -3B- of the domains by which the list will be subdivided5 use a subset component with the domains above thus creating 19 branches with lists having 5 items eachfor lists which are subdivided into branches when the target number of branches is not a multiple of the number of items contained in the list:6 identify if the target number of branches is a multiple of the list by using the modulus component fed by the list lenght -1- and the target number of branches7 identify last index in the 3B series with the item component (reversed to take the last value fed)8 add 6+7 above which dill define the start of the domain that will pick up the remanent items not accommodated in 59 add (+1) to 7 above to define the end of the domain that will pick up the the remanent items not accommodated in 510 feed 8 & 9 to a domain component11 include 10 as part of the subset in 5I'm now trying to understand the components mentioned by Michael...
sn
…
number of divisions on that curve as in the defintion (i.e. by 4). The offset in the def is slightly different and should cull two or three more curves as in the lists that show my aim below.
Basically I want to look into each branch of the groups of points from each closed curve . Marking in a list whether it contains a one or a zero (0= outside 1 = coincidents).
{0;0}0. 21. 22. 23. 2 {0;1} 0. 01. 22. 03. 2 {0;2}0. 01. 02. 03. 0 {0;3}0. 21. 22. 23. 2 {0;4}0. 21. 22. 23. 2 {0;5}0. 21. 22. 23. 2 {0;6}0. 01. 22. 23. 1 {0;7}0. 21. 22. 03. 0 {0;8}0. 21. 22. 23. 2 {0;9}0. 21. 22. 23. 2 {0;10}0. 21. 22. 23. 2 {0;11}0. 21. 22. 23. 2 {0;12}0. 21. 22. 23. 2 {0;13}0. 01. 22. 23. 0 {0;14}0. 21. 22. 23. 2
I want to create a list from these points. That marks each curve that pokes out, in a cull pattern as such:
20022210222202
Using a 1 where there are co-incidents in the curve points and the boundary. A 2 for true (outside points) and a 0 for containment. So I might be able to use the 1 in future developments - however if a true false list is easiest I can live with that.
So could I use F(x) function? - to look for 0 or 1's in each bunch of points and thus list as such for a cull pattern? or will Path mapper help me here? Or can I rely on simply grafting and splitting??
I am usure of the neatest solution and would love to learn. Hope you can direct me.rgrds
J.…
nput parameter and then set the named values on the second?
protected override void BeforeSolveInstance() { Param_Integer param0 = Params.Input[0] as Param_Integer; Param_Integer param1 = Params.Input[1] as Param_Integer; param1.ClearNamedValues();
GH_Structure<GH_Integer> data = param0.VolatileData as GH_Structure<GH_Integer>; if (data.IsEmpty) return; foreach (GH_Integer value in data.AllData(true)) { switch (value.Value) { case 1: param1.AddNamedValue("First option for 1", 11); param1.AddNamedValue("Second option for 1", 12); param1.AddNamedValue("Third option for 1", 13); break;
case 2: param1.AddNamedValue("First option for 2", 21); param1.AddNamedValue("Second option for 2", 22); param1.AddNamedValue("Third option for 2", 23); break;
case 3: param1.AddNamedValue("First option for 3", 31); param1.AddNamedValue("Second option for 3", 32); param1.AddNamedValue("Third option for 3", 33); break; } return; } }
--
David Rutten
david@mcneel.com…
Added by David Rutten at 1:56am on December 18, 2013