Boolean Difference Error

Hello Friends,

In Grasshopper, a Boolean difference didn’t work so I tried it in Rhino. Unfortunately it didn’t work there either. Therefore I’d like to hear from you what the problem is.

Rhino indicates that the problem is with intersecting the deck surface. However, Rhino also tells me that it is a valid surface.

As the deck surface has one singularity at the bow position, then I thought that this would be the problem. However with another Trimmed deck surface without a singularity, the problem remains.

When I move the cutting box 1 mm. in the y-direction there’s no problem with the Boolean.

Can you please tell me what the problem is?

Thank you in advance.

Gerard

BooleanProblem.3dm (5.9 MB)

Workaround:

intersecting both gives two issues, one can be solved with MergeAllCoplanarFaces, the top surface needs to be split manually along the center. After that the Boolean works.

RH-90315 Incomplete intersection

edit: another workaround is changing the degree of the top surface in the V direction.

Thanks Gijs,

Your reply is very valuable.

my 2 cents:

i think you are more or less right - the deck surface is bad (1st error) and the planar Surface also (2nd error - solved by _mergeAllCoplanarSrf)

the top / deck surface of the boat is bad.
it has a collapsed edge and the resulting “pole-like-double-corner” is 180 degree.
if you extract the center iso-Curve it has 2 identical end points.
(becuase of the 180 degree corner the 2 CVs “fall” to the same possition)
it is not possible to extend this isocurve.


from left to right:

  • healthy nurbs surface
  • collapsed edge = acceptable in some cases
  • collapsed edge with new 180 degree corner, “pole-like-double-corner” = bad
  • collapsed edge with 0 curvature .. = even worth

best solution in my option;

build the top surface as trimmed surface:
_fit the center curve
_extrude in both directions
_extendSrf both ends
_trim

mergeAllCoPlanarSrf as @Gijs said
Boolean operations work.

@Gijs it s not a bug it is an unusual surface, i would not expect that rhino handles those special cases - at a certain level of nurbs modelling users have to know that pole-like Surfaces / collapsed edges / degenerated corners are bad.
so maybe it is more an improvement of error-message / feedback and documentation.

your workaround will not solve the problem of a bad surface and might lead to new errors (filleting, offseting etc…) in next steps.

EDIT:
here is my file with a imporved deck surface that is 4-sided + trim

BooleanProblem_tp.3dm (13.3 MB)

kind regards - tom

I agree with you that singularities are highly undesirable and that it is better to avoid them in the first place.

I just see that the aft surface has a collapsed edge as well, so it is the same problem

2 Likes