find_circular_holes
Detect circular holes in flat facets of mesh models, filtering out false positives from rectangular quads. Use for identifying bolt holes or similar circular openings.
Instructions
Detect circular through-holes / blind-hole rims sitting inside a flat facet (e.g. a bolt hole in a plate). Each result is one inner boundary loop of a facet that fits a circle well.
min_loop_points guards against a false positive that is easy to fall into: any rectangle's 4 corners lie exactly on a circle (a rectangle is a cyclic quadrilateral), so a plain 4-sided quad facet can look like a perfect circle fit. Real circular boundaries coming from a tessellated mesh have one segment per tessellation facet (a few dozen, typically), so requiring at least min_loop_points boundary vertices filters out straight-edged quads/triangles while keeping genuine circles.
min_area skips facets too small to contain a min_radius-sized hole before tracing their boundary (the expensive step) - default is 4pimin_radius**2, i.e. a facet at least ~4x the hole's own area. Without this, a mesh with tens of thousands of small tessellation facets (common on any curved/filleted surface) makes this call slow enough to time out an MCP client, since every facet's boundary gets traced regardless of whether it could possibly contain a hole.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| min_area | No | ||
| file_path | Yes | ||
| min_radius | No | ||
| min_loop_points | No | ||
| max_circularity_error | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |