Bug in Intersect, Section, Contour, Project, Split, Trim, etc

Intersection is incomplete. The bug occurs in both V7 and V6. (I don’t have earlier versions installed to test.)

This bug appears to be caused by some “core” code which determines intersections and is used by numerous commands.

Simple single span degree 3 surface, not singularities stacked control points, split edges and located near the origin. The untrimmed surface is the “Original” surface in the attached file and images below.
IntersectBugDC01.3dm (1.6 MB)
Absolute tolerance 0.001
Angle tolerance 0.1

Intersect a plane at z=15.000 with the surface results in an incomplete intersection of two open curves.

Trimming the surface as in “Trim A” below results in the same.
Trimming smaller as in “Trim B” below results in the correct intersection with a single closed curve.

Moving the intersection plane to z=14.900 results in the same.
Moving the intersection plane from to z=15.001 results in the correct, single closed curve intersection for all surfaces.

I have verified that this bug occurs using the follow commands.

  • Intersect - as described above
  • Section - in the Front and Right views
  • Contour - when a contour is at z=15.000 or z=14.900
  • Project - when the line in the attached file is projected in the Front or Right view
  • Split - fails with plane at z=15.000 or z=14.900
  • Trim - fails with plane at z=15.000 or z=14.900

I did limited testing with planes and lines slightly tilted and the failures were similar.

My guess is other commands which use intersection calculation have the same bug with this geometry.




Hi David - yeah this is in the ‘SSX’ (SurfaceSurfaceInterssection) stuff. Inserting knots also allows it to work - I’ll put it on the heap, thanks.

RH-61958 SSX: Incomplete intersections


@Pascal Inserting knots does not fix the bug. Inserting knots at the midpoints also causes the incomplete intersection in the smaller trimmed surface.

Attached file has knots inserted into the surfaces at the midpoints.
IntersectBugDC02.3dm (1.6 MB)

I hope this becomes high priority. It is a problem with core geometry calculations which need to be reliable.This example is simple enough it should work all of the time. I took time to explore it and document it in the hope that the developer can find the core issue, not just a work-around type of patch.

1 Like

@davidcockey Thanks for taking the time to isolate the problem and report the bug. I appreciate your opinion

I hope this becomes high priority. It is a problem with core geometry calculations which need to be reliable.This example is simple enough it should work all of the time.

This is the kind of feedback we need to prioritize fixing this code. I spent a lot of time for V7 (and am still working on now) improving the Curve x Surface Intersection code. I identified this a major flaw in Surface x Surface intersection ( the core code you are reporting as a problem).

This code is very complex. There are two things you should know about fixing it. First, the problem is most likely because of a fundamental flaw somewhere in the code. It’s probably not a simple bug, like that variable should have been a u instead of a v. That’s because I’ve already fixed hundreds of bugs in this code over many many years. All of the easy to fix bugs have already been fixed.

Second, There are hundreds of places for things to go wrong. Even though 2 failures look the same there is a good chance that they fail for unrelated reasons. So it’s important for me to have many bug examples. All of this bug reporting and logging is an important step in getting the code fixed.

1 Like