CurvePlane intersection fails due to tolerance

Hi there,

I have a plane and curve that clearly intersect :

I’m running a CurvePlane intersection using model absolute tolerance set to 0.001 and fails to get a result. Reducing the tolerance to 0.01 works.

Given that the curve and the plane intersect, I don’t see what the tolerance has to do with it ?
Also moving the plane a bit with the same tolerance works.

Version : Version 8 SR8 (8.8.24170.13001, 2024-06-18)

snippet and model attached :

import rhinoscriptsyntax as rs 
import scriptcontext 
from scriptcontext import doc 
import Rhino 
import Rhino.Geometry as rg 

TOL = rs.UnitAbsoluteTolerance()
#TOL = 0.01

s, plane = doc.Objects.Find(rs.GetObject("plane")).Geometry.Faces[0].TryGetPlane(TOL)
crv = doc.Objects.Find(rs.GetObject("crv")).Geometry 

print Rhino.Geometry.Intersect.Intersection.CurvePlane(crv, plane, TOL)

250206_CurvePlaneIntersectionFail.3dm (61.4 KB)

Edit :

The same model and code works in Rhino 6
250206_CurvePlaneIntersectionFail_RH6.3dm (58.8 KB)

Hi @_Sylvain,

The curve and plane in 250206_CurvePlaneIntersectionFail.3dm clearly do not intersect. Spin your model around and you can see this.

Also, the Intersect command reports this.

– Dale

Hi @dale, isn’t the plane infinite in above example ?

_
c.

2 Likes

Hi Dale, Clement,
Thanks for jumping in :slight_smile:

my bad, I meant an infinite plane as in rg.Plane, not “plane surface”.

Hi @_Sylvain,

This is not a tolerance issue. And your example does not work in V7 either.

You curve have a lot of control points (342). Reducing the count seems to help.

– Dale