Bug with curve offset

Seems like a bug to me. The output curves should not be looking so wrong.

Bug with curve offset.3dm (97.8 KB)

1 Like

They look fine in Rhino 8, which uses a completely different algorithm to offset 2D curves than Rhino 7.
-wim

1 Like

Will this be fixed in Rhino 7, or will be left forever bad? :slight_smile:
The fact that the program is incapable of doing proper offset of quite simple polylines makes it impossible to work on some projects, or at least forces me to work extra time in trying to figure out different ways to overcome the bug.

2 Likes

no, this wasn’t a simple fix, it’s largely different code, so backporting is not an option (it might break other code/scripts etc.)

1 Like

You tried doing the offset in grasshopper?

1 Like

This is bad news for Rhino 7 users then…

I just checked and seems like the bug is still present in the latest Rhino 8, which I downloaded yesterday.

1 Like

you want to offset control point or loose for offset , why ? :thinking:

1 Like

I missed the loose part initially, loose makes no sense on a polyline

1 Like

Loose offset preserves the structure if the curves (and surfaces, if the input is a surface) and is very important while offsetting curves with a degree higher than 1.

4 Likes

Yes, but this example is degree 1…

Hmm, maybe the command needs an internal switch that detects degree 1 curves and automatically switches to Loose=No.

1 Like

The existence of this bug also makes no sense, as well as that it causes inaccurate offset on curves that include curves with a higher degree. :slight_smile: Here is an example with the bottom left end being a sharp edge, G1 arc and G2 blend.

1 Like

That trick will not help, because the bug is present even one higher degree curves. Not to mention that the offset tool fails to properly offset the G1 arc and G2 blend curves in the example above.

1 Like

Offset resets the tool to offset=no automatically most likely because you need to use it deliberately.

that’s why it is called loose

1 Like

I think loose running use next (left) line or curve degree for a new control point location

Rhino is known to create very inaccurate results while working with Degree 5 curves and surfaces. In this example it even fails with the simple G1 arc, which any other CAD software I know can handle properly. The problem with the G1 arc is that Rhino resets the weight of the middle control point to 1, whereas the weight of this point on the input arc is 0.707106781186831.

2 Likes

There is a place somewhere where we can find all the relevant changes like this one, from 7 to 8?

2 Likes

Relevant is relative, they’ll say, but I echo your request nonetheless.

1 Like

Hello- I guess I do not really understand why you would not simply keep Loose = No and be done?

-Pascal

1 Like

Why. How many different algorithms could there be to offset a “2D” curve. :sob:

Weird I never noticed how bad R7 is :sob:

Really weird. I guess I’m glad I kept throwing money at Rhino and ended up with R8 :sweat_smile:

That’s pretty cool :smiley:

Oh I see. What’s Bobi doing then :smile:

Hmmm what :thinking: :thought_balloon:

lol id even k rn :sweat_smile:

are these little loopiddy loops too what the :sweat_smile:

and all this time I’ve been thinking those degree 5 users were one upping me on accuracy :thinking: :thought_balloon:

1 Like

As I mentioned several posts earlier:

Loose offset preserves the structure if the curves (and surfaces, if the input is a surface) and is very important while offsetting curves with a degree higher than 1.

You are aware that offsetting a curved curve or surface without the “Loose” option results into an output curve or surface with noticeably greater number of control points, which is unwanted. :slight_smile: This is especially critical for when a lofted surface must be created between two curves or surfaces, or if Class-A quality is needed.

Offset the small arc by 5 mm.3dm (131.1 KB)

I notice two major flaws of the “Loose” option here:

  1. It will not keep the tangency of the end points (see the 5,4 degree deviation above);
  2. It will not keep the cp weight.
3 Likes