The loose option does not guarantee a uniform accurate offset - in fact it pretty much guarantees that it won’t be.
If you set the Loose option to yes, the accuracy is determined by absolute tolerance in Options>Units. If you set the Loose option to no, you can control the accuracy directly in the Offset command.
P.S. I am glad that we have found a topic we can argue about. The McNeel forum is boring without controversial topics. Maybe rating McNeel instructors would bring some life back to this forum?
Fundamentaly incorrect. With Loose=Yes the number of control points is retained, and the accuracy is not determined but the absolute tolerance. For many if not most curve the accuracy (deviation for specified offset distance) will be worse than the absolute tolerance.
Added: In general an offset curve at a constant distance from a NURBS curve is not a NURBS curve because of the math of NURBS curves. The offset curve can be represented within a tolerance by a NURBS curve with the number of control points needed increasing as the tolerance (deviation from the exact offset curve) is tightened.
This has never been true, the Help must be wrong if you read that… Here is a curve offset by 5 with the loose option (file tolerance 0.001):
LooseOffset.3dm (51.8 KB)
This is the video https://vimeo.com/311949582 (not the one linked in the post above) where Kyle makes a comment about the results of the Offset command. He does not say Offset is a terrible command. Rather he says the result with many control points is “terrible” in the context of the project the project he is doing. That happens to be a project where an accurate offset curve is not required.
The Help does not say that. It says:
Loose The Corner and Tolerance options are not shown and do not affect the output. Polycurves are offset as a group of separate curve segments, and there is no corner trimming or filling.
Help for Offset could be improved with an additional statement about the Loose option. My suggestion would be along the lines of (added phrase bolded.):
Loose The number of control points is retained but the result will usually not be an accurate offset curve. The Corner and Tolerance options are not shown and do not affect the output. Polycurves are offset as a group of separate curve segments, and there is no corner trimming or filling.
I get order of magnitude more accurate offset (in the loose option) after improving absolute tolerance by order of magnitude.
Please provide an example.
The loose offset curve stays the same with the absolute tolerance increased from 0.001 to 0.0001 in Mitch’s example (Unless I forget to set Loose=Yes after changing the absolute tolerance. Loose returns to No after each application of Offset). LooseOffsetDC0001.3dm (55.7 KB)
About two hours ago I ran offset on a close curve, then I measured two distances for low tolerance, and two distances for high tolerance. I had clear correlation. Ten minutes ago I repeated the experiment with lots of data points (distances). This time there was no correlation. I am 99% certain that my initial opinion was wrong. In other words, there is no correlation between the absolute tolerance and the loose offset accuracy.
Thanks for the response. My guess is you missed the Loose option automatically resetting to No between create the low and high tolerance offset curves. The automatic reset can be annoying, but the Loose setting staying set to Yes could also be annoying.
Loose=Yes moves the edit points with the specified distance. If you measure the edit points, not the curves, it’s absolutely accurate. Curves with less control points (edit points) will distort more than dense curves. Because of this, Loose=Yes may not produce a good result for the example in Kyle’s video.
Line command documentation is here: https://docs.mcneel.com/rhino/6/help/en-us/commands/line.htm
It has two options which are not described well and it seems that these options are disabled:
Line> Perpendicular> Point
and Line> Tangent> Point
The same documentation describes FromFirstPoint option. This option does not exist.
FromFirstPoint option does exist. Start Line command and after “Start of line” select Tangent option and select curve, “End of line” appears and the FromFirstPoint option is available. FromFirstPoint is also available if Perpendicular is selected instead of Tangent.
Start Line command and after “Start of line” select Perpendicular and select curve, “End of line” appears and the Point option is available.
Start Line command and after “Start of line” select Tangent and select curve, “End of line” appears and the Point option is available.
The problem is that the point option does nothing useful - if you do not select this option and just click empty space in the viewport, the effect is the same.
2Curves option is also useless because hovering cursor over second curve has the same effect - a line-shaped widget appears on the second curve. The widget indicates tangent angle or perpendicular angle. There are four options: from tangent to tangent, from tangent to perpendicular, from perpendicular to tangent, and from perpendicular to perpendicular.
The FromFirstPoint option appears (thanks), but it does not work in perspective viewport, and documentation does not explain how to do it. (You have to experiment for a long time before you discover the magic trick.) There is a bug in the Line>Perpendicular command - when I use perspective viewport and click FromFirstPoint in the Command prompt, or type letter “f”, the perpendicular restraint is lost and the line is drawn between the picked points. This bug does not appear in the Tangent option and ortho viewports.
IPlane is undocumented, but useful command which makes planar, rectangular surface. The IPlane command is similar to Plane command, CutPlane command, and to InfinitePlane option. Its shortcut is the same as the InfinitePlane shortcut: IP. Its prompt says that the command makes “pseudo-infinite plane”, but it actually makes ordinary surface.
ShortPath documentation is here: https://docs.mcneel.com/rhino/6/help/en-us/commands/shortpath.htm
It has one option: InfinitePlane. The option is useless because the path is always straight. It is easier to draw straight line than to use the ShortPath command.
FromFirstPoint works in the Perspective viewport for me with Line > Perpendicular. It may appear not to be working. However the line is actually drawn perpendicular to the selected curve from the point where the curve was selected, but it usually will not be on the C-Plane. The second end of the curve appears to be based on where the apparent cursor position intersects a plane perpendicular to the selected curve. Use 4 viewports with the Perspective viewport active and you can watch the line move around in the other viewports as you move the cursor. Create the perpendicular line and then check it. It will be perpendicular.
You are correct. The problem is not in the FromFirstPoint option, but in the Line>Perpendicular command without the FromFirstPoint option. If you use the Line>Perpendicular command without the FromFirstPoint option, you expect the line to be either drawn in the construction plane, or in the curve plane, but the line is actually drawn in random plane. There is one exception: the line is drawn in the construction plane if the ortho viewport is active, and the curve plane is parallel to the construction plane.
We need new feature:
- If the Line>Perpendicular command is used without the FromFirstPoint option, and perspective viewport is active, the line is drawn in the curve plane.
- If the Line>Perpendicular command is used without the FromFirstPoint option, and ortho viewport is active, the line is drawn in the construction plane.