Merge trimmed surface

any solution to merge trimmed surface ?
thank you

Can you elaborate on what exactly you are looking for or provide a screenshot on what you are looking to do?

check this file
two trimed surface and i just want it to merge it in one


Join then MergeAllFaces

MergeAllFaces only works on co-planar surfaces.

Hi Traveldoors,

as David mentioned, _MergeAllFaces is not the right command to merge non planar faces, instead _MergeSrf can be used, just untrim and make both surfaces more identical:

  1. Use _ShrinkTrimmedSurfaceToEdge so the untrimmed surfaces will be roughly the same height
  2. Detach the Trims (_Untrim _KeepTrimObjects=_Yes) of both surfaces
  3. _ExtendSrf the upper edge of the surface with the bow, so it matches the height of the other surface
  4. Use _MergeSrf _Smooth=_No _Roundness=0 if it does not do it, increase the tolerance slightly
  5. After merging, just _Trim the merged surface with the detached curves of step 2

coquepart1_c.3dm (267.4 KB)



Good catch guys - I was replying from my phone and didnt look at the file, sorry about that


Thank you
I have succes to do it with my first part with increasing tolerance to 1

but still have pb with another part, (hard to explain)

can you have a look please (what with the 2 last part), any idee

coque-all3.3dm (1.7 MB)

Hi Traveldoors - it is a bad idea to set and keep file tolerance to 1. .01 at the largest, .000001 at the smallest is a good range for Rhino. The tolerance Clement was referring to is the one in MergeSrf’s command line options, not the document tolerance.

That said, I see there is a problem in your file, I’ll see if I can figure it out. - oh, these are trimmed surfaces- that will not work


Hi Traveldoors, the method explained above does not work in all cases as @pascal mentioned. I´m not shure how many surfaces are involved around your example but maybe you can build one clean surface using _Sweep2 or _NetworkSrf. I´ve attached one example, moved 2000mm in negative y direction. The red curves where generated using _DupBorder then slightly exended both curves in the lower corner at the end of the x-axis, the green interior sections where built using _Contour. Then i´ve used _NetworkSrf with all curves, and a command tolerance of 0.1mm using “Position”.

One tip which may help building cleaner surfaces is to try to keep the U and V isocurve directions to each other as close to a right angle (90°degree) as possible.

coque-all3_c.3dm (1.5 MB)


Pascal thank for your remark

Clement, my surface have to stay the same
with your solution the surface goes away from my curavature analisis tolerance

if you unhid the item on the file youu will see the full hull


Hi Traveldoors,

of course rebuilding or recreating surfaces involves deviation from the original. Your trimmed surfaces are 13538 mm long total, if you rebuild it into a single surface using methods outlined above, with more section curves you might stay within 1mm deviation. In relation to the original input, it might almost be negligible, especially when loooking at the current constuction of the stern.

Maybe rebuilding each of the trimmed surfaces into single untrimmed ones within tolerance will work, so _MergeSrf can do the rest.


How is this solution?
coquepart1_DC2.3dm (143.6 KB)


  1. DupBorder both original trimmed surfaces. These curves will be used for trimming the final, merged surface.

  2. UnTrim the orginal trimmed surfaces

  3. Split the untrimmed surfaces using isocurves as the splitting objects. I used Split with Shrink=No. Discard a) Split each untrimmed surface at the isocurve corresponding to adjacent edges of the trimmed surfaces. Use a snap to the border curves from step 1 to accurately locate these isocurves. Discard the unneeded parts of each surface.
    b) Split the surfaces with isocurves by snapping to the corresponding corner of the other surface. Discard the unneeded parts of each surface.

  4. ShrinkTrimmedSrfToEdge the surfaces.

Results of operations above are in Surfaces 2 layer.

  1. MergeSrf the surfaces. In theory because the two surfaces are sections of conics they will not be G2 (curvature) continuous. I used Smooth=No and Roundness=0 options. Result is in Merged Surface layer.

  2. Trim the surface using the boundary curves from Step 1.

  3. If desired ShrinkTrimmedSrfToEdge the trimmed surfaces. Result is in Trimmed Surface.



BTW … (wish)
It would be fine if we could directly merge trimmed surfaces on their untrimmed edges without having to untrim, merge and then retrim …