# Rhino BETA Feature: FilletSrf improvements

**URL:** <https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956>\
**Category:** Serengeti (Rhino BETA)\
**Tags:** filletsrf, chamfersrf\
**Created:** [June 16, 2025, 9:13am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956 "2025-06-16T09:13:16Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![menno](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/menno/32/557284_2.png) [@menno](https://discourse.mcneel.com/u/menno)\
**Post date:** [June 16, 2025, 9:13am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/1 "2025-06-16T09:13:16Z")

</div>

[Rhino BETA](https://www.rhino3d.com/download/rhino/wip/) has many improvements to the fillet and chamfer commands: `FilletSrf`, `ChamferSrf`, `FilletSrfCrv,` and `FilletSrfToRail`

1. Continue across faces option for `FilletSrf` and `ChamferSrf`.
2. Simplified (revolved) surface for `FilletSrf` and `ChamferSrf` where possible.
3. Interactive Dialog for `ChamferSrf`.
4. Better and cleaner results in `FilletSrfCrv`.
5. More robust `FilletSrfToRail`.
6. Join option for `FilletSrf`, `FilletSrfCrv`, `FilletSrfToRail`, and `ChamferSrf`.

## FilletSrf and ChamferSrf - continue across tangent faces

In Rhino BETA, these commands have a new option to continue the fillets if adjacent faces are tangent. This speeds up making adjacent fillets tremendously, especially in cases where the faces are not exactly tangent. In that case, the fillet surfaces will be adjusted where their edges meet to close any small gaps between surfaces.

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/3/1/9/3192cc213585306307aa17283c70376b8611198f.jpeg)  
See [this tips and tricks page](https://www.rhino3d.com/9/tips-tricks/#filletsrf) to learn more about it.

Continue across faces now also produces a clean spherical corner patch when a run of fillets meets an existing fillet of the same radius, instead of stopping there. See the separate [FilletSrf with spherical corners](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-with-spherical-corners/220797) post for details.

## FilletSrf and ChamferSrf - simplify to revolve surfaces

In addition to `FilletEdge` and `BlendEdge` that already do this, now also `FilletSrf`, `ChamferSrf` will make revolved surfaces where that makes sense. Revolved surfaces are usually simpler in their control point structure and communicate a clear design intent.

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/a/3/f/a3f22ab589a7bdd0fcb59100345ebcc17baa9fc2.png)

## FilletSrf, FilletSrfCrv, FilletSrfToRail and ChamferSrf - Join option

These commands now have a Join option, so the resulting fillet chain can be joined directly to the surfaces it filleted. This makes the joined result easier to use as input for a next `FilletSrf` operation. Join is only available when Trim is on.

## FilletSrf and related commands - inherit object properties

`FilletSrf`, `FilletSrfCrv`, `FilletSrfToRail`, and `ChamferSrf` now inherit the object properties (such as material) of the first surface you pick, instead of the result losing them.

## ChamferSrf - interactive UI

In Rhino BETA, `ChamferSrf` has been given the same make-over as `FilletSrf` got in Rhino 8: an interactive user interface with sliders to control the distances of the chamfer from the edge surfaces.

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/d/f/7/df71bf49329be5151aa153a9e690470b47b4c62b.png)

## FilletSrfCrv - curve segments, multiple fillets and improved robustness

The `FilletSrfCrv` command allows you to create a fillet (constant radius) from a surface to a curve.  
_Fillets on curve segments_  
If a curve can be exploded, `FilletSrfCrv` will now make a fillet for each segment. This improves the quality of the result:  
`FilletSrfCrv` in Rhino 8 - results are not good:

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/4/1/9/41969d01240a5b6626054cf9566434a64e29982f.jpeg)  
`FilletSrfCrv` in Rhino BETA:  
 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/7/a/9/7a97fb10f0974a26ea2a084a9144d4b87c87cfcb.png)  
_Multiple fillets_  
If multiple fillets can be made between a surface and a curve, all fillets will be created. Rhino 8 returns only the fillet that corresponds to the clicked positions. This can greatly speed up a repetitive process, and gives expected results when using a closed curve with closed surface where the surface and curve seams do not line up.

## FilletSrfToRail - improved robustness

The `FilletSrfToRail` command allows you to create a fillet from a surface to a curve on a surface, maintaining tangency to both surfaces.  
The command has been improved with a new method for rail finding that is more robust. Many cases that do not produce a result in Rhino 8 will produce the expected result in Rhino BETA.

## Other improvements

- A Help button has been added to the `FilletSrf` and `ChamferSrf` dialogs.
- The min/max range setting in these dialogs is now sticky, instead of resetting to 10 every time the dialog is opened.
- Precision for the radius/distance slider can now be set higher than 4 decimal places.

## FilletSrf and ChamferSrf - C++ and .NET SDK updated

