Help! Boolean Difference not working?

help file.3dm (596.0 KB)

Should be very simple but not working.
I only want to boolean difference the long extruded shape out of the top object, to create small recess where when I print the objects they will locate. I’ve done this with previous versions but for some reason it is not working with this version - any ideas? Any help greatly appreciated!

Your “umbrella” surface is actually an open object, and the normals are facing inward. You can Flip it and the BooleanDifference will work ‘as expected’. However:

The resulting object will still be open. The reason is because the inside surface comes to a point (singularity), but the control points haven’t been fused together into one at that spot. Probably a result of an OffsetSrf?

So to fix this (before the BD):

  • Extract that inside surface
  • Turn on control points for it
  • Window select just the points at the tip (there are 130 of them)
  • Use SetPt in X, Y and Z to set all the points to one of the original points (doesn’t matter which)
  • Join the result back to the original, the object will now be closed
  • Do your BD

Hi,

Thank you very much

As I’m just going through iterations quickly, what do you mean by flip it?

Many thanks

Thanks. I’ve done it the way you detailed in the steps, but I’m still wanting to fully understand why it happened for my own learning. I did as you thought. I had a line the outer profile for the umbrella which I offset inwards, I then rail revolved it. Why does this give me an open shape?

Many thanks

The command Flip used on a curve reverses its direction. Used on an open surface/polysurface it inverts the surface normal direction. Boolean operations in Rhino rely on surface normal directions to determine what parts of the result to keep and what to throw away.

You didn’t provide the original profile curves, but I tried reproducing what you did by extracting the outer surface profile at the seam and offsetting it. Assuming you derived the revolve axis from the inner endpoint of the outer profile, the outer profile rail revolves fine with the singularity as one merged point, but the offset curve doesn’t. There may be a microscopic difference at the offset endpoint so that it does not lie exactly on the original axis, so it ends up as a circle of 130 points. If you make a new axis from the inner profile’s endpoint and revolve it separately, it’s fine.

The remedy would be to use SetPt in X and Y on the axis end of the offset curve and align it to the original curve. Then the RailRevolve will produce a closed object.

Note that “singularities” - surface edges collapsed to 0 length (a point) like the poles of a sphere or the end of a cone - are special cases in Rhino. In reality the collapsed edge has as many control points as the rest of the surface isocurves in the same direction, but they are combined by Rhino into one point for easier manipulation.