Rhino 9 Feature : Patch re-implemented (formerly FillSrf)

I see what you mean. By default, FillSrf tries to meet the document absolute tolerance for the positional constraints and the document angle tolerance for the normal constraints. Your document has quite strict tolerances that increase the refinements of FillSrf unnecessarily, ultimately not giving a result with default settings. I’m not saying that having strict tolerances is bad, but in this case it does not give the result you’re looking for.

If an angle tolerance of 0.5 or 1 degree is used, FillSrf produces a similar result as xnurbs. Even 0.2 degrees works, but 0.1 does not.

Trimming fails in this combination:


CP_2025-05-14_fillSrf_trim.3dm (909.5 KB)

Correct, trimming is only supported in cases where a single, closed trim-loop is present, made from G0/G1/G2 border constraints. Having surface edges as internal constraints with continuity is an existing feature request.
Right now, it should be possible to trim the result obtained with the constraint curves you selected in a next step after FillSrf. Looks like it is necessary to duplicate edges, trim edges to form a closed curve & join prior to using these edges as trim cutters though.

1 Like

Very Interesting tool you guys are working on :slightly_smiling_face:

Aha, SINGLE, makes sense.


CP_2025-05-14_fillSrf_trim_B.3dm (951.0 KB)
Before I knew about single, I have split the edge of the grey cylindrical shape to 4 pieces:


With this perhaps stupid input _FillSrf freaks out:

test in g1 with fillsrf, alternative
CP_2025-05-14_fillSrf_trim_test g1.3dm (1.0 MB)


2 Likes

In a 4 sided situation like this, I get different results when I select a curve or an edge.
The constraints are all G0.
The area where the mouse pointer sits is to be filled.

Using the the curve I get the expected result:

With the edge:

I expected an edge with G0 would behave the same as the curve.
?
2025-05-15_Fillsrf_C.3dm (853.5 KB)

I think this is why you get different results:

Urgs.
Didn’t notice the deviation.
Sorry.

1 Like

np, keeps us sharp :slight_smile:

Does this mean that the tool is incapable to inherit the same properties (number of control points and degree) as the input curve? VSR for Rhino 5 used to have such an option to eliminate any deviation around the border, along with a real-time deviation reading. Having an automatic deviation graph will greatly reduce those cases that lead to inaccuracy and overly-complex surfaces.

@Rhino_Bulgaria that particular case, if the tolerance is lowered, it will still generate the untrimmed result. In some cases, with a starting surface, it is possible to maintain the same structure. But in general Fillsrf patches are not going to be single span surfaces.

Heads up for the next WIP version:

  • the FillSrf command has been renamed to Patch. The buttons and menu items for Patch will now work for the new command that was formerly known as FillSrf
  • if you accidentily type FillSrf from muscle memory (I know I do :wink:) this will start the Patch command.
  • the existing Patch command is still available as PatchOld but you need to type the name into the command line as it will not autocomplete
  • the original post (scroll up) has been extensively edited to describe the current state of the command

Why did we do this? Two reasons:

  1. The command formerly known as FillSrf does almost (*) everything that Patch did, and better
  2. The name of the command got confused with FilletSrf.

* the new Patch command cannot (yet) preserve the edges of the input surface.

12 Likes

Patch finally getting some love it needs

1 Like

still some of my wishes are open … especially the bold ones.
see other topic:

i really would love to see a Curve on Surface / pull option similar to _matchSrf

the renaming from fillSrf → patch will mess up the search function of this forum and will bring up version-conflicts…

2 Likes

I need this to test the new Patch for my uses.

1 Like

Thank you for letting us know. This is an existing feature request ticket RH-87232 that will be done before v9 ships.

The old Patch is still available as PatchOld if you need it.

1 Like

Yes, we’re aware of the downsides of this renaming. If anyone scripts Patch they will also be confronted with this.

And I must review my famous statement " you’d never use patch for good modeling!" :smile:

Thanks for this, it’s really needed.

4 Likes

The old folk (my self included) in 2030:

“Kids these days go and model everything with the Patch tool. When I was a young lad, we used to make fun of the patch tool, we built all our surfaces by hand with edgesrf, changedegree and then building like metal panels with an ironworker, but with our mouse”

:zany_face:

12 Likes