The C++ and .NET SDK has been updated to make it possible for 3rd party developers to get access to a number of improvements listed above.  
Stay tuned for more as we are developing for Rhino 9!  
[Download the Rhino BETA…](https://www.rhino3d.com/download/rhino/wip/)

---

<div class="post-metadata">

**Author:** ![scottd](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/scottd/32/494002_2.png) [@scottd](https://discourse.mcneel.com/u/scottd)\
**Post date:** [June 16, 2025, 8:53pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/2 "2025-06-16T20:53:13Z")

</div>



---

<div class="post-metadata">

**Author:** ![skysurfer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/skysurfer/32/665707_2.png) [@skysurfer](https://discourse.mcneel.com/u/skysurfer)\
**Post date:** [June 16, 2025, 8:59pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/3 "2025-06-16T20:59:18Z")

</div>

> [@menno](#):
>
> FilletSrf and ChamferSrf - simplify to revolve surfaces

Small changes made huge improvement.  
Well done, keep this way.  
Thanks

---

<div class="post-metadata">

**Author:** ![CADARTZ](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/cadartz/32/648188_2.png) [@CADARTZ](https://discourse.mcneel.com/u/CADARTZ)\
**Post date:** [June 16, 2025, 9:12pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/4 "2025-06-16T21:12:10Z")

</div>

Nice

---

<div class="post-metadata">

**Author:** ![Tom\_P](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/tom_p/32/766520_2.png) [@Tom\_P](https://discourse.mcneel.com/u/Tom_P)\
**Post date:** [June 16, 2025, 9:47pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/5 "2025-06-16T21:47:47Z")

</div>

nice job.

happy to see

> [@menno](#):
>
> simplify to revolve surfaces

regarding setbacks i already posted some issues here a few days ago:

> [@(WIP-V9-Feature) SetBackFillets](https://discourse.mcneel.com/t/wip-v9-feature-setbackfillets/205741/1):
>
> any chance we get an option to edit the size / Amount of the Setback ?

---

<div class="post-metadata">

**Author:** ![AlW](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/alw/32/53821_2.png) [@AlW](https://discourse.mcneel.com/u/AlW)\
**Post date:** [June 17, 2025, 12:47am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/6 "2025-06-17T00:47:40Z")

</div>

I’m glad to see you (McNeel) are stepping up to these long wanted (and needed) improvements!

Now how about allowing definition of arbitrary section curves (90 deg; tangency at both ends for Fillets; any curve for chamfer)? As usual, it seems like a small step to the users. How about to the developers?

---

<div class="post-metadata">

**Author:** ![Rhino\_Bulgaria](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rhino_bulgaria/32/505284_2.png) [@Rhino\_Bulgaria](https://discourse.mcneel.com/u/Rhino_Bulgaria)\
**Post date:** [June 17, 2025, 3:56pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/7 "2025-06-17T15:56:34Z")

</div>

These enhancements are welcome. 🙂

What about these?

 ![Chamfer surface Rhino 9](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/1/a/1/1a16608361ef08b2a9d00510db75afd1f199d1f6.png)

---

<div class="post-metadata">

**Author:** ![menno](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/menno/32/557284_2.png) [@menno](https://discourse.mcneel.com/u/menno)\
**Post date:** [June 17, 2025, 7:26pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/8 "2025-06-17T19:26:26Z")

</div>

FilletSrf does this:

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/2/0/9/209755d08f50a0ec5b478cf1637f070b497dd795.jpeg)

ChamferSrf should do the same when using different distances, but currently is plagued by a bug [RH-87998](https://mcneel.myjetbrains.com/youtrack/issue/RH-87998/) when some different distances are used, I’ll look at that soon. Having said that, it does work “sometimes”:

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/3/7/8/3782dbe0a56b93b50a25d1a9045febd851f371a4.jpeg)

---

<div class="post-metadata">

**Author:** ![Rhino\_Bulgaria](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rhino_bulgaria/32/505284_2.png) [@Rhino\_Bulgaria](https://discourse.mcneel.com/u/Rhino_Bulgaria)\
**Post date:** [June 18, 2025, 12:28am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/9 "2025-06-18T00:28:05Z")

</div>

Any possibility to implement numbers 1 and 2 representing the two distances in the pop-up menu?

 ![Chamfer surface Rhino 9](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/1/a/1/1a16608361ef08b2a9d00510db75afd1f199d1f6.png)

---

<div class="post-metadata">

**Author:** ![Rhino\_Bulgaria](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rhino_bulgaria/32/505284_2.png) [@Rhino\_Bulgaria](https://discourse.mcneel.com/u/Rhino_Bulgaria)\
**Post date:** [June 18, 2025, 3:39am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/10 "2025-06-18T03:39:13Z")

</div>

I suggest to use the following ring model to test the upcoming Rhino 9 fillet improvements, because it’s a closer representation of a real-case scenario than the basic boxes typically used by the “McNeel” team. It has some imperfections and lack of proper G1 in places, but this is also a good reason to make the fillets more robust, so that they could overcome this kind of challenges.

[Пръстен 1.rar](https://discourse.mcneel.com/uploads/short-url/xwD2BdPy8wIteRJXiNw4RMS9Ruf.rar) (1.6 MB)

 ![Пръстен 12](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/8/7/0/8700e12f7a3442f0d195f6769f2bffc004220080.jpeg)

* * *

Also, your team may use the “Lights lines 5 Plus” display mode to better examine the continuity of the resulting fillets:

\*ini file:  
[Light lines 5 Plus.ini](https://discourse.mcneel.com/uploads/short-url/beTiOW7pjdPHOCQNTmEQzogl305.ini) (14.0 KB)  
Environment map:  
[Light lines 5 Plus.rar](https://discourse.mcneel.com/uploads/short-url/5aZWc0MirlYCQAEWBmm8YDIjg6c.rar) (789 Bytes)

> [@Share your custom viewport modes here](https://discourse.mcneel.com/t/share-your-custom-viewport-modes-here/151321/292):
>
> I created 3 alternatives to the “Light lines 5” display mode. Light lines 5X (added X-ray effect to make the control polygon fully visible during control point modeling): [Light lines 5X.ini](https://discourse.mcneel.com/uploads/short-url/3k8B7qnK0jVfDiOWqHxEd4OMygt.ini) (14.0 KB) Uses the same environment map like the regular Light lines 5 posted above. Light lines 5 Plus (same as Light lines 5, except that it uses a more dense environment map better suited for examining gently curved surfaces): [Light lines 5 Plus.ini](https://discourse.mcneel.com/uploads/short-url/beTiOW7pjdPHOCQNTmEQzogl305.ini) (14.0 KB) Light lines 5X Plus (combines both displ…

---

<div class="post-metadata">

**Author:** ![menno](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/menno/32/557284_2.png) [@menno](https://discourse.mcneel.com/u/menno)\
**Post date:** [June 18, 2025, 7:16am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/13 "2025-06-18T07:16:03Z")

</div>

This is at R=0.5 with FilletSrf using the latest (not yet available in the latest WIP) At R=1.0 the fillets don’t all join up, but a user-executed Join does. I’ll look into this, should “just work” from FilletSrf.

[Bobi\_Ring-FilletSrf\_R0.5.3dm](https://discourse.mcneel.com/uploads/short-url/l3tyQbYDD9SIWqMvyBBi0XRTaxH.3dm) (1.2 MB)

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/1/9/a/19a2f176866ca487f35ae0248d22c56f8138bcbd.jpeg)

---

<div class="post-metadata">

**Author:** ![s.alt](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/s.alt/32/477547_2.png) [@s.alt](https://discourse.mcneel.com/u/s.alt)\
**Post date:** [June 18, 2025, 8:24am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/14 "2025-06-18T08:24:58Z")

</div>

Looks very promising! When the tool is fianlly done and I can export parts like this via stp into closed solids into NX this will make my life much easier!

---

<div class="post-metadata">

**Author:** ![jim](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/jim/32/570126_2.png) [@jim](https://discourse.mcneel.com/u/jim)\
**Post date:** [June 18, 2025, 2:08pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/15 "2025-06-18T14:08:25Z")

</div>

> [@Rhino\_Bulgaria](#):
>
> I suggest to use the following ring model to test the upcoming Rhino 9 fillet improvements, because it’s a closer representation of a real-case scenario than the basic boxes typically used by the “McNeel” team

To make your model even farther from a box and more of a challenge, I changed the top surface from flat to concave.

[fillet\_challenge.3dm](https://discourse.mcneel.com/uploads/short-url/jXObBMmf2TffLDy6IhXW5spGhrV.3dm) (1001.9 KB)

The image below shows the result of applying a 1mm fillet all the way around.

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/5/8/f/58f43fa8799f8ed1f0f1e0cdb890bb0231a73226.jpeg)

---

<div class="post-metadata">

**Author:** ![Rhino\_Bulgaria](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rhino_bulgaria/32/505284_2.png) [@Rhino\_Bulgaria](https://discourse.mcneel.com/u/Rhino_Bulgaria)\
**Post date:** [June 18, 2025, 3:50pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/16 "2025-06-18T15:50:38Z")

</div>

The top fillet immediately broke the design intent, thus the resulting model lost the top surface now. Strange.

---

<div class="post-metadata">

**Author:** ![Rhino\_Bulgaria](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rhino_bulgaria/32/505284_2.png) [@Rhino\_Bulgaria](https://discourse.mcneel.com/u/Rhino_Bulgaria)\
**Post date:** [June 18, 2025, 3:51pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/17 "2025-06-18T15:51:29Z")

</div>

It would be more interesting to test the various fillet commands on the top edges where the surfaces meet together in an unusual way.

Here is how your file looks after converting it to Rhino 7 file via the Rh3dmConverter.exe program. It has a completely broken geometry. I can’t open Rhino 9 WIP files as I only have Rhino 7. This is the first Rhino 9 file which fails to convert properly to Rhino 7 file. I have been using that file converter a lot and it always succeeded with Rhino 9 files…  
[Bobi\_Ring-FilletSrf\_R0.5.3dm](https://discourse.mcneel.com/uploads/short-url/oZ7jQ0prBHz00njTHrI3BS84IlE.3dm) (1.2 MB)

---

<div class="post-metadata">

**Author:** ![jim](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/jim/32/570126_2.png) [@jim](https://discourse.mcneel.com/u/jim)\
**Post date:** [June 18, 2025, 4:36pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/18 "2025-06-18T16:36:01Z")

</div>

> [@Rhino\_Bulgaria](#):
>
> The top fillet immediately broke the design intent, thus the resulting model lost the top surface

The top surface is still there. The fillets just cut away the middle of it.  
It all depends on the size of the fillet.

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/e/f/c/efc35441822c2b92e1f8a1ac9fb27a2b94fbcbdd.jpeg)

If you make the fillet big enough so that the top surface gets cut in two you have to make both the fillet loops first then do the trimming manually after making both loops, so that the top surface remains for both loops.

---

<div class="post-metadata">

**Author:** ![Rhino\_Bulgaria](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rhino_bulgaria/32/505284_2.png) [@Rhino\_Bulgaria](https://discourse.mcneel.com/u/Rhino_Bulgaria)\
**Post date:** [June 18, 2025, 5:23pm UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/19 "2025-06-18T17:23:35Z")

</div>

I’m pretty sure that other CAD programs such like Solidworks (and maybe Plasticity) are capable of adding these fillets while keeping the top surface as a whole piece. Solidworks has extra options such like “Keep edge”, “Keep surface” etc. I don’t remember all of them, but they are plenty.

Something like this, except that I did that manually in Rhino 7.  
[Ring fillet challenge 1.3dm](https://discourse.mcneel.com/uploads/short-url/oPLkuh8qZVJ3erJrLOFd2U1AvRz.3dm) (707.8 KB)

One of the inner control points of your concave top surface was still at the original top position, so I was forced to use curve intersections (the blue curves) to split some of the fillets there.

 ![ViewCapture20250618_210621](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/2/8/a/28a29c5712774c707dc428edc357ac7912d18750.jpeg)

---

<div class="post-metadata">

**Author:** ![ftzuk](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/ftzuk/32/689170_2.png) [@ftzuk](https://discourse.mcneel.com/u/ftzuk)\
**Post date:** [June 24, 2025, 7:36am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/20 "2025-06-24T07:36:43Z")

</div>

> [@Rhino\_Bulgaria](#):
>
> I’m pretty sure that other CAD programs such like Solidworks (and maybe Plasticity) are capable of adding these fillets while keeping the top surface as a whole piece.

These aren’t an issue in a solid modeller, though with quick fillets like this there’s less control over surface quality. Even a 2mm radius ‘works’ but leaves a sharp edge. Creo:

  
[ring\_proe.stp](https://discourse.mcneel.com/uploads/short-url/fwDcAtgqBUJCv2AU9i4xzLA829W.stp) (473.0 KB)

---

<div class="post-metadata">

**Author:** ![MattE](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/matte/32/664526_2.png) [@MattE](https://discourse.mcneel.com/u/MattE)\
**Post date:** [June 24, 2025, 8:26am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/21 "2025-06-24T08:26:12Z")

</div>

> [@menno](#):
>
> FilletSrf and ChamferSrf - simplify to revolve surfaces

😍

---

<div class="post-metadata">

**Author:** ![MattE](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/matte/32/664526_2.png) [@MattE](https://discourse.mcneel.com/u/MattE)\
**Post date:** [June 24, 2025, 8:54am UTC](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956/22 "2025-06-24T08:54:42Z")

</div>

That crease forming with R=2.0 is curious. Is it forming a fillet to the original parent surface, disregarding the lower fillet, then trimming the two fillets against each other?

As for the top surface being divided and consumed by the fillets as they increase in radius, while it may not be the design intent, I can see the logic in it and it does make some sense. Doing anything else would mean the software having to second-guess what the designer intends. That usually ends in tears.

[Next page](https://discourse.mcneel.com/t/rhino-beta-feature-filletsrf-improvements/205956.md?page=2)
