 # What exactly is "overlapCurves"? (parameter in CurveBrepFace)

What exactly does the `overlapCurves` parameter represent in the command CurveBrepFace?

http://developer.rhino3d.com/5/api/RhinoCommonWin/html/M_Rhino_Geometry_Intersect_Intersection_CurveBrepFace.htm

Is is only assumed that one would know exactly what overlapCurves means, but I don’t. But hopefully someone can illustrate what they are?

// Rolf

I think that when a part of the curve lies on the face, that sub-curve is returned as an intersection overlap curve.

You mean “parallel” with or coplanar with the face, without actually intersecting the surface? ( so the overlapCurve would be a means to find out where an intersection continues if it has a gap at the “overlap”).

Did I understand that correctly?

// Rolf

Sorry, I fail to understand here … I think that the curve may or may not ‘intersect’ the face and still have an overlap.
Case 1) : the curve ‘comes from’ a face’s side, lies on the face for some length, then ‘goes out’ to the other face’s side
Case 2) : the curve 'comes from" a side and, after lying on the face, ‘comes back’ to the same side it came from
In both cases we have an overlap IMO

Does that make sense ? No. Or, to me that doesn’t intuitively relate to the term “overlap”. But it doesn’t have to make sense. I still believe you when you say so.

// Rolf

Don’t !

That is just my understanding. I hope someone else (maybe from RMA) will clarify that.

Anyway …

Here is the docs of rhinoscriptsyntax.CurveSurfaceIntersection()

That may (or may not … ) be a little more clear …

( But it lost its formatting … errrr … please just open RhinoIronPython.chm … )

CurveSurfaceIntersection
Calculates the intersection of a curve object with a surface object. Note, this function works on the untrimmed portion of the surface.

Syntax
rhinoscriptsyntax.CurveSurfaceIntersection (curve_id, surface_id, tolerance=-1, angle_tolerance=-1)

rhinoscript.curve.CurveSurfaceIntersection (curve_id, surface_id, tolerance=-1, angle_tolerance=-1)

Parameters
curve_id
Required. String or Guid. The identifier of a curve object.

surface_id
Required. String or Guid. The identifier of a surface object.

tolerance
Optional. Number. The absolute tolerance in drawing units. If omitted, the document’s current absolute tolerance is used.

angle_tolerance
Optional. Number. The angle tolerance in degrees. The angle tolerance is used to determine when the curve is tangent to the surface. If omitted, the document’s current angle tolerance is used.

Returns
List
A two-dimensional list of intersection information if successful. The list will contain one or more of the following elements:

Element
Type
Description

[n]
Number
The intersection event type, either Point (1) or Overlap (2).

[n]
Point3d
If the event type is Point (1), then the intersection point on the curve.

If the event type is Overlap (2), then intersection start point on the curve.

[n]

Point3d
If the event type is Point (1), then the intersection point on the curve.

If the event type is Overlap (2), then intersection end point on the curve.

[n]

Point3d
If the event type is Point (1), then the intersection point on the surface.

If the event type is Overlap (2), then intersection start point on the surface.

[n]

Point3d
If the event type is Point (1), then the intersection point on the surface.

If the event type is Overlap (2), then intersection end point on the surface.

[n]

Number
If the event type is Point (1), then the curve parameter.

If the event type is Overlap (2), then the start value of the curve parameter range.

[n]

Number
If the event type is Point (1), then the curve parameter.

If the event type is Overlap (2), then the end value of the curve parameter range.

[n]

Number
If the event type is Point (1), then the U surface parameter.

If the event type is Overlap (2), then the U surface parameter for curve at (n, 5).

[n]

Number
If the event type is Point (1), then the V surface parameter.

If the event type is Overlap (2), then the V surface parameter for curve at (n, 5).

[n]

Number
If the event type is Point (1), then the U surface parameter.

If the event type is Overlap (2), then the U surface parameter for curve at (n, 6).

[n]

Number
If the event type is Point (1), then the V surface parameter.

If the event type is Overlap (2), then the V surface parameter for curve at (n, 6).

None
If not successful, or on error.

Example
import rhinoscriptsyntax as rs

def csx():

``````curve = rs.GetObject("Select curve", rs.filter.curve)

if curve is None: return

surface = rs.GetObject("Select surface", rs.filter.surface)

if surface is None: return

intersection_list = rs.CurveSurfaceIntersection(curve, surface)

if intersection_list is None:

print "Curve and surface do not intersect."

return

for intersection in intersection_list:

if intersection==1:

print "Point"

print "Intersection point on curve:", intersection

print "Intersection point on surface:", intersection

print "Curve parameter:", intersection

print "Surface parameter:", intersection, ",", intersection

else:

print "Overlap"

print "Intersection start point on curve:", intersection

print "Intersection end point on curve:", intersection

print "Intersection start point on surface:", intersection

print "Intersection end point on surface:", intersection

print "Curve parameter range:", intersection, "to", intersection

print "Surface parameter range:", intersection, ",", intersection, "to", intersection, ",", intersection
``````

csx()

Also See
CurveCurveIntersection

CurveBrepIntersect

Hi @RIL,

@emilio has it right. An Overlap intersection event occurs when some portion of an object (a curve in this case) lies on another object (a surface in this case) within a specified tolerance.

Here is a simple illustration of a Point intersection event (left) and an Overlap intersection event (right).

Does this help?

– Dale

1 Like

Thanks Dale !

Got it, thanks!

I think it was the term “overlapCurve” that somehow got me confused. But now when I know what it represents, the term makes more sense.

The term wasn’t fully self-explanatory though. Perhaps a “alignedContactCurves” or the “flowAlongCurves” etc would have been more self explanatory. Anyhow, now I got it.

// Rolf

Overlap

verb (used with object), overlapped, overlapping.

1. to lap over (something else or each other); extend over and cover a part of; imbricate.
2. to cover and extend beyond (something else).
3. to coincide in part with; have in common with. – Dale

`coincidentCurves` then. But you guys speak native English, I don’t, so never mind my ignorance. : )

// Rolf

As a very long-time native English speaker with practically no facility in other languages, and referring to Dale’s definitions, I have to agree with Rolf that “coincident curves” more accurately and intuitively describes the situation.

Dunno, I’m fine with overlaps… --Mitch

1 Like