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

5.1 KiB
Raw Blame History

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 инструмент, не тронут.