5d51b9e1af
Инкремент 9. 83 инструмента, 331 тест. + заметка о ревью реализации в спеке (Codex + pi/glm-5.1 + pi/kimi-k2.6). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
384 lines
35 KiB
HTML
384 lines
35 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>КОМПАС-3D MCP — управление CAD через LLM</title>
|
||
<style>
|
||
:root{
|
||
--bg:#0b1020; --bg2:#121a33; --card:#161f3d; --card2:#1b264a;
|
||
--txt:#e8edf7; --muted:#9aa7c7; --line:#26335c;
|
||
--accent:#4da3ff; --accent2:#7c5cff; --green:#36d399; --amber:#fbbd23;
|
||
--grad:linear-gradient(135deg,#4da3ff 0%,#7c5cff 100%);
|
||
}
|
||
*{box-sizing:border-box;margin:0;padding:0}
|
||
html{scroll-behavior:smooth}
|
||
body{
|
||
font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
|
||
background:radial-gradient(1200px 600px at 80% -10%,#1c2750 0%,var(--bg) 55%) no-repeat,var(--bg);
|
||
color:var(--txt);line-height:1.6;-webkit-font-smoothing:antialiased;
|
||
}
|
||
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
|
||
section{padding:64px 0}
|
||
h2{font-size:30px;margin-bottom:8px;letter-spacing:-.5px}
|
||
.sub{color:var(--muted);margin-bottom:36px;max-width:640px}
|
||
.eyebrow{color:var(--accent);font-weight:700;font-size:13px;letter-spacing:2px;text-transform:uppercase}
|
||
|
||
/* HERO */
|
||
.hero{padding:96px 0 72px;position:relative;overflow:hidden}
|
||
.hero::after{content:"";position:absolute;inset:0;background:
|
||
radial-gradient(600px 300px at 15% 20%,rgba(124,92,255,.18),transparent 60%);
|
||
pointer-events:none}
|
||
.badge{display:inline-flex;align-items:center;gap:8px;background:rgba(77,163,255,.1);
|
||
border:1px solid var(--line);color:var(--accent);padding:6px 14px;border-radius:999px;
|
||
font-size:13px;font-weight:600;margin-bottom:22px}
|
||
.dot{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px var(--amber)}
|
||
.hero h1{font-size:54px;line-height:1.05;letter-spacing:-1.5px;margin-bottom:18px;font-weight:800}
|
||
.hero h1 .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
|
||
.hero p.lead{font-size:19px;color:var(--muted);max-width:680px;margin-bottom:30px}
|
||
.chips{display:flex;flex-wrap:wrap;gap:10px}
|
||
.chip{background:var(--card);border:1px solid var(--line);border-radius:10px;
|
||
padding:8px 14px;font-size:13px;font-weight:600;color:#cdd7f2}
|
||
.chip b{color:var(--accent)}
|
||
|
||
/* GRID CARDS */
|
||
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
|
||
.card{background:linear-gradient(180deg,var(--card),var(--card2));border:1px solid var(--line);
|
||
border-radius:16px;padding:24px;transition:transform .2s,border-color .2s}
|
||
.card:hover{transform:translateY(-4px);border-color:var(--accent)}
|
||
.card .ic{width:44px;height:44px;border-radius:12px;background:var(--grad);
|
||
display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:14px}
|
||
.card h3{font-size:17px;margin-bottom:6px}
|
||
.card p{color:var(--muted);font-size:14px}
|
||
.card code{background:rgba(255,255,255,.06);padding:1px 6px;border-radius:5px;font-size:12px;color:#cdd7f2}
|
||
|
||
/* WORKFLOW */
|
||
.flow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;margin-top:8px}
|
||
.step{flex:1;min-width:150px;background:var(--card);border:1px solid var(--line);
|
||
border-radius:14px;padding:18px 16px;position:relative;text-align:center}
|
||
.step .n{font-size:12px;color:var(--accent);font-weight:700}
|
||
.step h4{font-size:15px;margin:6px 0 4px}
|
||
.step p{font-size:12.5px;color:var(--muted)}
|
||
.arrow{display:flex;align-items:center;justify-content:center;color:var(--accent2);
|
||
font-size:24px;padding:0 8px}
|
||
.loopnote{margin-top:14px;color:var(--muted);font-size:14px;text-align:center}
|
||
.loopnote b{color:var(--green)}
|
||
|
||
/* STACK */
|
||
.stack{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
|
||
.scard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
|
||
.scard .k{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
|
||
.scard .v{font-size:18px;font-weight:700;margin-top:6px;color:#dfe7fb}
|
||
.scard .v small{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:3px}
|
||
|
||
/* TODO */
|
||
.todo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
|
||
.panel{background:linear-gradient(180deg,var(--card),var(--card2));border:1px solid var(--line);
|
||
border-radius:16px;padding:26px}
|
||
.panel h3{font-size:18px;margin-bottom:4px;display:flex;align-items:center;gap:10px}
|
||
.tag{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;letter-spacing:.5px}
|
||
.tag.done{background:rgba(54,211,153,.15);color:var(--green);border:1px solid rgba(54,211,153,.3)}
|
||
.tag.now{background:rgba(251,189,35,.15);color:var(--amber);border:1px solid rgba(251,189,35,.3)}
|
||
.tag.next{background:rgba(124,92,255,.15);color:#b9a6ff;border:1px solid rgba(124,92,255,.3)}
|
||
.panel .meta{color:var(--muted);font-size:13px;margin-bottom:16px}
|
||
ul.list{list-style:none}
|
||
ul.list li{display:flex;gap:11px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14.5px}
|
||
ul.list li:last-child{border-bottom:0}
|
||
.mark{flex:0 0 20px;width:20px;height:20px;border-radius:6px;display:flex;align-items:center;
|
||
justify-content:center;font-size:12px;font-weight:700;margin-top:2px}
|
||
.mark.ok{background:var(--green);color:#04231a}
|
||
.mark.todo{background:transparent;border:1.5px solid var(--line)}
|
||
.mark.wip{background:var(--amber);color:#3a2c00}
|
||
li.muted span.t{color:var(--muted)}
|
||
|
||
/* progress */
|
||
.prog{margin:18px 0 4px}
|
||
.bar{height:10px;border-radius:999px;background:#0e1530;overflow:hidden;border:1px solid var(--line)}
|
||
.bar > i{display:block;height:100%;background:var(--grad);border-radius:999px}
|
||
.progrow{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:8px}
|
||
|
||
/* roadmap timeline */
|
||
.timeline{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-top:8px}
|
||
.tl{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 16px;position:relative}
|
||
.tl .ph{font-size:12px;font-weight:700;color:var(--accent)}
|
||
.tl h4{font-size:15px;margin:8px 0 6px}
|
||
.tl p{font-size:12.5px;color:var(--muted)}
|
||
.tl.cur{border-color:var(--amber);box-shadow:0 0 0 1px rgba(251,189,35,.25)}
|
||
|
||
footer{border-top:1px solid var(--line);padding:34px 0;color:var(--muted);font-size:14px}
|
||
footer a{color:var(--accent);text-decoration:none}
|
||
footer a:hover{text-decoration:underline}
|
||
.links{display:flex;gap:20px;flex-wrap:wrap;margin-top:10px}
|
||
|
||
@media(max-width:1020px){
|
||
.timeline{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
|
||
}
|
||
@media(max-width:880px){
|
||
.grid,.stack{grid-template-columns:1fr 1fr}
|
||
.todo-grid{grid-template-columns:1fr}
|
||
.timeline{grid-template-columns:1fr 1fr}
|
||
.hero h1{font-size:40px}
|
||
.arrow{transform:rotate(90deg)}
|
||
}
|
||
@media(max-width:520px){.grid,.stack,.timeline{grid-template-columns:1fr}}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<!-- HERO -->
|
||
<header class="hero">
|
||
<div class="wrap">
|
||
<span class="badge"><span class="dot" style="background:var(--green);box-shadow:0 0 10px var(--green)"></span> Статус: v3+ работает — эскиз→операции→STEP→сборка→move_face→структурный осмотр→богатые эскизы→shell+rib+sweep+loft+массивы+зеркало+hole+hole_counterbore+hole_countersink+hole_conic+draft+переменные+assembly_add_component+assembly_add_mate+drawing_create_standard_views+drawing_fill_title_block+drawing_add_linear_dimension+drawing_add_diametral_dimension+drawing_add_radial_dimension+drawing_add_angular_dimension+drawing_add_rough+drawing_add_text+drawing_set_technical_requirements+associate+drawing_set_sheet_format+drawing_add_leader (83 инструмента)</span>
|
||
<h1>КОМПАС-3D <span class="g">MCP-сервер</span><br>управление CAD языком LLM</h1>
|
||
<p class="lead">MCP-сервер, который превращает операции КОМПАС-3D — создание документов,
|
||
эскизы, 3D-операции, параметры — в инструменты для языковой модели. Под капотом —
|
||
COM Automation API АСКОН.</p>
|
||
<div class="chips">
|
||
<span class="chip"><b>.NET 8</b> · C#</span>
|
||
<span class="chip">транспорт <b>stdio</b></span>
|
||
<span class="chip"><b>COM</b> Automation · API7 / API5</span>
|
||
<span class="chip">Windows <b>x64</b></span>
|
||
<span class="chip">КОМПАС-3D <b>v24 Home</b></span>
|
||
<span class="chip">👁 <b>зрение агента</b></span>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
|
||
<!-- KEY FEATURES -->
|
||
<section id="features">
|
||
<div class="wrap">
|
||
<div class="eyebrow">Возможности</div>
|
||
<h2>Что умеет MCP-сервер</h2>
|
||
<p class="sub">Инструменты сгруппированы вокруг живого инженерного цикла моделирования —
|
||
от подключения к КОМПАС до построения и опроса детали.</p>
|
||
<div class="grid">
|
||
<div class="card">
|
||
<div class="ic">🔌</div>
|
||
<h3>Подключение к КОМПАС</h3>
|
||
<p>Attach к запущенному или launch нового экземпляра по ProgID, переход на API7
|
||
через <code>ksGetApplication7()</code>, управление видимостью окна.</p>
|
||
</div>
|
||
<div class="card">
|
||
<div class="ic">📄</div>
|
||
<h3>Документы</h3>
|
||
<p>Создание, открытие, сохранение и закрытие деталей, сборок, чертежей и фрагментов
|
||
через <code>IDocuments</code>.</p>
|
||
</div>
|
||
<div class="card">
|
||
<div class="ic">✏️</div>
|
||
<h3>Эскизы</h3>
|
||
<p>Эскиз на плоскости или грани, примитивы (линия, окружность, дуга,
|
||
прямоугольник), безопасный цикл <code>BeginEdit → EndEdit</code>.</p>
|
||
</div>
|
||
<div class="card">
|
||
<div class="ic">🧊</div>
|
||
<h3>3D-операции</h3>
|
||
<p>Выдавливание и вырез, вращение, перестроение. Управление направлением, глубиной и
|
||
типом окончания (<code>ksEndTypeEnum</code>).</p>
|
||
</div>
|
||
<div class="card">
|
||
<div class="ic">🔍</div>
|
||
<h3>Структурный осмотр</h3>
|
||
<p><code>describe_model</code> — паспорт детали (МЦХ, тела, дерево, переменные) одним вызовом.
|
||
<code>describe_face</code> · <code>describe_edge</code> · <code>measure</code>.
|
||
Предпочтительнее снимка — без расхода токенов изображения.</p>
|
||
</div>
|
||
<div class="card">
|
||
<div class="ic">🎯</div>
|
||
<h3>Выборка и запросы</h3>
|
||
<p>Перечисление граней, рёбер и компонентов сборки с классификацией; МЦХ, габарит.
|
||
<code>list_faces</code> · <code>list_edges</code> · <code>list_components</code>.</p>
|
||
</div>
|
||
<div class="card">
|
||
<div class="ic">📦</div>
|
||
<h3>STEP импорт / экспорт</h3>
|
||
<p>Импорт .step/.stp в новый документ (деталь или сборка, создание файлов компонентов);
|
||
экспорт в AP203/AP214/AP242 через встроенный конвертер КОМПАС.</p>
|
||
</div>
|
||
<div class="card">
|
||
<div class="ic">✂️</div>
|
||
<h3>Прямое редактирование</h3>
|
||
<p><code>move_face</code>: сдвинуть грань на N мм вдоль нормали (наружу или внутрь).
|
||
Работает на импортированной B-rep через <code>FaceMover</code> API7.</p>
|
||
</div>
|
||
<div class="card">
|
||
<div class="ic">👁️</div>
|
||
<h3>Зрение агента</h3>
|
||
<p>Рендер модели в PNG через временный файл и возврат как image-контент MCP — агент <b>видит</b>
|
||
результат. Fallback после <code>describe_model</code> для визуально-пространственных вопросов.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- WORKFLOW -->
|
||
<section id="workflow" style="background:linear-gradient(180deg,transparent,rgba(124,92,255,.05))">
|
||
<div class="wrap">
|
||
<div class="eyebrow">Ядро сценария</div>
|
||
<h2>Цикл «эскиз → операция → эскиз»</h2>
|
||
<p class="sub">Главный пользовательский поток v1 — итеративное параметрическое моделирование
|
||
с визуальной проверкой: рисуем профиль, превращаем в объём, <b>смотрим на результат</b>,
|
||
выбираем грань, рисуем следующий профиль.</p>
|
||
<div class="flow">
|
||
<div class="step"><div class="n">01</div><h4>Документ</h4><p>создать деталь (part)</p></div>
|
||
<div class="arrow">→</div>
|
||
<div class="step"><div class="n">02</div><h4>Эскиз</h4><p>на плоскости XOY, профиль</p></div>
|
||
<div class="arrow">→</div>
|
||
<div class="step"><div class="n">03</div><h4>Выдавить</h4><p>boss-операция → тело</p></div>
|
||
<div class="arrow">→</div>
|
||
<div class="step" style="border-color:var(--accent2)"><div class="n" style="color:var(--accent2)">04 👁</div><h4>Снимок</h4><p>агент видит результат</p></div>
|
||
<div class="arrow">→</div>
|
||
<div class="step"><div class="n">05</div><h4>Выбрать грань</h4><p>по точке на теле</p></div>
|
||
<div class="arrow">→</div>
|
||
<div class="step"><div class="n">06</div><h4>Вырез</h4><p>новый эскиз → cut</p></div>
|
||
</div>
|
||
<p class="loopnote">↻ <b>Повторять со зрением</b> — снимок → новая грань → новый эскиз → новая операция → снова снимок, пока деталь не готова</p>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- STACK -->
|
||
<section id="stack">
|
||
<div class="wrap">
|
||
<div class="eyebrow">Технологии</div>
|
||
<h2>Стек решения</h2>
|
||
<p class="sub">Выбор обоснован первоклассным COM-интеропом .NET и официальным C# MCP SDK —
|
||
подробности в документе архитектуры.</p>
|
||
<div class="stack">
|
||
<div class="scard"><div class="k">Платформа</div><div class="v">.NET 8<small>C# · win-x64</small></div></div>
|
||
<div class="scard"><div class="k">MCP SDK</div><div class="v">ModelContextProtocol<small>транспорт stdio</small></div></div>
|
||
<div class="scard"><div class="k">Интероп</div><div class="v">COM Automation<small>API7 + API5 (.tlb)</small></div></div>
|
||
<div class="scard"><div class="k">Потоки</div><div class="v">STA-поток<small>насос сообщений</small></div></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- TODO -->
|
||
<section id="todo" style="background:linear-gradient(180deg,transparent,rgba(77,163,255,.05))">
|
||
<div class="wrap">
|
||
<div class="eyebrow">Прогресс</div>
|
||
<h2>TODO проекта</h2>
|
||
<p class="sub">Честный срез состояния: фундамент подготовки готов, реализация сервера —
|
||
впереди.</p>
|
||
|
||
<div class="prog">
|
||
<div class="progrow"><span>Общий прогресс</span><span>v3+: STEP · move_face · структурный осмотр · богатые эскизы (пакет A) · shell+rib+sweep+loft (пакет B) · массивы+зеркало (пакет C) · переменные (пакет D start) · offset-plane (пакет E start) · hole (API7) · hole_counterbore · hole_countersink · hole_conic · draft (API5) · assembly_add_component · assembly_add_mate · drawing_create_standard_views · drawing_fill_title_block · drawing_add_linear_dimension · drawing_add_diametral_dimension · drawing_add_radial_dimension · drawing_add_angular_dimension · drawing_add_rough · drawing_add_text · drawing_set_technical_requirements · associate (ассоциативная привязка диам./радиального) · drawing_set_sheet_format (формат листа) · drawing_add_leader (выноска) · навык kompas-3d · 83 инструмента · 331 тест</span></div>
|
||
<div class="bar"><i style="width:97%"></i></div>
|
||
</div>
|
||
|
||
<div class="todo-grid" style="margin-top:26px">
|
||
<!-- DONE -->
|
||
<div class="panel">
|
||
<h3>Подготовка <span class="tag done">ГОТОВО</span></h3>
|
||
<p class="meta">Исследование, документация и инструменты разработчика</p>
|
||
<ul class="list">
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Исследование SDK и COM API (API5/API7, паттерны подключения)</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">CLAUDE.md — гайд по репозиторию и API</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Навигатор по справке: <code>kdoc.py</code> (навык kompas-sdk-research) + индекс на 26k стр.</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Документ архитектуры <code>docs/ARCHITECTURE.md</code></span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Выбор стека: .NET/C#, stdio, цикл «эскиз↔операция»</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Решение о визуальной обратной связи (зрение агента, рендер в растр)</span></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<!-- NOW -->
|
||
<div class="panel">
|
||
<h3>Фундамент v1 <span class="tag done">ГОТОВО</span></h3>
|
||
<p class="meta">Скелет сервера и связь с КОМПАС</p>
|
||
<ul class="list">
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Спайки S1–S4: interop, подключение, STA, рендер</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Решение Core/Host/Tests, Directory.Build.props, git</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Маппинг перечислений (enum ↔ строка)</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">STA-диспетчер (выделенный поток, очередь задач)</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">MCP-хост на stdio, логи в stderr</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Подключение по ProgID (attach/launch)</span></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<!-- TOOLS -->
|
||
<div class="panel">
|
||
<h3>Инструменты v3+ <span class="tag done">ГОТОВО</span></h3>
|
||
<p class="meta">83 инструмента, отдаются по MCP-протоколу</p>
|
||
<ul class="list">
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>System</code>: connect · status · set_visible</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Documents</code>: create · open · save · save_as · close · active</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Sketch</code>: create · on_face (точка/индекс) · <b>on_offset_plane</b> (смещённая плоскость) · add line/circle/arc/arc_3points/rectangle/axis/ellipse/polyline/polygon/spline/point · close</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Features</code>: extrude · revolve · fillet_edge/chamfer_edge (точка + индекс) · <b>shell</b> (оболочка) · <b>rib</b> (ребро жёсткости) · <b>sweep</b> (кинематическая) · <b>loft</b> (по сечениям) · <b>linear_pattern</b> · <b>circular_pattern</b> · <b>mirror_operation</b> · <b>mirror_body</b> · <b>hole</b> (API7) · <b>hole_counterbore</b> (цековка, API7) · <b>hole_countersink</b> (зенковка, API7) · <b>hole_conic</b> (коническое, API7) · <b>draft</b> (уклон, API5) · rebuild</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Edit</code>: move_face · split_solid_by_plane · move_body · boolean_union</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Inspection</code>: describe_model · list_features · list_bodies · list_variables · describe_face · describe_edge · measure</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Vision</code>: model_snapshot 👁️ (fallback)</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Query</code>: get_part_info · get_bounding_box · list_faces · list_edges · list_components</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Variables</code>: <b>create_variable</b> · <b>set_variable</b> · <b>delete_variable</b> (пакет D)</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Conversion</code>: import_step · export_step</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Assembly</code>: <b>assembly_add_component</b> (вставка компонента .m3d/.a3d в сборку, API7) · <b>assembly_add_mate</b> (сопряжения coincidence/distance, API7)</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t"><code>Drawing</code>: <b>drawing_create_standard_views</b> (стандартные ассоциативные виды чертежа, API7) · <b>drawing_fill_title_block</b> (основная надпись/штамп: обозначение, наименование, материал, API7) · <b>drawing_add_linear_dimension</b> (линейный размер на виде, ISymbols2DContainer, API7) · <b>drawing_add_diametral_dimension</b> (диаметральный размер Ø, IDiametralDimension, <b>associate=true</b> для ассоциативной привязки к окружности, API7) · <b>drawing_add_radial_dimension</b> (радиальный размер R, IRadialDimension, <b>associate=true</b> аналогично, API7) · <b>drawing_add_angular_dimension</b> (угловой размер, IAngleDimension, angleType=min/max/more, API7) · <b>drawing_add_rough</b> (знак шероховатости, IRough/IRoughParams, signType=delete/without/none, API7) · <b>drawing_add_text</b> (свободный текст на виде, IDrawingContainer/IDrawingText, API7) · <b>drawing_set_technical_requirements</b> (тех. требования документа, IDrawingDocument/TechnicalDemand, API7) · <b>drawing_set_sheet_format</b> (формат и ориентация листа, ILayoutSheet/ISheetFormat, PaperFormat A0–A5/user, API7) · <b>drawing_add_leader</b> (линия-выноска с текстом, ISymbols2DContainer/IBaseLeader/IBranchs/ILeader, ShelfDirection enum, API7)</span></li>
|
||
<li><span class="mark wip">→</span><span>2D-чертёж: рамка/основная надпись по ГОСТ-стилю (LayoutLibraryFileName/LayoutStyleNumber), несколько листов · привязка к дуге (Arcs), ассоциативный угловой размер, ассоциативная шероховатость (IRough.BaseObject) · обозначения баз (Bases), допуски формы (Tolerances), специальные выноски (позиция/клеймо/маркер) · пакет E (ось, угловая плоскость) · пакет D параметрика: параметрические эскизы (API2D) — <b>исследовано, недоступно через COM API</b> · прочие типы сопряжений (parallel/perpendicular/concentric/angle/tangency)</span></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<!-- QUALITY -->
|
||
<div class="panel">
|
||
<h3>Качество и поставка <span class="tag now">В РАБОТЕ</span></h3>
|
||
<p class="meta">Тесты, сборка, интеграция с клиентом</p>
|
||
<ul class="list">
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Unit-тесты — без COM: диспетчер, enum-маппинг, StepFormat, InspectionText</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Интеграционные тесты с КОМПАС: подключение, документы, снимок, цикл, STEP round-trip, сборка, move_face, инспекция</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Итого 331 тест зелёных (201 unit + 130 integration)</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Сборка <code>kompas-mcp.exe</code>, README с конфигом клиента</span></li>
|
||
<li class="muted"><span class="mark ok">✓</span><span class="t">Навык <code>kompas-3d</code> (методика) + полигон <code>usecases/</code></span></li>
|
||
<li><span class="mark todo"></span><span>In-process тест MCP-клиента, релизный publish</span></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ROADMAP -->
|
||
<section id="roadmap">
|
||
<div class="wrap">
|
||
<div class="eyebrow">Дорожная карта</div>
|
||
<h2>После v1</h2>
|
||
<p class="sub">Наращиваем покрытие API волнами — от простых операций к параметрике,
|
||
черчению и сборкам.</p>
|
||
<div class="timeline">
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">v1 · готово ✓</div><h4>Цикл моделирования</h4><p>Документы, эскизы, выдавливание/вырез, снимок модели</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">v2 · готово ✓</div><h4>Операции, выборка, STEP</h4><p>Эскиз на грани · вращение · скругление/фаска · list_faces/edges · import_step · export_step · list_components · навык kompas-3d</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">v3 · готово ✓</div><h4>B-rep + структурный осмотр</h4><p><b>move_face</b> (сдвиг грани на N мм) · <b>describe_model</b> · list_features · list_bodies · list_variables · describe_face · describe_edge · measure</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">пакет A · готово ✓</div><h4>Богатые эскизы</h4><p>arc · arc_3points · ellipse · polyline · polygon · spline · point (+7 инструментов); <b>PartModeler</b> разбит на partial-классы; <b>SketchGeometry</b></p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">пакет B · готово ✓</div><h4>Формообразующие операции</h4><p><b>shell</b> ✓ · <b>rib</b> ✓ · <b>sweep</b> ✓ · <b>loft</b> ✓ (по сечениям) · <b>offset-plane</b> ✓ (пакет E)</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">пакет C · готово ✓</div><h4>Массивы и зеркало</h4><p><b>linear_pattern</b> ✓ · <b>circular_pattern</b> ✓ · <b>mirror_operation</b> ✓ · <b>mirror_body</b> ✓ · <b>hole</b> ✓ (API7)</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">draft · готово ✓</div><h4>Уклон</h4><p><b>draft</b> ✓ (API5 <code>ksInclineDefinition</code>, o3d_incline=42) · 64 инструмента · 115 тестов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">пакет D start · готово ✓</div><h4>Переменные модели</h4><p><b>create_variable</b> · <b>set_variable</b> · <b>delete_variable</b> (API5 VariableService) · list_variables исправлен · 67 инструментов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">отверстия под крепёж · готово ✓</div><h4>Цековка, зенковка и конус</h4><p><b>hole_counterbore</b> (ksHTCounterbore) · <b>hole_countersink</b> (ksHTCountersinking) · <b>hole_conic</b> (ksHTConic, IConicHoleParameters) · HoleCore рефакторен (configure-колбэк) · 70 инструментов · 119 тестов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">сборки start · готово ✓</div><h4>Вставка компонентов</h4><p><b>assembly_add_component</b> (API7 IParts7.AddFromFile + IPlacement3D)</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">сборки инкремент 2 · готово ✓</div><h4>Сопряжения</h4><p><b>assembly_add_mate</b> (coincidence/distance, API7 IMateConstraints3D) · IntegrationTestBase · 72 инструмента · 156 тестов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">2D-чертёж · инкремент 2 ✓</div><h4>Стандартные виды + основная надпись</h4><p><b>drawing_create_standard_views</b> (AddStandartViews, API7) · <b>drawing_fill_title_block</b> (IStamp.Text[id].Str, API7) · 74 инструмента · 188 тестов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">2D-чертёж · инкремент 3 ✓</div><h4>Линейные размеры</h4><p><b>drawing_add_linear_dimension</b> (ISymbols2DContainer/LineDimensions.Add/ILineDimension, локальная СК вида, API7) · ViewNumbers в результате видов · 75 инструментов · 203 теста</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">2D-чертёж · инкремент 4 ✓</div><h4>Диаметральный размер</h4><p><b>drawing_add_diametral_dimension</b> (ISymbols2DContainer.DiametralDimensions.Add/IDiametralDimension, Xc/Yc/Radius/Angle рад, API7) · RequireSymbols2DContainer общий хелпер · DimensionAngles.ToRadians · 76 инструментов · 218 тестов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">2D-чертёж · инкремент 5 ✓</div><h4>Радиальный и угловой размеры</h4><p><b>drawing_add_radial_dimension</b> (IRadialDimension, DimensionType=true, API7) · <b>drawing_add_angular_dimension</b> (IAngleDimension, angleType=min/max/more, AngleDimensionType enum, API7) · базовое семейство размеров завершено · 78 инструментов · 241 тест</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">2D-чертёж · инкремент 6 ✓</div><h4>Текстовые обозначения</h4><p><b>drawing_add_rough</b> (IRough/IRoughParams, signType=delete/without/none, API7) · <b>drawing_add_text</b> (IDrawingContainer/IDrawingText/IText, API7) · <b>drawing_set_technical_requirements</b> (IDrawingDocument/TechnicalDemand, уровень документа, API7) · DrawingAnnotationResult · RoughSignType enum · 81 инструмент · 267 тестов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">2D-чертёж · инкремент 7 ✓</div><h4>Ассоциативная привязка к окружности</h4><p><b>associate=true</b> у drawing_add_diametral_dimension и drawing_add_radial_dimension · CircularObjectMatch (поиск по центру+радиусу, допуск 1 мм) · RequireViewContainers · dim.BaseObject=circle · значение из геометрии · 81 инструмент · 278 тестов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">2D-чертёж · инкремент 8 ✓</div><h4>Формат и ориентация листа</h4><p><b>drawing_set_sheet_format</b> (ILayoutSheet.Format / ISheetFormat, ksDocumentFormatEnum, A0–A5/user, VerticalOrientation) · PaperFormat enum · SheetFormatResult · ValidateFormatDimensions · 82 инструмента · 308 тестов</p></div>
|
||
<div class="tl" style="border-color:var(--green)"><div class="ph" style="color:var(--green)">2D-чертёж · инкремент 9 ✓</div><h4>Линия-выноска</h4><p><b>drawing_add_leader</b> (ISymbols2DContainer.Leaders.Add / IBaseLeader / IBranchs.AddBranchByPoint / ILeader.TextOnShelf, ShelfDirection enum auto/right/left/up/down, API7) · DrawingAnnotationResult · 83 инструмента · 331 тест</p></div>
|
||
<div class="tl cur"><div class="ph">далее · в работе ▶</div><h4>Оформление чертежа</h4><p>Рамка/надпись по ГОСТ-стилю (LayoutLibraryFileName) · несколько листов · привязка к дуге (Arcs) · ассоциативный угловой размер · ассоциативная шероховатость (IRough.BaseObject) · обозначения баз (Bases) · допуски формы (Tolerances) · специальные выноски (позиция/клеймо/маркер) · пакет E (ось, угловая плоскость) · прочие типы сопряжений (parallel/perpendicular/concentric/angle/tangency) · пакет D параметрика — параметрические эскизы недоступны через COM API</p></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<footer>
|
||
<div class="wrap">
|
||
<div>КОМПАС-3D MCP · документация проекта</div>
|
||
<div class="links">
|
||
<a href="../README.md">📦 README</a>
|
||
<a href="ARCHITECTURE.md">📐 Документ архитектуры</a>
|
||
<a href="IMPLEMENTATION_PLAN.md">🛠️ План реализации</a>
|
||
<a href="OPEN_QUESTIONS.md">❓ Открытые вопросы</a>
|
||
<a href="../CLAUDE.md">📘 CLAUDE.md</a>
|
||
<a href="KOMPAS_SDK_ru-RU/index.html">📚 Справка SDK КОМПАС-3D</a>
|
||
<a href="https://help.ascon.ru/KOMPAS_SDK/22/ru-RU/index.html">🌐 Онлайн-справка АСКОН</a>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
</body>
|
||
</html>
|