Sikuli - 幅や高さが等間隔なものに入力する

Sikuliで幅と高さが等間隔の場合のデータ入力ではsetRasterメソッドを使うと便利です。

まずはfindメソッドで入力エリアのRegionを指定します。
そのRegionに対してsetRasterメソッドを使うと等間隔に分割することができます。

分割したエリアにはgetCell関数に行番号と列番号を指定しそれぞれのセルにアクセスすることができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
# coding:utf-8
data = [[1, 2, 3, 4],
[10, 20, 30, 40]]

cells =find("1579840049307.png")
#4行3列に分割
cells.setRaster(3, 4)

for y, row in enumerate(data):
for x, col in enumerate(row):
# getCellメソッドで各セルに値を貼り付ける
paste(cells.getCell(y + 1, x), str(col))
wait(0.3)

5行目に指定した画像は下記です。

1579840049307.png

実行してみるとカーソルが1セルずつ選択を行い、データが入力されていきます。