Offset Closed Curve Creates New Seam


I have encountered a problem with offsetting a series of closed curves inwards. The offset seems to create a new seam of the offset curves:

I would like to remove that additional point without exploding the curves in any way (the ultimate goal is to keep the points in the exact relative position of one another). Simplify curve won’t work here to remove that additional point, because this is the seam of the curve (As mentioned here:

While I can use offset loose, I’d rather not have to. Does anyone have any suggestions? I would also be open to any suggestions about rejoining curves with the original seam if that is a possible solution. See attached for a snipping of the script (28.6 KB)

No joy without these bits:


1 Like

Hey Joseph,

Here’s a version absent of those plugins. Thanks in advance. (31.5 KB)

Your code looks remarkably complex to me… More than I care to dig into at the moment. I was working with something much simpler.

Standard GH Offset Curve doesn’t move the seams, but it breaks easily if the offset value is too large. (5.1 KB)

The Clipper plugin is often superior but it does move the seam from the yellow points to the blue points (below). Seams can be adjusted though, as I’ve tried to do, but I’m having a mental block getting data trees to match up so it’s not working correctly (highlighted green points) yet. (13.1 KB) (DEPRECATED due to error, see below)

If no one else solves it (and you can use Clipper?), I may sleep on it and figure it out later.

P.S. Ding! Ding! Ding! Got it, at least the data tree matching, but it missed one of the corners, finding a closer adjacent corner point instead. :thinking: Oh! I know why… (14.0 KB)

Fairly simple though, eh? :sunglasses:

1 Like

Hey Joseph,

Thanks for sharing your solution. Clipper seems like a viable workflow, though I would certainly need for it to work on every corner, 100% of the time, with a variety of geometries (going into an optimizer - hence the complexity at the beginning for later on safety precautions, which I have omitted from the script).

Many thanks,

Automagicaly, eh? That’s optimistic. I added a missing value for the Dup (Duplicate Data) ‘N’ input, which is the number of offset values being used, and replaced my two sliders with your four offsets.

However, Clipper doesn’t accept negative offset values, it has two outputs, ‘C’ and ‘H’, where ‘C’ are “out” offsets and ‘H’ (Holes) are “in” offsets. I suggest you install and experiment with it before deciding. Note all the inputs to PolyOffset and how they affect the results.

Adjusting the seams for multiple offsets may require an iterative method more complex than what I’ve done so far. (15.5 KB)

Keep it simple!