Bad object when trimming with curves in RH7

Lots of Rhino users who have tried my script found at Filleting Tangent Surfaces seem to prefer to use the edges of the fillets as cutting objects when trimming (or splitting) and joining the fillets to the base surfaces that the fillets are connecting.

Its my experience that in past versions of Rhino using the fillet string as the cutting object is a safer and more reliable way to trim and join the base surfaces to the fillets.
to trim with the fillets after making them, I use the following macro:
selnone -selname “fillet*” pause join enter trim

If you have constructed and organized the geometry well all you do is make 2 clicks to tell Rhino which parts to delete and then you can join the base surfaces to the fillets and they all join into one polysurface.
Of course, trimming with the fillet string may not always work. In some cases the fillets at the end of the string may need to be extended to fully cut all the base surfaces and if the surfaces on each side of the fillet string are not joined it will take more than 2 clicks to trim them all.

Anyway, here is a file:
Rhino7_Bad_Edges.3dm (309.3 KB)

The fillet radius size is .125" and in the file there are 2 points that show about where to pick to create the fillets.

Edit: I should have stated that you must only use the radius .125 in order for the fillets to match up and connect with the existing fillets .

If you make the fillets and then join the fillet string and then use that string of fillets as the cutter to trim off the unwanted parts everything will join without problems.

In Rhino7 when I make the fillets and then trim the base surfaces using the edge curves of the fillets as cutters it seems to trim (or split) OK, but then when I join everything I get a bad object. And its not easy to fix these bad surfaces. The best thing to do is to undo back before trimming (or splitting) and do the trimming using the fillet surfaces as the cutter.

It is good that Rhino identifies the bad edges and gives the badobject warning.

Hi jim - I am not 100% sure I follow what is trimming what but I do see that using these edges as the cutters:

trimming of the cyan object fails. But using the surfaces, joined or not, as cutters, works. Duplicating the edges, joining these and then trimming also works, but only if joined.

Still poking.


You are getting there. You won’t get the bad object warning until you join all the pieces (like the polysurface to the left of the one you are working on)

First of all this has nothing to do with automating the filletsrf command. If you make the five fillets old school way with filletsrf command it will still make a bad object when you trim with edge curves.

And yes you have to join the edge curves to get the trimming to work. And that brings up another bug in Rhino7.
If you join the string of five fillets then one would expect that all the edges along the string would be contiguous curves . In all prior versions of Rhino that would be true. The location of the ends of all the edge curves would be the same as the neighboring edge curve(there would be no gaps). But in Rhino7 if you duplicate the edges there are gaps between the edges. Sure the gaps are very small because the underlying surfaces have excellent tangent continuity, but the gaps are probably what causes trimming with the edges without first joining to fail. In Rhino6 you don’t need to join the edge curves for trimming to work (because all the edges are connected without gaps).

But all that above has nothing to do with what causes the bad object when trimming with edge curves.

The main point of this topic is not to report a bug. McNeel won’t fix this bug and I know that and I know why they won’t fix this this bug.

The point of this posting is to warn other users that trimming with edge curves is a bad strategy. If at all possible trim with the fillet string because that has a lot less possibility for ending up with edges that are FUBAR. If you can’t get trimming with the fillets string to work then as a last resort trim with the edges.

After saying all that, I would like to reemphasize how wonderful it is that Rhino now catches this error and flags the result of joining join as a BadObject . That gives the Rhino user a fighting chance.

1 Like