Files
autocad-mcp-pro/docs/ours-1.6-port.md

63 lines
5.1 KiB
Markdown
Raw Permalink 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.
# 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 инструмент, не тронут.