Surfaces are things with their own coordinate word … meaning that the south “edge” for one MAY be the “north” edge for another. This means that a point at U/V 0,0 MAY “correspond” to a point at … you name it in the other pair. Result? the twist, that is.
There’s a variety of ways to check (and transpose if required) the pair for some sort of best “match”. It’s far easier to do that with code (the classic test is to sample 4 vectors and play games with these). If the surfaces are closed (either in U or V) that is a bit trickier since the seams must “match” as well (see attached and go for the tube demo). Or another classic way is to project division points from one to the other … but that has some limitations as well (works best on pairs of tubes).
Other than that the thicken part is also challenging IF max speed is required (Rhino is pathetic for anything “solid”) and/or IF planarity is required (say for making the pieces in real-world [plywood for instance]) etc etc. Real word means that the whole thing has a certain size that are at best 1000 times bigger than a toy model.
To make a long story sort: see attached (Code only, not suitable for you, just get it for the record/fun). Checks for “best” pair matching (as outlined above) are not included nor the ability for variable “hex density” via any number of attractors (push/pull) etc etc.
NOTE: Most of the screenshots display makeHexBreps mode 1 and 2 (meaning: no hex breps, only rings per polyline). Mode 3 does the hex tube (in 6 pieces for max seed, joining takes time and has no meaning in the real world).
hex-on-surface_PlanarThickPieces_V1.3dm (504.5 KB)
hex-on-surface_PlanarThickPieces_V1.gh (141.0 KB)