# 図面(drawing.png)から読んだ値で、店の形(famires-layout/0.3 の layout 部分)を起こす。単位 m # 縮尺:横 24000mm / 1418px = 16.925 mm/px、縦 19200mm / 1134px = 16.931 mm/px(差 0.04%) # 原点:外壁の内側の左下(画素 x=192, y=1291)。読んだ画素は comps.py・runs.py の出力 import json, sys out = sys.argv[1] if len(sys.argv) > 1 else "/home/claude/blind3/out/auto_v0.json" R = lambda v: round(v, 3) def T(typ, x0, y0, x1, y1, seats, **kw): return dict(type=typ, x=R(x0), y=R(y0), w=R(x1 - x0), h=R(y1 - y0), seats=seats, **kw) L = dict( name="寸法つき図面のファミレス(自動で起こした版)", style="効率重視", outer=dict(w=24.0, d=19.2), # 建物は四角でない:左上(x 0〜7.6、y 17.0〜19.2)は建物の外 outline=[[0, 0], [24.0, 0], [24.0, 19.2], [7.6, 19.2], [7.6, 17.0], [0, 17.0]], entrance=dict(side="bottom", a0=9.6, a1=12.4), # 下の寸法 9600 / 2800 / 11600 rooms=[ dict(label="建物の外", rect=[0.0, 17.0, 7.6, 19.2], kind="outside"), dict(label="パントリー", rect=[9.8, 6.0, 12.0, 14.0], kind="back"), dict(label="キッチン", rect=[12.0, 6.0, 19.0, 16.0], kind="back"), dict(label="冷蔵庫・こおり・冷凍庫・保存庫・社員トイレ・更衣室", rect=[19.0, 6.0, 24.0, 16.0], kind="back"), dict(label="裏の通路", rect=[12.0, 16.0, 24.0, 17.0], kind="back"), dict(label="洗い場", rect=[12.0, 17.0, 21.0, 19.2], kind="back"), dict(label="裏の通路(洗い場の横)", rect=[21.0, 17.0, 21.6, 19.2], kind="back"), dict(label="物置", rect=[21.6, 17.0, 24.0, 19.2], kind="back"), dict(label="トイレ", rect=[7.6, 17.0, 9.2, 19.2], kind="guest"), dict(label="待合", rect=[12.7, 0.0, 13.9, 0.5], kind="guest"), dict(label="レジ", rect=[9.78, 2.2, 12.3, 3.0], kind="guest"), dict(label="レジ内", rect=[9.78, 3.0, 12.3, 3.8], kind="back"), # 仮:図面にない。カウンターの奥(パントリー側)に0.8m dict(label="ドリンクバー", rect=[13.4, 3.2, 18.6, 3.93], kind="drink"), ], walls=[ dict(label="パントリーの壁", rect=[9.5, 6.0, 9.8, 14.0]), dict(label="トイレ前の通路の壁", rect=[9.5, 15.0, 9.8, 17.0]), dict(label="トイレの壁", rect=[9.2, 17.0, 9.5, 19.2]), dict(label="トイレの壁", rect=[7.6, 17.0, 8.3, 17.3]), dict(label="トイレ前の目隠しの壁", rect=[7.9, 14.4, 8.12, 17.0]), dict(label="仕切り", rect=[0.0, 8.6, 8.0, 9.0]), ], doors=[ dict(label="厨房の出入り口(裏の通路へ)", rect=[12.0, 16.1, 12.1, 17.0], kind="staff", door=True), dict(label="厨房の出入り口(キッチンへ)", rect=[12.0, 15.0, 12.1, 15.95], kind="staff", door=True), ], toilet_doors=[[8.3, 15.8, 9.2, 17.0]], dish_up=[ dict(label="受け渡し口(客席側)", rect=[9.8, 6.0, 12.0, 6.4]), dict(label="受け渡し口(トイレ側の通路)", rect=[9.8, 13.6, 12.0, 14.0]), ], robot_standby=dict(label="ロボット待機・充電(仮)", rect=[12.0, 5.2, 13.6, 6.0], slots=2), tables=[ # 左上(仕切りより奥) T("booth6L", 0.0, 13.2, 2.6, 16.8, 6, flip=True, mirror=False), T("booth6L", 0.0, 9.4, 2.6, 13.0, 6, flip=False, mirror=False), T("t4", 4.0, 15.05, 5.2, 16.17, 4, chairs="左右"), T("t4", 6.0, 15.05, 7.2, 16.17, 4, chairs="左右"), T("r4", 3.645, 12.665, 4.745, 13.765, 4), T("r4", 6.85, 12.655, 7.95, 13.755, 4), T("t4", 3.64, 9.6, 4.76, 10.8, 4, chairs="上下"), T("t4", 5.84, 9.6, 6.96, 10.8, 4, chairs="上下"), # 左下(仕切りより手前) T("booth6L", 0.0, 4.6, 2.8, 8.4, 6, flip=True, mirror=False), T("booth6L", 0.0, 0.2, 2.8, 4.2, 6, flip=False, mirror=False), T("t4", 4.2, 6.86, 5.4, 7.97, 4, chairs="左右"), T("t4", 6.33, 6.81, 7.45, 8.01, 4, chairs="上下"), T("long6", 4.4, 3.645, 7.6, 5.585, 6), T("t4", 4.2, 0.46, 5.4, 1.57, 4, chairs="左右"), T("t4", 6.7, 0.41, 7.9, 1.59, 4, chairs="左右"), # 右下 T("t4", 14.4, 0.46, 15.61, 1.57, 4, chairs="左右"), T("t4", 18.3, 0.41, 19.5, 1.59, 4, chairs="左右"), T("t4", 22.19, 0.46, 23.39, 1.57, 4, chairs="左右"), T("booth6L", 21.2, 3.0, 24.0, 6.0, 6, flip=True, mirror=True), ], ) json.dump({"layout": L}, open(out, "w"), ensure_ascii=False, indent=1) print(out, len(L["tables"]), "卓", sum(t["seats"] for t in L["tables"]), "席")