From 9cee071f9f6a7d2dcabe9765b12f90a2e6f7fb2d Mon Sep 17 00:00:00 2001 From: grigory Date: Mon, 5 Oct 2026 18:16:44 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D0=B5=20=D0=BE=D0=B2=D0=B5=D1=80=D0=BB=D0=B5=D1=8F=20=D0=B2=20?= =?UTF-8?q?1.6.0=20(ours-1.6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ours-1.6-port.md | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 docs/ours-1.6-port.md diff --git a/docs/ours-1.6-port.md b/docs/ours-1.6-port.md new file mode 100644 index 0000000..64f724f --- /dev/null +++ b/docs/ours-1.6-port.md @@ -0,0 +1,62 @@ +# ours-1.6 — наш оверлей поверх апстрима 1.6.0 + +Ветка `ours-1.6` = тег **v1.6.0** (`cdb1063`, released 1.6.0 lineage) + наш патч, +ранее живший в 1.5.1 (`/opt/data/autocad-mcp-build/patch/`, прод-контейнер `:30015`). + +Перенос сделан **трёхсторонним слиянием с ветвью `ours-1.5`** (v1.5.1 + оверлей), +а не копированием файлов: 30 конфликтов разрешены по смыслу. Копирование файлов +оверлея 1.5.1 поверх 1.6.0 затирало бы новые модули 1.6.0 — этот путь исключён. + +Дельта к 1.5.1: 10 изменённых + 2 новых файла, +3207 / −152 строк. + +## Что перенесено (наше) + +| Область | Что именно | +|---|---| +| Инструменты | `titleblock_apply_gost_form3`, `file_put`, `file_get`, `drawing_open_base64`, `drawing_save_base64`, `entity_create_attdef`, `block_get_attdefs`, `textstyle_ensure`, `text_apply_style`, `text_style_report`, `dimstyle_ensure`, `layout_set_paper` | +| Параметр `layout` | адресация в пространство листа — 36 инструментов, включая геометрию (`entity_create_line/polyline/circle/arc`), `block_insert`, `block_create_from_entities`, `dimension_*`; в COM — `_activate_layout()` | +| `inline_font` | ГОСТ-шрифт ISOCPEUR прямо в MTEXT/таблицы — 5 инструментов | +| ГОСТ-стиль | стиль по умолчанию `GOST_A` при `drawing_new` / `drawing_open` | +| Атрибуты | ATTDEF → ATTRIB: `block_insert` вставляет **именованный** блок (не `*U`), `block_set_attributes` достраивает отсутствующие ATTRIB из определений | +| Отчётность | `filled` / `unknown_tags` / `created_tags`, штамп стиля на ATTRIB | +| PDF | `page_size` (`layout` — страница равна формату листа 1:1, `extents` — по содержимому), настоящий текстовый слой (`pdf.fonttype=42`), текст через видовые экраны, предупреждения о мелких надписях | +| Новые файлы | `engineering/gost_titleblock.py` (ГОСТ Р 21.1101-2013, форма 3), `_fonts/isocpeur.ttf` | + +## Что уступили апстриму (дубли удалены) + +- `drawing_export_pdf`: рамка листа считается `_paper_frame()` из 1.6.0 (масштаб, + plot area, поворот, поля) вместо нашего `_layout_paper_mm()`; наш текстовый слой + и `page_size` наложены сверху. +- Размерные стили: `_current_dimstyle_name()` из 1.6.0; наш `_current_dimstyle()` + оставлен — им пользуется отчёт о стилях. +- Таблицы (ezdxf и COM): объединённая строка-заголовок, «span», масштабируемый + отступ ячеек и `SetCellTextHeight()` из 1.6.0 + наши `inline_font` / style. +- `block_insert`: структура вставки и многострочные ATTRIB из 1.6.0 + наша отчётность. +- Экспорт DWG/xref/image_attach/профили и группы `arch` (12), `pid` (9), `mech` (6), + `sheet`, `understand` — сохранены целиком, 1.6.0 ничего не потерял. + +## Три структурные правки после слияния + +Найдены pyflakes и аудитом дерева (git сшил код механически): + +1. `com_backend`: наша подпись `drawing_export_pdf` попала в тело `xref_attach` и + дублировала метод — вставка убрана, `text_layer`/`page_size` перенесены в + настоящую COM-функцию; +2. `_space_name` в ezdxf-бэкенде был занят дважды — наш переименован в + `_reply_space_name` (иначе затенял хелпер апстрима); +3. `entity_create_text`: ключ `"style"` в `dxfattribs` стоял дважды — оставлен наш + (разрешённый `resolved_style`). + +Итого pyflakes: 8 предупреждений — столько же, сколько в чистом 1.6.0, новых нет. + +## Проверка + +Образ `autocad-mcp:1.6.0-ours`, контейнер `autocad-mcp-160ours`, порт **30041** +(`:30015` — прод, `:30040` — чистый апстрим 1.6.0; оба не тронуты). + +- `tools_inventory.py 30041` → **254** инструмента (апстрим даёт 242), все наши + доработки на месте, `layout` у 36, `inline_font` у 5; +- `mcp_acceptance_test.py --base-url http://10.26.5.108:30041/mcp` → **15/15 PASS**; +- живой вызов 1.6.0-новинки `drawing_understand` → ok (entities, units, extents, + clusters, rooms, blocks, layouts, title_block); +- прод `:30015` → 161 инструмент, не тронут.