FoundationPartsPrimitivesSelectors

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.