Join curves + offset not working efficiently

Hello there:

I am trying to join several lines together and then offset them using grasshopper for mac, but unfortunately it seems that it is unable to do so.

You will see in the image bellow that I am trying to join 5 lines together (BiArc, IntCrv, Nurbs, IntCrv and BiArc) called Neck, Shoulder, Arm, Side and base. The join operation does seem to work as there is no warning sign, but when doing an offset (the green line in Rhino), you will see that nothing stays attached together despite the corner connected option.

I have tried to flip direction of certain line, but that did not help.

Is this a glitch or something that I am missing?

Thank you for reading this.

From your image, despite that the 5 curves are single objects, they are on different branch levels - (look at the panel indications {0;0;0} etc) which is why they do not join (I hope anyway). Another indicator of that is you can see that the wire leading away from the Join component is a tree (dashed) wire, when it should be a solid line indicating one item.

What you can do is use either Simplify or Flatten on the outputs of the curve objects, or perhaps just on the input of Join (right click menu) to get them all on the same branch level. Then they should join and offset as one object (again, I hope).


@Helvetosaur - Flatten totally did the trick. Is there more information about this so called “tree” structure?

It was definitely challenging and non intuitive to figure out.

And by the way, thank you for the pointer, much much appreciated!

Trees and their management are one of the most important things to learn in GH… Also one of the most powerful tools for managing complex data. I would suggest the GH primer for starters, and there are plenty of good tutorials on GH trees… A page to start off with here (Grasshopper section)…


And if you’re wondering why on God’s Green Earth trees are there at all… you can read this FAQ post.


@Helvetosaur @DavidRutten - Thank you both for the articles. I do get now the logic of having those. I still think that this can be a barrier for newbies like myself that wants to start playing with simple things before graduating to more sophisticated models. Expecting users like me to have a computer science degree and thorough understanding behind data models right from the get go or having them to deep dive through several expert documents or tutorials to do a simple offset command, seems to me like a bit of a stretch.

Perhaps this notion of tree structure could be either pointed out earlier on as a must concept, or represented more graphically on each components rather than a simple {0,0,0} on a panel tucked in the left hand corner? Thus hinting that tree structures are core? Or perhaps that the panel has the ability to have a mouse over, to indicate what that means “5 degree tree structure”.

This is just a thought for facilitating integration for newbies like myself to grasshopper :wink:

Absolutely. Trees are not easy to work with, and I’m not sure how much easier it can become with different tools (a little but, sure, but I suspect there’s a limit). While designing them I tried very hard to make them work correctly by default as often as possible, but even so people will smash into them too soon.

@DavidRutten - I will keep a look out for those, as my understanding grow of them and their use I will see if I can offer come better UX.