Files
cc-1c-skills/tests/skills/cases/mxl-decompile/roundtrip-drawings.json
T
Nick Shirokov 9285ed00cd feat(mxl-compile,mxl-decompile): рисунки и палитра картинок
Рисунок поверх сетки — картинка, фигура, надпись — теперь описывается в DSL
и возвращается из макета: два якоря «ячейка + смещение», тип, ссылка на
картинку, надпись, расшифровка, имя, порядок перекрытия.

Оформление рисунка разложено надвое: общее (заливка, шрифт, выравнивание)
берётся из именованного стиля, а линия и её стороны — собственные ключи
рисунка. У ячейки таких свойств не бывает: все 2 135 записей палитры с ними
принадлежат рисункам.

Палитра картинок: ссылка на библиотеку платформы, данные base64, пустая
запись «картинка не задана» (151 в корпусе) и координата пикселя прозрачного
цвета (tx/ty — проверено, это не размеры картинки).

Заодно: висячий пустой колонтитул в ps1-порте (пустой словарь в PowerShell
истинен, порты расходились на 3 макетах из 40) и проверка индекса формата
рисунка в mxl-validate.

Стенды Рисунки, Рисунки2, КартинкаВЯчейке проходят раундтрип байт в байт
в обоих портах; на 35 корпусных макетах с рисунками расхождение сократилось
у всех 35.
2026-08-15 20:07:12 +03:00

31 lines
1.4 KiB
JSON

{
"name": "Roundtrip — рисунки и палитра картинок",
"preRun": [
{ "script": "mxl-compile/scripts/mxl-compile",
"input": {
"columns": 4,
"styles": { "заливка": { "backColor": "web:LightYellow" } },
"pictures": {
"стоп": { "ref": "v8ui:Стоп48" },
"пусто": {}
},
"areas": [{ "rows": [["Бланк"]] }],
"drawings": [
{ "type": "Picture", "picture": "стоп", "name": "Знак",
"begin": { "row": 1, "col": 1 }, "end": { "row": 2, "col": 2, "dy": 20, "dx": 40 },
"pictureSize": "Proportionally" },
{ "type": "Rectangle", "style": "заливка", "line": { "style": "Dashed", "width": 2 },
"sides": { "left": true, "top": true, "right": false, "bottom": false },
"begin": { "row": 4, "col": 1 }, "end": { "row": 5, "col": 3 } },
{ "type": "Text", "id": 42, "text": { "ru": "Подпись", "en": "Signature" },
"begin": { "row": 7, "col": 1 }, "end": { "row": 7, "col": 3, "dy": 12 } }
]
},
"args": { "-JsonPath": "{inputFile}", "-OutputPath": "Template.xml" },
"cwd": "{workDir}" }
],
"params": { "templatePath": "Template.xml" },
"args_extra": ["-OutputPath", "{workDir}/back.json"],
"expect": { "files": ["back.json"], "stdoutContains": "[OK] Decompiled:" }
}