I can't join those polysurfaces together

Hey there,

I’ve got a polysurface that denies to join to a copy of itself. The final object will be an ArrayPolar of 16 of them, with Array center in w0.

I used SetPt to ensure the outer points are in same Y. The surfaces seem to intersect, but the don’t join. I lowered the tolerances, but… no.

I can redesign it and probably solve it with a workaround, but why this happens?PolySrf_No_Join.3dm (421.9 KB)

Thanks in advance
Dimitris

Dimitris, Rhino won’t join surfaces unless the edges match. If you use splitedge on each of the inner srfs, using int to snap where they’re tangent, they all will join. Probably the same for the full array.

PolySrf_No_JoinCK.3dm (152.9 KB)

1 Like

Chris, thanks for the tip.

I still don’t get it. SplitEdge doesn’t alter the geometry, it just divides the Edge. The edges match for the segment that is tangent.

What does SplitEdge do, that the Join isn’t able to do so? Isn’t that supposed to happen within the Join command?

SplitEdge makes it so that Rhino can find a span or length of edge on each surface that is ‘joinable’ to the other - in fact you only need to split one of the edges - Rhino knows to split the other one with the info from the end points of the split one. If they are not split, then RhIno, I guess, sees only that there are parts too far apart to join and it does not know how to find a split point.

-Pascal

1 Like

Thanks for the answer Pascal.

It’s a little tricky situation here. Aren’t there tolerances for that reason? Intersection works and gives 2 intersections, slightly different with each other. Is that of any help? Should they match exactly on edge and give only one intersection?

I guess the key thing is that Join is only looking for edge vertices, it does not do any intersecting, which, I’m told, is a very expensive and slow calculation.

-Pascal

Thanks again, I understand the slow down intersection would add to the Join calculations.

SplitEdge is something to have in mind for future similar situations. Cudos to ChrisK for that tip!