Intersection node performs an intersection of two shapes. The shapes can be provided as either
shape2 or as child nodes. If more than two child nodes are used the result will be the intersection of the first with all others. The resulting type depends on the shapes and may be a compound if there are multiple intersections.
For example, the following shows the intersection of an angled plane and a cube. The result is a wire polygon (shown in lime).
# Created in DeclaraCAD from declaracad.occ.api import * enamldef Assembly(Part): Box: box: transparency = 0.7 position = (-dx/2, -dy/2, -dz/2) dx = 3 dy = 3 dz = 3 Plane: plane: transparency = 0.7 color = 'blue' direction = (1, 1, 1) bounds = [(-10, -10), (10, 10)] Intersection: color = 'lime' shape1 = box shape2 = plane
Note: If there is no intersection it will raise an error as the resulting shape is void.
Topology API also provides a shortcut for computing intersections at a lower level. Use
Topology(shape=shape1).intersection(shape2). The result is an optional list of TopoDS_Shapes. If there is an error or no intersections it returns an empty list. The intersection node above could be replaced with:
Looper: iterable = box.topology.intersection(plane) or  TopoShape: shape = loop.item