Offsetsrf not working

I am trying to use offsetsrf to create an innnerbottom for this hull but it either fails or produces something that isnt correct.

hull.3dm (136.5 KB)

Which direction are you offsetting? What distance are you offsetting?

If you offset inwards (concave side) then folds, etc wil result where the radius is less than the offset direction.

Around 2m inwards

offsetting inward will result in self intersecting surfaces, Rhino is giving you back as much as possible. What might help here is to explode the surfaces, offset them individually and repair the areas where there is intersection, then eventually trim and join them back together.

The problem is caused by trying to offset a surface inward which has areas with a minimum radius of around 1.4 m. Those areas will result in folded, self intersecting surfaces.

It should possible, but not easy, to fix the problem as Gijs suggested; trim the bad areas and then repair. But given that the areas of tight curvature run across isolines trimming the bad areas will be tedious. A different approach to modeling the hull surface, using multiple surfaces, could create surfaces which would be simpler to offset.

i hoped that with some tricks _filletSrf might be able to indicate the areas that do not offset - and give the trim curves ( the edges of the _filletSrf - surface) to get rid of the parts before _offsetSrf

but i ended up in a few crashes … created another topic:

this is the workflow i hoped for.
but it crashes rhino:

left: self-intersecting offsetSrf
middle: filletSrf R50 after surface was trimmed in 2 parts.
right - trim the surface and offset the vaild parts to get a sharp corner…

cheers - tom

FilletSrf uses offsetting itself to find the so-called spine curve, the intersection of both offset surfaces. If offsetting is problematic, filletSrf will most likely be problematic too.

Dear Menno - I knew this. - to be honest - even not being a deep computer scientists that optimises surface interpolation in 12 dimensions :smiley:
For sure offsetting the entire surface uses some iterative approach till tolerance is met, same for the next step intersecting 2 surfaces.
My alchemistic guess: directly finding interpolation points on the spine curve might be more robust.
I did some custom _filletSrfToRail script as the first implementation that follows this concept, it should be possible for _filletSrf as well, and should also allow a triTangentFillet …
but maybe i miss something…
cheers - tom