About badsrf

无效曲面.3dm (386.9 KB)

Before asking this question, I had already read some related posts, but I still couldn’t understand it. Sorry, could you explain the reason for this issue from the fundamental perspective? This is a simple model, and under normal operation, what could cause confusion in the underlying definitions?

that is difficult to say, i must admit i have no idea what a bad object actually constitutes, but the model you are showing is under normal circumstances straight forward geometry nothing that would cause a bad object. exploding your objects it seems you have done some really strange trimming where the surface edges are within the surface.

to understand more about how you got to this point it would be ideal to have all the starting curves you used or at least a general understanding of how you produced this

Thank you for your patient guidance. I noticed a detail: when using UntrimBorder on some bad objects, areas that originally appeared as holes partially restore. Logically, UntrimBorder shouldn’t affect the edges of the holes. My understanding is that bad objects might essentially be in a state where the inside and outside are indistinguishable. This seems to explain the observation: “it seems you have done some really strange trimming where the surface edges are within the surface.” Of course, these are just my personal speculations.

My operations were very basic and straightforward, and the curvers were generated simply by offsetting.

I searched GPT for a long time and vaguely sensed the root of the problem, but I still couldn’t clearly explain the true cause of the issue.

trimming or surfaces folding into each other i can not explain it for sure, the only thing that would help figuring out what happened is having your exact input curves or anything that explains what you did a bit closer, currently i still have no idea how you got to this, if it was made in Rhino/Grasshopper scripted or built with curves and surfaces filleted and joined. for now this does not tell us a whole lot i am afraid, not anything near to give me personally an understanding at least.

Yes that is a good explanation of your bad object. But don’t assume all bad objects are the same. There are many types of bad objects.

Rhino needs to know what parts of a surface are inside the trim boundaries and what parts are outside. To do that Rhino must keep track of the direction of the boundary curves. If the border curves go one way then its a outer boundary (border) and if they go the other way its an inner boundary (hole). The error you are getting indicates that the a trim (boundary) curve is defined as going the wrong way.

Probably, the best way to fix the bad surfaces is to untrim using the option KeepTrimObjects=Yes and then retrim the surface.

thank you.Yes, I repaired it by using Untrim and then trimming again. But I can’t understand why the direction is getting messed up. Is it due to self-intersection or sharp corners? I just can’t figure it out.

I doubt its anything you did. It is probably caused by a bug in the code, but in order to make a bug report that will be taken seriously you need to submit a repeatable example of what you did that created the bad object.

What you can do is go to Options >General and in the box that says “Run these commands every time Rhino starts” put this macro:

_-CheckNewObjects check=yes enter

Then if you can repeat the steps you took to create the object, when the bad object is created you will get the checkNewObject dialog box that says “invalid geometry was just added to the model”. You can then Undo the last thing you did and save the model and post it to the forum as a bug report with an explanation of what to do next that creates the bad object.

If you don’t submit a repeatable example of Rhino making the bad object its unlikely anyone at McNeel will bother trying to fix the bug.