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.
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.
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.
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