solid.operate(kind, { tools, instances? }) changes the target solid once:
tools is one to a hundred solids. The tools stay separate, live solids. Moving or disposing a tool later does not change the target. A tool is drawn only if you add it to the scene.
Cut openings into a wall
An arched opening
Make an arch as one closed profile, a straight sill, two jambs and a half-circle head, and extrude it through the wall. This works through a straight or a curved wall:The report
solid.getReport() returns the report of the last boolean, or null:
report.operation:'union','intersection'or'subtraction'.report.face_mappings: for each face of the inputs, the faces of the result that came from it.report.contactsandreport.coincident: where the inputs touch.handlers: the kernel methods that made the result.revision: the shape revision of the result.
rebuild or a mirror clears the report.
When a boolean is refused
A refused call throws anOGError and leaves the target as it was. details says which methods were tried:
CoverageGap: the kernel has no method for this pair yet.details.familiesnames the pair, such as['cone or frustum', 'cuboid'].UnresolvedIntersection: the kernel could not trace the intersection.toolIndexandogIdsname the tool that failed.
Instances
If the target’s shape is shared, pass{ instances: 'all' } to cut every instance, or call makeUnique() first. Otherwise the call throws SharedShape. A tool may not be the target or have the target’s shape.
