Offset curve without overlapping

Hello guys,
I am trying to make a very generic script for core area calculation.
The problem is when she shape is not wide enough and the curves start to overlap. My idea is to check the dimensions of the surface before offsetting the surface’s outline, so that if the dimensions are smaller than certain limit the offset won’t be created. This should work for multipolygons and circular surfaces. Any ideas how to do that? Thanks a lot!
Ondrej



image

Like this?

offset_limit.gh (8.3 KB)

Always use Clipper.


Clipper.gh (7.7 KB)

4 Likes

Hi @davidsmavrov,

I like your definition, it is very elegant :))…
although, counting the curves is a good idea, sometimes you might loose the offset only because of a small protrusion like in your example
image
In this case I would like the two curves to join.

If you have an idea how to go around it, please let me know.

Thanks a lot!
Ondrej

Like this?

offset_limit_v2.gh (12.6 KB)

Hey, listen, this is just a quick suggestion. I am pretty sure is not “one size fits all” kind of solution.

Try Michael Pryor suggestion. It will give you way better results.

Hi again, @davidsmavrov
Thanks a lot for your effort!
I see some limitations but it might workout for my geometries just fine. If not I’ll give a chance to Michaels’ clipper :slight_smile:
Ondrej

It’s not mine :smiley: I just use it.

This is maybe what you need…

Smart_Offset.gh (10.5 KB)

1 Like

Hi guys,

I’ve just installed clipper, but it seems like it works because it’s projecting the curve.
This also work with both “offset curve in GH”, “offset curve Pufferfish” if I project the curve.

But is there acutally a way to offset a none-planar-polyline?

And is it possible to use clipper without offset on bothsides? like the pufferfish component.

//Thomas

Not the most efficient solution but try this:

Also search for the Plugin called “Fennec” It has a non planar offset curve tool.

Clipper Gives you both options you can use whatever curve you want

1 Like

It’s the only good way there. Make a surface and offset on it.

Hi Tay and Michael

Thank you for your quick reply,

unfortunately this does not work for me completely…

I tried with both offset on surface and the “fennec offset tool”.

Attached GH+internalised data:
offset-fennec-surface.gh (16.3 KB)

Offset on surface somehow gives an improvised curve:

Fennec offset still does the funky corners:

And don’t know why I couldn’t figure this out my self :open_mouth: But thank you! :slight_smile:

How do you suspect to offset in 3 dimensions an object that has infinite possibilities with no obvious answer (a curve doesn’t have an obvious direction in 3D such as a surface has a normal direction front and back). You will need to be very specific about how you want this curve to offset in 3D and come with a method to do it.

1 Like

One possible solution is to make an offset on the XY plane and then pull the curve to the patch.

offset-fennec-surface_tayO.gh (15.6 KB)

1 Like

Hi both of you

I understand, and totally agree, but I think what tay.0 suggests is a very good (approximate) solution for my problem.

Thank you both of you for your help and comments on this!

1 Like

if you are not sure which plane to follow, you can also divide the curve to 8 points then use the plane through point to approximate the offset plane.

You’re welcome

Hello guys, I’ve just discovered this interesting topic (pull curve) and immediately applied it to my work, but I found some problems.

I’ve a non-planar surfaces and multiple non-planar offset curves. I have to select only the curves inside the surface. This part is very easy to solve thanks to “clipper” tool (it’s a simplification of my work), but my question is how can I maintain very similar the offset curves to the original one? I used the “pull curve”, but the final result showed me a “broken” curve. Where could be the problem?


Offset Multiple Surfaces.gh (16.9 KB)

@Giulia_Riccardi
These issues caused when the portions of the curves fall outside the surface when pulled (pull use the shortest distance)

The Easiest solution is to either Untrim or Extend the patched surfaces.

1 Like

Thank you very much, you solved my problem!!!

1 Like