Hello
We have migrated from Rhino 7.26 to Rhino 8.8.
We noticed that the Brep.MergeCoplanarFaces() method almost always returns invalid Breps (Brep.IsValid= false)
If the breps are invalid, we abort the processing, although we could not determine anything special with these breps.
The same works fine in Rhino7.
This is the code sample:
#! python 3
import Rhino
import scriptcontext
from Rhino import *
from Rhino.DocObjects import *
from Rhino.Commands import *
from scriptcontext import doc
def RunCommand():
object_enumerator_settings = ObjectEnumeratorSettings()
object_enumerator_settings.IncludeLights = False
object_enumerator_settings.IncludeGrips = False
object_enumerator_settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep;
rhino_objects = doc.Objects.GetObjectList(object_enumerator_settings)
currentObjectCount = 0
for rhino_object in rhino_objects:
currentObjectCount += 1
brep = rhino_object.Geometry
valid_before_merge = brep.IsValid
faces_merged = brep.MergeCoplanarFaces(0.01, doc.ModelAngleToleranceRadians)
valid_after_merge = brep.IsValid
print("{0} {1} Brep valid_before_merge={2}, valid_after_merge={3}, faces_merged={4}".format(str(rhino_object.Id), str(currentObjectCount), str(valid_before_merge), str(valid_after_merge), str(faces_merged)))
return Result.Success
if __name__ == "__main__":
RunCommand()
The data:
rhino8_merge_coplanar_faces.zip (5.3 MB)
And the script output:
d2bb114d-95d0-4865-a0ae-b4f8a409bfb7 1 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=True
a37e94e1-2b44-432e-be6b-52c976eaf27f 2 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=True
8a2be563-b127-413b-9e58-9c2236952cd9 3 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=True
f355e509-1969-4dda-8e14-cb0c44984e87 4 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=True
c36d40ad-76b9-4110-bc72-8e2121a29f49 5 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=False
ec8b6a72-cd61-4292-aae3-8f7455bb73e7 6 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=True
9ea0ef9a-0964-4a34-a745-15c1a9851a9a 7 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=False
96763ee3-858d-4311-b078-064d5bfd22e4 8 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=True
8df5ecd4-9c83-44c5-ba8d-40c78ccd72da 9 Brep valid_before_merge=True, valid_after_merge=False, faces_merged=True
Has anyone experienced the same?
Regards,
Thom