ExtrudeCrvTapered Inaccurate

ExtrudeCrvTapered produces inaccurate tapered extrusions when the starting curves are curved and have few control points. The inaccuracy increases with increasing length of extrusion and curvature. It occurs with extrusions which are not long enough for creases to occur.

Examples are in: TExtProb21.3dm (226.1 KB) These examples have a taper angle of 45 degrees and an extrusion length of 25mm. Example 1 has a start curve with 5 control points, was extruded down with the radius of curvature increasing. Example 2 has a start curve with 4 control points, was extruded up with the radius of curvature decreasing. The minimum radius of curvature of the start curve is 27.4mm and the offset distance was 25 mm so the offset curve does not have a kink.

The correct shapes of the ends of the extrusions opposite the start curves are shown by the moved offset curves. Clearly the extrusions have an incorrect shape. Rebuilding the start curves with a much greater number of control points, 100 rather than 4 and 5, produces much more accurate results. The cause of the problem appears to be that the algorithm does not divide the start curve sufficiently before calculating the shape of the opposite end of the extrusion. It is not clear what is used to determine how finely the start curve is divided for the calculations - the various accuracy settings do not appear to have any effect.

This problem was previously reported in the ExtrudeCrvTapered - bad result thread with a different example. That thread generated considerable discussion. This thread is an attempt to more concisely report the problem with a simpler example along with the apparent cause.

here’s another way to see the error which is occurring – in the case of _Offset, the error corrects itself suggesting that someone at mcneel has already solved this problem… the same fix needs to be applied to _ExtrudeCrvTapered

http://youtu.be/9A-SfXm9hno

(you might have to watch it bigger/cleaner at youtube… sorry about the noise pollution in there)

[quote=“jeff_hammond, post:2, topic:7340”]
here’s another way to see the error which is occurring – in the case of _Offset, the error corrects itself suggesting that someone at mcneel has already solved this problem… the same fix needs to be applied to _ExtrudeCrvTapered

http://youtu.be/9A-SfXm9hno

(you might have to watch it bigger/cleaner at youtube… sorry about the noise pollution in there)
[/quote]It appears to me that the preview curve in Jeff’s video of the Offset command is generated with only a few divisions of the start curve and corresponding control points, presumably so it can be calculated and shown “live”, and then for the final curve additional control points are added to bring the final offset curve within tolerance. The final curve has many more control points than the start curve.

This is consistent with my assumption that ExtrudeCrvTapered uses too few control points in calculating the shape at the tapered end of the extrusion.

Hi David- thanks, I’ve attached your example to a bug report for the developer to take a look at,

http://mcneel.myjetbrains.com/youtrack/issue/RH-25988

(these are not visible to the public yet)

thanks,
-Pascal

Hi David, Jeff - so it looks like for the foreseeable future, using a refit version of your curve as the input in these cases is probably the best solution.

-Pascal