Grasshopper

algorithmic modeling for Rhino

I want to become more familiar with pathmapper but I am not sure of any situations I have to use, which causes me to not use it. I have seen this http://www.grasshopper3d.com/forum/topics/path-mapper-help-1 but those operations don't require pathmapper as all those functions exist as components. I am wondering if anyone has some examples and explanations of situations where only pathmapper will do the job, I really want to familiarize myself with this powerful tool. Thanks.

Views: 433

Replies to This Discussion

The thread Path Mapper Help was only meant as a demonstration of what was going on under the hood, by taking existing components and showing the manual approach to achieve the same result.

 

For instance to graft:

{A}(i) --> {A;i}

becomes

{0}(0) --> {0;0}

{0}(1) --> {0;1}

{0}(2) --> {0;2}

...

{0}(n) --> {0;n}

 

So now to apply this to any complex situation that the Path Mapper might be able to do. A recent post here on the Forum asked about duplicating every branch to the next branch.  For example:

{0;0} = 1

{0;1} = 2

{0;2} = 3

needs to be

{0;0} = 1

{0;1} = 1

{0;2} = 2

{0;3} = 2

{0;4} = 3

{0;5} = 3

 

First we need to make a gap for the duplicated data to be slotted into.

{A;B} --> {A;2*B}

becomes

{0;0} --> {0;2*0} = {0;0}

{0;1} --> {0;2*1} = {0;2}

{0;2} --> {0;2*2} = {0;4}

 

Then we need to map the same branches into the next branch

{A;B} --> {A;2*B+1}

becomes

{0;0} --> {0;2*0+1} = {0;1}

{0;1} --> {0;2*1+1} = {0;3}

{0;2} --> {0;2*2+1} = {0;5}

 

Now when these two paths structures are combined you will get the desired results.

 

 

So it comes down to how you wish to map your paths and coming up with a formula to do so.

 

Thanks. I am slowly getting it. I understand why you did path mapper help, I was just personally interested in specific "pathmapper only" situations.

Before those example components, there was only [path mapper] and [Replace Branches] to achieve those results.

Now that [Shift Paths] has been introduced, which use to be the one aspect of [Path Mapper] that I held a light for, there aren't that many applications that can't be done else where. Because of the un-dynamic nature of path mapper it becomes a very specific thing. One does not fit all.

I can create a definition that includes [Path Mapper] to carry out a specific task with some example geometry and post it online, but more often than not another user doesn't get the same results with their geometry.

So I now go to great lengths to remove [Path Mapper] from my definitions. The solution above for the duplicate branches worked well, but because of the rigidity of it the User found another solution that involved [Replace Branches]. Which I believe to be the best component in the Sets tool box.

 

I see, just want to make sure im not missing out on all the fun.

Don't get me wrong [Path Mapper] is a very useful and powerful tool. With one component you can: Flatten, Graft, Simplify, Flip Matrix, Group, Shift Paths, manipulate and "pigeon hole" data.

But I find it a very personal thing you cannot simply say use it here, there, do this and do that. The "fun" bit is actually knowing what the structure is and what you want to do to it.

If you can grasp what a data tree is and what these notations mean and do {A;B;C} --> {A;B}. Then [Path Mapper] is a tool that you can call upon, but by knowing all of those things you can change them when the component throws an error (and that is quite often).

 

 

Id say I have a 95 percent understanding of the data tree; my issue with pathmapper is knowing and remembering how to write what I want to do. I'm not so good at that aspect, hence why I went to grasshopper as opposed to scripting. Thanks for all the information.

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service