Selectors
EdgeFinder and FaceFinder pick subsets of edges or faces on a solid by
chaining rules. Pass them to Fillet, Chamfer, Shell, or any operation
that accepts a finder.
EdgeFinder() # all edges
.is_circle() # circular edges only
.of_type("LINE" | "CIRCLE" | "BSPLINE") # filter by curve type
.parallel_to_axis("X" | "Y" | "Z") # axis-aligned edges
.length_in_range(min, max) # bounded length
.radius_in_range(min, max) # bounded radius (arcs)
.on_face(face_finder) # edges of a chosen face
.sort_by(by="LENGTH" | "RADIUS", # rank + take FIRST/LAST/N
take="FIRST" | "LAST" | "N", n=1)Rules can be combined — chained calls compose, and rule terms can be
nested via EitherRule(rules=[...]) or AndRule(rules=[...]) for
disjunctions / conjunctions.
The kernel applies native rules through opencascadejs’s EdgeFinder (curve
type, axis direction); compound rules and length/radius ranges are applied
as a post-filter on the natively-matched candidate set.