For example.
If you have two lists of points.
List A List B
{0;0;0}(0) {0;0}(0)
{0;0;1}(0) {0;1}(0)
{0;2}(0)
{0;3}(0)
{0;4}(0)
And you want to merge the two lists so that the two points in list A are the end points.
Merge Lists Results:
{0;0}(0)
{0;0;0}(0)
{0;0;1}(0)
{0;1}(0)
{0;2}(0)
{0;3}(0)
{0;4}(0)
Because of their path structures the order is wrong from a simple merge so Flattening now is out of the question.
Path Mapper
{A;B} --> {A;B+1}
{A;B;C} --> {A;C*6}
---------------------
Results:
{0;0} --> {0;0+1} = {0;1}
{0;1} --> {0;1+1} = {0;2}
{0;2} --> {0;2+1} = {0;3}
{0;3} --> {0;3+1} = {0;4}
{0;4} --> {0;4+1} = {0;5}
{0;0;0} --> {0;0*6} = {0;0}
{0;0;1} --> {0;1*6} = {0;6}
Now with the Path Structures similar when they are re-ordered the results will have the two points of list A as the end points.
Question 2
why did the curve-line intersection lose the path structure? Both trees had 38 branches.
Both trees had 38 Paths but Tree A had more Items, 147 compared to 38 in Tree B.
So you get this happening:
{0;0;0;0;0;0}(0) compared to {0;0;0;0}(0) results: Null {0;0;0;0;0;0}(0)
Base result paths on longest
{0;0;1;0;0;0}(0) compared to {0;0;0;1}(0) results: Null {0;0;1;0;0;0}(0)
{0;0;2;0;0;0}(0) compared to {0;0;0;2}(0) results: Yes {0;0;2;0;0;0;0}(0)
Add a branch to contain result
{0;0;3;0;0;0}(0) compared to {0;0;0;3}(0) results: Yes {0;0;3;0;0;0;0}(0)
{0;0;3;0;0;0}(1) compared to {0;0;0;3}(0) results: No {0;0;3;0;0;0;1}(0)
{0;0;4;0;0;0}(0) compared to {0;0;0;4}(0) results: Yes {0;0;4;0;0;0;0}(0)
{0;0;4;0;0;0}(1) compared to {0;0;0;4}(0) results: Yes {0;0;4;0;0;0;1}(0)
{0;0;5;0;0;0}(0) compared to {0;0;0;5}(0) results: Yes {0;0;5;0;0;0;0}(0)
{0;0;5;0;0;0}(1) compared to {0;0;0;5}(0) results: Yes {0;0;5;0;0;0;1}(0)
{0;0;5;0;0;0}(2) compared to {0;0;0;5}(0) results: Yes {0;0;5;0;0;0;2}(0)
...... etc
…
Hi,
I want to divide curve with distance between points so it will be like this:
1--2---3----4-----5------6-------7-----, ...
with values in range 1 to 50, must be simple but im stuck..
tnx
per components.
I have attached a 3dm file and a picture so you guys can see what I am talking about.
I have previously translated boxes into breps, which i did with this code:
Dim bbx As New box(pl, New interval(-.5, .5), New interval(-.5, .5), New interval(-.5, .5)) Dim ms As New Mesh() ms.Vertices.AddVertices(bbx.GetCorners) ms.Faces.AddFace(0, 1, 2, 3) ms.Faces.AddFace(0, 1, 5, 4) ms.Faces.AddFace(1, 2, 6, 5) ms.Faces.AddFace(2, 3, 7, 6) ms.Faces.AddFace(3, 0, 4, 7) ms.faces.addface(4, 5, 6, 7) ms.Normals.ComputeNormals()
ms.Compact()
I have tried to do something similar with this specific example, and I now that meshes only consist of quads or triangles, so i broke down the geometry into quads without any succes.
Looking foreward to any suggestions.
- Jens…
shift. I realize I can use 'replace branch' but I do not have an available mask to utilize. I have simplified the problem to its simplest form so my question is understandable, however, the tree I am trying perform this operation on is a much larger 3 digit path address.
{1;3;2}
{2;3;4}
{3;5;4}
{4;3;7}
Change the above list to the list below.
{0;3;2}
{1;3;4}
{2;5:4}
{3;3;7}
I wish for a more robust arsenal of branch manipulation components. Most of the things I need to do are possible with the existing components, however, many operations take several components to perform even simple manipulations. Since branch/path manipulation is so integral to using GH successfully, it seems the GH community would be well served by enhancing the available path manipulation components.
Thanks,
Stan
…
掌握编程过程中遇到的思路方面和技术方面的问题. 内容包括以下几个方面:
反向逻辑思维能力的培养;
建立清晰的编程逻辑思维能力;
GH 的程序设计理念;
并行数据结构深入理解和控制.
Grasshopper course of McNeel Asia focus on the cultivation of students flexible use of programming techniques, the ability to solve practical problems. Our course deep into the whole process of programming, from programming thinking model, the components principle to usage details do detailed explanation, help students complete mastery programming encountered in the process of thinking and technical aspects, include the following content:
Ability of reverse logical thinking;
Establishment of clear programming logical thinking ability;
The program design concept of Grasshopper;
Understanding parallel data tree structure and how to control it.
更多详细内容... More details…
授课讲师 Instructor 课程由Grasshopper原厂McNeel公司在中国地区的两位 Rhino 原厂技术推广工程师 – Dixon、Jessesn联合授课。课程结束后对达到授课预定目标的学员颁发唯一由Grasshopper原厂认证的结业证书.
Dixon & Jessesn, McNeel Asia Support engineer, by the end of course student who achieve the intended target will get the authentication certificate from McNeel Asia.
课程报名 Register this course 课程即日开始报名, 开课一周前停止报名, 名额满提前报名结束. This course begin to sign up, stop sign up a week ago, with the quota ahead over.
在线报名参加课程...
Sign up to this course…
课程日期 Schedule 7/15-7/20 Beijing 北京 7/26-7/31 Shanghai 上海 7/07-7/12 Shenzhen 深圳
课程范例演示 Samples of Grasshopper course demo
Note: pls follow below comments by Jessesn to see the samples…
cture, Rhino treats them as a single flat list. For example a surface can have 10 rows and 6 columns of control-points, resulting in a list of 60 points.
But 10 times 6 isn't the only way to get to 60. If you want to make a surface out of a list of 60 points, you'll also have to tell Rhino how those 60 points should be interpreted in terms of a grid. It could be 2*30, 3*20, 4*15, 5*12, 6*10, and all of the aforementioned products the other way around.
Sometimes there's only one way for a number of points to fit into a rectangular grid. For example if you provide 49 points, then 7*7 is the only way to make it work, but these cases are rare so we always demand you give us all the information required to actually make a rectangular grid of control-points from a linear collection.
As for "Why is it, sometimes we need to attach additional value into it?", this is usually because when you divide a domain or a curve into N segments, you end up with N+1 points. For example take the domain {0 to 5}, and divide it into 5 equal subdomains. You end up with {0 to 1}, {1 to 2}, {2 to 3}, {3 to 4} and {4 to 5}. However there are six numbers that mark the transitions between these domains 0, 1, 2, 3, 4 and 5. This is why you often have to add 1 to the UCount, because the number that controls the UCount often results in N+1 actual points.…
Added by David Rutten at 8:30am on December 25, 2014
Like you've done. Use List Item and input an integer which represents the curve you want to select. Your slider will need to be able to handle integers 0, 1, 2, 3, 4, and 5 since you have 6 curves.