How to remove a split of an orginal unsplitted surface?

Hi,

here a simplified example - all surfaces was a single surface. Later during a project I wished that there is no split between the blue and red surface. I ask me, is there a simple way to remove the split between both surfaces? If not, maybe it’s something for the wish list - removing splits from an original single surface.

-Micha

Hi Micha -

If you haven’t used ShrinkTrimmedSrf on those surfaces, untrimming either one of them will return the original surface. But you’ll have to cut out the door opening again so you’d want to use the KeepTrimObjects option.
-wim

This is the way I was gone in the past too. So, maybe we could it add as a wish. I imagine a workflow like:

  • the user start a command like _unsplit
  • the user select a split edge and Rhino automatic find all duplicated “original” surface parts and highlight all potential split edges which could be removed
  • the user select all split edges he want to remove
  • enter and done :slight_smile:

We have _untrim and _unsplit could be an equivalent command.

Hi Micha - I am not sure I follow - are you referring to past split or trim operations, or just edges as they are now? Untrim handles the latter- you can pick any edges to untrim, they are not highlighted is the only difference; there is nothing, currently, recording the operations on an object, and nothing that I know of planned in that regard.

-Pascal

@pascal At my example above I would like to remove the trims between the blue and the red surface so that they are one surface, but all other trims are kept.

@Micha

If possible at this modelling stage, would the following approach be acceptable as a solution ?

  • MergeEdge of both surfaces when joined ( Inside/outside ).
  • Delete Both surfaces
  • Create a new single Srf with what ever tool would be appropriate depending on the wanted Gcon.

Regards
Rodolfo.

xMergeFace / xMergeAllFaces | Food4Rhino can merge adjacent faces with identical underlying surfaces. The edges of the new faces will remain split.

1 Like

Yes, I see - MergeFaces on arbitrary shapes with the exact same underlying surface - famous last words, but somehow I do not think this can be all that hard to do.

-Pascal

@spb I tried xMergeFace … but it looks like it doesn’t accept NURBS surfaces.

I attach my simple test file, maybe someone like to do some tests.


SplittedSurface.3dm (157.3 KB)

xMergeFace works on the test model when the 2 faces are first joined into a polysurface.

1 Like

@spb

I think I misunderstood the initial @Micha 's question, but I am curious about xMergeFace.

In the provided file, the degree of the original untrimmed Srf was U3 V1.

How is managed the GO at the split when removed with xMergeFace, does the resulting surface correspond to the structure of the original untrimmed surface or si there something averaged at that location ?

Thank you in advance for any answer.
Rodolfo.

Great, I got it. :slight_smile:

Thank you for all the hints,
Micha

What do you mean by “GO”? G0? The underlying surface’s knot multiplicities are 3,1,3 x 1,1, so it has no kinks.

The faces are mergeable with the script because their underlying surfaces are identical. If you join the faces then _ShrinkTrimmedSrf the polysurface, the script can not merge the faces.

@spb

Thank you for your answer.

I was referring to the side edges of the surfaces at the split location.

Regards
Rodolfo Santos.

Shared edges within the set of surfaces with a matching underlying surface are ignored when the merged surface is created. To do this manually:

  1. _Join only the surfaces that share the same underlying surface
  2. _DupBorder to obtain curves of only the naked edges of the polysurface
  3. _Explode the polysurface
  4. _UntrimAll one of the surfaces
  5. _Trim the untrimmed surface with the curves

@spb

Yes, that’s the strategy I had in mind as well but as you described, it is a 5 steps procedure.

To avoid any deconstruction, and only when certain conditions are met, a native RemoveSplit or Unsplit feature would be useful.

This makes me think that @Micha 's question is relevant…

Regards,
Rodolfo Santos

1 Like

i want this