Rhinocommon CreateBooleanUnion doesn’t work well.
I think it’s probably due to tolerance, but after trying several tolerances, the booleans on this model don’t work.
Rhinocommand’s BooleanUnion worked with this model
Does anyone have any idea what caused this?
One of your Breps is non-manifold, So you’d better use another overload of Brep.CreateBooleanUnion that accept an option for non-manifold Breps:
import Rhino.Geometry as rg import rhinoscriptsyntax as rs from scriptcontext import doc objs = rs.GetObjects("select objects") breps = [rs.coercebrep(obj) for obj in objs] def BooleanUnion(uBreps): tolerance = sc.doc.ModelAbsoluteTolerance newbreps = rg.Brep.CreateBooleanUnion(uBreps, tolerance, False) if newbreps is None or len(newbreps) != 1: print('ERROR') return sc.errorhandler() return newbreps brep = BooleanUnion(breps) doc.Objects.AddBrep(brep)
BooleanUnion.py (505 Bytes)
Hi, @Mahdiyar Thank you for the reply.
Thank you so much!!