表格 / 格線儲存格定位
anchor_locator 處理成對的空間關係(目標在錨點*附近* / 下方),但無法定位二維格線——表格中「第 3 列、
第 2 欄的儲存格」。給定各儲存格的邊界框(來自影像或 OCR 列舉,例如 locate_all_image / find_text_matches),
本功能將其分群為列與欄,並回傳所求儲存格的中心。
分群與查詢皆為純函式(框進、格線 / 儲存格出),完全可單元測試;框的列舉仍由呼叫端負責,因此此處不需真實螢幕。
不匯入 PySide6。
無頭 API
from je_auto_control import cluster_grid, locate_cell
boxes = [(10, 100, 20, 10), (110, 100, 20, 10), (210, 100, 20, 10),
(10, 200, 20, 10), (110, 200, 20, 10), (210, 200, 20, 10)]
locate_cell(boxes, row=1, col=2)
# {'found': True, 'center': [220, 205], 'box': [210, 200, 20, 10],
# 'row': 1, 'col': 2, 'rows': 2, 'cols': 3}
cluster_grid(boxes) # 列由上到下、儲存格由左到右
cluster_grid 依中心 y 排序框,當間距超過 row_tolerance 時開始新的一列,並將每列的儲存格依中心 x 排序。
locate_cell 回傳 0 起算 (row, col) 儲存格的中心(可直接點擊),索引超出範圍時回傳
{found: False, reason}。
執行器命令
AC_grid_cell 接受 boxes``(JSON ``[[x, y, w, h], ...] 清單,例如來自前一個 AC_locate_all_image 步驟)
以及 row / col / row_tolerance,並回傳儲存格 dict。它以 MCP 工具 ac_grid_cell 以及 Script Builder
中 Mouse 分類下的命令提供。