Files
cc-1c-skills/.codeassistant/skills/img-grid/SKILL.md
T

78 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: img-grid
description: Наложить пронумерованную сетку на изображение. Используй при анализе скриншота макета или печатной формы — измерить пропорции колонок перед генерацией табличного документа
argument-hint: <ImagePath> [-c COLS]
allowed-tools:
- Bash
- Read
---
# /img-grid — Сетка для анализа макета
Накладывает пронумерованную сетку на изображение печатной формы. Позволяет точно определить границы колонок, их пропорции и span-ы для генерации макета табличного документа.
## Использование
```
/img-grid <ImagePath> [-c COLS] [-o OUTPUT]
```
## Параметры
| Параметр | Обязательный | По умолчанию | Описание |
|-----------|:------------:|--------------|-----------------------------------------------|
| ImagePath | да | — | Путь к изображению (PNG, JPG) |
| -c COLS | нет | 50 | Количество вертикальных делений |
| -r ROWS | нет | авто | Количество горизонтальных делений (авто = квадратные ячейки) |
| -o OUTPUT | нет | `<name>-grid.<ext>` | Путь для результата |
## Команда
```bash
python ".codeassistant/skills/img-grid/scripts/overlay-grid.py" "<ImagePath>" [-c 50] [-o "<OutputPath>"]
```
Требуется Python 3 с библиотекой Pillow (`pip install Pillow`).
## Что делает
1. Рисует полупрозрачные вертикальные (красные) и горизонтальные (синие) линии
2. Нумерует линии в отдельных полях сверху и слева (не перекрывает содержимое)
3. Каждая 5-я и 10-я линия выделены ярче для удобства счёта
## Как использовать результат
### 1. Определить границы колонок
Посмотреть на изображение с сеткой и записать координаты вертикальных границ каждой колонки таблицы (в номерах grid-линий).
### 2. Найти базовую решётку
Если на форме несколько таблиц с разной раскладкой (например, шапка документа и основная таблица), объединить все граничные точки. Каждый сегмент между соседними границами — одна колонка MXL.
Пример для М-11:
- Шапка: границы 0, 2, 4, 9, 14, 21, 28, 34, 40, 48
- Таблица: границы 0, 2, 4, 11, 16, 19, 23, 28, 32, 36, 42, 48
- Объединение: 0, 2, 4, 9, 11, 14, 16, 19, 21, 23, 28, 32, 34, 36, 40, 42, 48
- Результат: **16 базовых колонок** с пропорциями 2, 2, 5, 2, 3, 2, 3, 2, 2, 5, 4, 2, 2, 4, 2, 6
### 3. Записать в JSON DSL
```json
{
"columns": 16,
"page": "A4-landscape",
"columnWidths": {
"1": "2x", "2": "2x", "3": "5x", "4": "2x", "5": "3x",
"6": "2x", "7": "3x", "8": "2x", "9": "2x", "10": "5x",
"11": "4x", "12": "2x", "13": "2x", "14": "4x", "15": "2x", "16": "6x"
}
}
```
Поле `"page"` позволяет компилятору автоматически вычислить абсолютные ширины из пропорций.
### 4. Скомпилировать
`/mxl-compile``/mxl-validate``/mxl-info`