I use “Large objects - Millimeters” with absolute tolerance set to 0.01 mm. The inability to properly split a surface via curve (or another surface) happens when the latter is positioned so close to the end of the surface that’s going to be cut that it’s below the absolute tolerance.
For example, in the attached file I created one straight line that’s 0.0082680 millimeters away from the edge, making it shorter than the 0.01 mm that the file uses as a reference. Running “Rebuild edges” before the split/trim command also won’t help. If you try to split the surface from the left view using the line, Rhino will fail to do it unless the tolerance is set to 0.008 mm or a bit lower. With anything between 0.005 mm and 0.008 mm Rhino splits the surface somehow, even though it does that with only the highest 2.2 mm long area of the surface and won’t follow the true shape of the straight line. What’s interesting in this example is that an absolute tolerance of 0.0001 mm will also fail, even though the line is clearly crossing the surface. I also extended the line at either side, but this also haven’t helped. However, tolerances of 0.00001 mm and 0.000001 mm split the surface just like the 0.008 mm one did. I have no idea why 0.0001 mm failed.
This unwanted deviation also happens with projected curves, where they differ from the original curve that was used for the projection. In this situation, the projected curve tends to “snap” along the edge of the surface within the tolerance amount (up to 0.01 mm deviation) rather than to be an exact copy of the original.
Manually changing the absolute tolerance every time before such tight cut resolves the problem, but a more elegant solution would be to have a separate, 10 times more accurate setting for the “Split”, “Trim” and “Project curves” tools. If the rest tools also use too accurate setting, that would lead to other problems such like over-complexity of control polygons (too high control point count) and will significantly increase the file size and time for calculation of various commands.
Tolerance test.3dm (158.7 KB)