Pipes on Mesh Isocurves

Hi everyone!

I am brand new in GH so I have a fairly simple question.

I have a mesh (created from Weaverbird with a certain thickness) and i want to choose some isocurves that construct the mesh and then pipe them. I manually created an example of what I am trying to do by baking the mesh’ s vertices and by connecting the points on which I want to create curves and then pipe them. The two baked pipes are a sample, I want this manual point interpolation to be repeated around the mesh like an array. Also I want this curves to be created only on the U direction and not the V, as the baked ones.

I hope this is clear. Any input would be very much appreciated!
pipe along mesh.gh (9.6 KB)
pipe along mesh.3dm (413.4 KB)

Thanks a lot

This is the best I could do. First off, I manually moved the base geometry to the world center and oriented it “facing up”. Next, i created a bunch of rotated planes which then intersect with your mesh. The resulting curves can be piped.

Not sure how you’d organize the mesh vertices. What seems so logical to us isn’t necessarily easy to reproduce, but maybe someone else can help out.

pipe along mesh_re.gh (37.0 KB)

How about this: cull all more or less parallel (to world xy) curves.
(Actually, those whose perp frame is more or less 90 degrees to world xy… same same).
More or less meaning a maximum deviation you can set (8 in this case). Had to adjust it a tiny bit to catch all curves.

pipe along mesh_re2.gh (32.6 KB)

I tried a different method… I probably gone out of hand… but here it is.
pipe along mesh_re.gh (26.8 KB)

The “algorithm” is this:
-splitting each edge to 2 halves
-for each mesh vertex finding the 4 nearest half-segments
-sorting found half-segments by its POLAR position to a mesh-normal plane
-here we can “blindly” join 1st segment with 3rd, and 2nd with 4th
Now we have a “cross” for each mesh vertex, but each line of the cross can’t join with the other line (of the same mesh vertex).
-joining everything together, result is theoretically everytime ok, but curves are shuffled, U and V together.

I sorted “U” curves by using the biggest “V” curve (area center > closest point > sort by parameter)

Way more complex… maybe useful.


Hi! Thanks a lot for the contribution. I am trying to open the script, however it seems like some components don’t appear (maybe my GH lacks some plug-ins). Here is a printscreen of what I get from your file… Could you please send me a printscreen of yours so I can see what lacks?

Many thanks!

Thanks a lot. Actually this solution works, however I want to do that in a large group of modules which have a variety of orientations. I can see that you work by orienting the module “facing up” and then culling according to x,y coordinates. In that case, I will have to manually rotate each module"facing up", which is not that convenient.
Do you think I could extract the orientation axis of each module somehow and use a given degree in the expressions that you set with the 90 degrees?

What i get when on a non facing up module is what you see in the picture, basically the non parallel with xy axis pipes are not extracted.

Thanks a lot for your time anyway!

I have not used any plugin, maybe I just have a more recent version of GH than you.

Thanks again.

Now it works perfectly with your solution!!! Thank you for your contribution.