Ну вот и у меня получилось сделать ИИ агента для Компас 3D, но на локальной ИИ. Да, можно воспользоваться облачными решениями, но нужны API ключи, которые в основном платные, поэтому сделал на локальной ИИ модели GPT-OSS, с весами 12 гигабайт. Загружаем нашу модель в программу и пишем промт/запрос на создание детали, ИИ обрабатывает запрос, создаёт Python скрипт внутри программы, и посредствам API Компаса, передаёт скрипт напрямую ему и в Компас 3D создаётся модель без участия пользователя. Так как моя модель имеет малые веса и мой ПК не очень мощный, модель ИИ немного задумчива, но тем не менее, это работает. На более мощном железе и мощной ИИ модели, можно будет делать более сложные вещи, чем в моём примере.
Короче, есть у меня 3D-принтер. И периодически возникает тупая ситуация: нужно в готовой модели просто имя вырезать, или отверстие добавить, или паз какой-нибудь.
А чтобы это сделать — надо открывать Фьюжн, ждать пока загрузится, импортировать файл, вспоминать как там эти булевы операции делаются, экспортировать... В итоге на простую правку уходит полчаса, а то и больше.
Надоело. Сделал простое решение.
Что это: мини-приложение в ВК, где можно загрузить STL, выбрать «добавить текст» или «вырезать отверстие», задать параметры и скачать результат. Всё.
Ничего не надо качать, регистрироваться, разбираться в интерфейсе. Открыл ВК с телефона или компа → загрузил файл → получил результат.
Что умеет сейчас:
вырезать текст (имя, надпись, что угодно)
делать отверстия (сквозные или глухие)
вырезать «глаза» для игрушек (два отверстия сразу)
вырезать кубом (для пазов, выемок)
Чего не умеет:
скруглять грани (пока сложно технически)
работать с совсем кривыми STL (пытаемся чинить, но не всегда выходит)
редактировать по вершинам (это уже не быстрый редактор, а полноценный 3D-редактор)
Как работает: Файл летит на сервер, там его загружает trimesh, создаётся нужный «инструмент» (текст через CadQuery, цилиндр через trimesh.creation), делается булева операция через manifold3d, результат отдаётся обратно. Всё в памяти, файлы не сохраняются, через 5 минут удаляются.
Сделано на питоне + фласк, фронт на ванильном джаваскрипте + three.js для просмотра. Исходники потом выложу, если кому интересно.
Почему выкладываю сейчас, хотя сыровато: Потому что самому уже надоело ждать «идеального релиза». Лучше выложить, получить фидбек, починить то, что реально нужно людям.
Что нужно от вас:
Попробовать (ссылка в первом комменте)
Написать, что сломалось, что неудобно, чего не хватает
Предложить, какую фичу добавить первой
Не обижусь на критику — наоборот, помогло бы сделать лучше.
Ссылка — в первом комментарии.
Если кому пригодится — буду рад. Если найдёте баг — пишите, починю.
Это моя вторая часть заметок с Perm Winter School '26, некоммерческой научно‑практической конференции.
В первой части я рассказал, что если просто взять котировки, скормить их нейросети попросив предсказать куда пойдёт рынок завтра, то скорее всего получится красивая иллюзия, которая может выглядеть убедительно, но в реальной жизни всё закончится убытками. Первая часть была довольно популярна, хотя многие написали что‑то вроде «Вы просто не ту модель пробовали», «Нужно больше данных», «Надо давать нейросети не график OHLCV, а что‑то другое».
И в целом я согласен с таким ходом рассуждений, потому что из конференции я вынес не то, что нельзя заработать на бирже, а то, что большинство частных трейдеров решают вообще не ту задачу.
Ошибка новичка: искать ответ на вопрос «куда пойдет рынок»
Когда мы смотрим на график конечно же сразу возникает вопрос — вверх или вниз? И вся индустрия трейдинга построена на этой бинарной ловушке — что на рынке всего две кнопки:
Покупай.
Продавай.
Самый неожиданный для меня общий мотив нескольких докладов был таким: рынок не обязательно нужно предсказывать. И это резко контрастирует с тем, как большинство частных трейдеров вообще формулируют задачу.
Если обобщить услышанное, большинство практических подходов, о которых говорили на конференции, можно свести к трём классам задач:
1. Следование за трендом
Следование за трендом — это наверное самый скучный, но одновременно и самый используемый квантовый (от англ. Quantitative analysis) подход.
Я тестировал примитивную стратегию без индикаторов, прогнозов и вообще без попытки понять рынок о чём рассказал на конференции.
Я, Михаил Шардин, на конференции
Что делал алгоритм: он просто открывал очень маленькую позицию и увеличивал её только тогда, когда движение уже подтверждалось ценой, а если движение шло не в ту сторону, то позиция просто закрывалась по стоп лоссу.
При этом, конечно же, большинство сделок были убыточны, но редкие сильные движения перекрывали десятки мелких убыточных сделок.
Иллюстрация того, что происходит с капиталом при торговле по этой системе на примере тикера MDMG, компания «МД Медикал Груп» (ГК «Мать и дитя»)
Я протестировал эту логику на всех акциях Московской биржи за 3 года с параметрами: вход на 1% капитала, пирамидинг позиции при росте цены, закрытие всей позиции при просадке 20% от максимума (параметры обосновывал в статье).
Психологически это может быть очень тяжело, потому что большую часть времени система выглядит так, как будто она сломана.
Но именно на этой готовности терпеть серии небольших убытков ради редких больших выигрышей и построены многие серьёзные системные стратегии.
2. Работа с рыночной микроструктурой
Это чуть более сложный уровень куда обычно частные трейдеры не смотрят.
Доклад Тимура Реджепова про ALGOPACK
На конференции был доклад Тимура Реджепова про данные, которых нет на обычном графике цены. Потому что внутри Московской биржи есть дополнительный слой информации о том, кто именно покупает, насколько сконцентрированы сделки и заходит ли в бумагу один крупный игрок или это движение создаётся толпой мелких.
Скрин из презентации Тимура
И один из таких примеров — это индекс концентрации. Например, когда в бумаге внезапно появляется крупный покупатель который агрессивно собирает чужие позиции и это видно по всплеску специальных метрик.
Тимур отдавал данные для нейросети в двух вариантах: в виде картинки и в виде числовых данных и наблюдал за рассуждениями ИИ. Когда LLM получала картинку с графиком индекса концентрации, то модель лишь подтверждала свои предыдущие убеждения. Например одна, которая ранее советовала продавать, увидев новый график, повысила уверенность до 70% на продажу. А другая, настроенная изначально на покупку, так же уверенно рекомендовала купить. То есть на одних и тех же данных два противоположных вывода.
Но когда эти же данные подали в виде чисел — не просто 150, а 150 при медиане 45 и максимуме за год 180 — обе модели синхронно меняли мнение. Уверенность в сигнале вырастала до 75% у обеих.
Если вы хотите протестировать эту идею с микроструктурой, то не нужно ждать доступа к закрытым данным. Начните с простого: возьмите любую ликвидную бумагу (например, из крупнейших 10 бумаг индекса Мосбиржи) и посчитайте отношение объема крупных сделок к общему объему за день. И отслеживайте дни, когда этот показатель превышает медиану за месяц на порог стандартного отклонения. Проверьте, как часто в течение следующих 1–3 дней цена двигалась в сторону крупняка. Подберите нормировку и порог на обучающем периоде, затем проверьте устойчивость на независимом интервале.
Это примитивный аналог индекса концентрации. Он не даст вам грааль, но научит главному: смотреть не только на цену, но и на то, кто и как торгует.
Даже такая простая метрика может стать фильтром для ваших стратегий — или хотя бы поводом не входить в сделку против явного дисбаланса.
Михаил Шардин, Тимур Реджепов
3. Управление структурой портфеля
А дальше пойдёт неочевидный источник доходности, но который я думаю нужен каждому частному инвестору.
Вообще большинство частников думает что прибыль рождается в точке входа: то есть находишь идеальный сигнал в самом низу и покупаешь дёшево, а затем продаешь дорого.
Но чем я сам глубже погружаюсь в количественные методы тем сильнее убеждаюсь что часто важен вообще не момент входа, а то как распределён капитал между позициями.
ПАО «Якутская топливно‑энергетическая компания (ЯТЭК)», тикер YAKG на тестах
Если цена хаотично прыгает вверх и вниз то простое удержание позиции Buy and Hold (купили и держим) постепенно вымывает капитал.
Но если системе дать регулярно перераспределять веса, продавая часть выросшего и покупая просевшие, то волатильность начинает работать на инвестора. Хотя конечно это очень скучно, потому что в этом подходе даже нет ИИ.
Что я вынес из этой части
Если попытаться свести все доклады к единой мысли, она звучит так:
Квант спрашивает: «При каких сценариях мой капитал вырастет, а при каких — я ограничу убыток?»
И разница не в доступе к данным или мощности ИИ. Разница — в постановке задачи.
Проблема в том, что большинство частных трейдеров начинают не с того конца, потому что они ищут волшебный алгоритм, новую архитектуру, секретный индикатор.
Знаете это похоже на спор о том, какой микроскоп лучше, хотя там под стеклом вообще пусто. Если на входе шум, никакая архитектура не создаст сигнал из воздуха. Зато даже относительно простая модель может дать пользу, если ей подать осмысленные признаки.
А вот если есть качественные признаки — микроструктура рынка, статистические закономерности, корректная работа с риском и капиталом — тогда даже относительно простые методы могут давать устойчивый результат.
Просто конкурентное преимущество частника почти никогда не лежит в попытке переиграть крупные фонды в гонке за «идеальным прогнозом».
Оно лежит в дисциплине:
в качестве данных,
в тестировании,
в управлении риском,
в способности проверять гипотезы вместо поиска кнопки «бабло».
Если рабочие идеи уже известны, данные доступны, а нейросети умеют писать код стратегий — почему тогда большинство частных лиц и даже алготрейдеров всё равно сливают?
Об этом — в третьей, последней, части.
Потому что между хорошей идеей и реальной торговлей лежит самая дорогая часть всей системы: инфраструктура.
День как день, ничего особенного. Как обычно, после работы сбежал в гараж (мастерскую), чтобы отвлечься от проблем, требований и бесконечных указаний о том, когда и чем я должен заниматься. Сбежал в свой мир моделек, станков, стружки и эпоксидной смолы — мир сотни начатых и незаконченных идей.
Фото моей берлоги
В этот раз моей целью была донастройка постпроцессора SolidCam для самодельного токарного ЧПУ-станка. (Кто не знает: SolidCam — это программа для написания управляющих программ станка).
Видео о мучениях и «диком колхозе» по переделке токарного в ЧПУ можно посмотреть на ютубе или рутубе
Переделать хотел ради возможности радиальной фрезеровки. То есть не просто «приколхозить» шпиндель вместо резца, а чтобы всё это могло выполнять полезную работу по программе.
Первые попытки фрезеровки с использованием гровера 500 Вт.
В процессе донастройки я конкретно подсел на использование ИИ. Стал применять его постоянно: от перевода и объяснения технических терминов до экскурса в физику процессов, настройки оборудования и элементов программирования. Сердце постпроцессора SolidCam написано на специфичном языке программирования. Нормальной литературы по нему я найти не мог (под словом «нормальной» я имею в виду для людей, а не для богов ЧПУ). А ИИ с этим отлично помогает: можно каждую букву кода разобрать и точно не упереться в непонимание. Ответы и решения находятся в разумные сроки. Инет в мастерской ловит плохо, загружать сайты чатов было неудобно. Поэтому использовал агрегатор ИИ в Телеграме — быстро, удобно, много моделей на выбор. Если ответ одной модели не нравился или уводил в сторону, пробовал другую. Так я выстроил для себя закономерность: Gemini — для общих вопросов и понимания в целом, Claude — для написания конкретных блоков кода и так далее.
Чат-бот ИИ в Телеграмме
Но потом что-то пошло не так. Телеграм замедлился, интернет и без того был небыстрый, а тут вообще стало глухо. Использовать всякие «волшебные пилюли» и обходные пути задолбало: сегодня работает, завтра нет. Плюс эта вечная реклама и рекомендации везде: «MAX, Макс, не ходи в Макс, там принуждают, там плохо, ЭЦП в Максе, Безумный Макс, кот Макс, сын тоже Макс».
Подумал: да ладно, неужели он такой страшный? Попробую, вдруг там есть такой же чат-бот, как в телеге. Приложение MAX установилось нормально. С первых секунд мошенники не звонили, с карты денег не списали, лишних селфи в файлах не нашел. Обмен сообщениями есть; глючит, конечно, периодически, но с миной на лице - терпимо. Начал искать в приложении какой-нибудь агрегатор ИИ, но не нашел — были лишь неработающие зачатки.
Зима, новогодние праздники, на улице — дубак. Снег валит бесконечно, а чтобы в гараже стало хоть немного комфортно, его надо топить минимум час. Получалось, что подготовка к «наслаждению одиночеством» длилась дольше, чем само пребывание в нем.
На длинных выходных делать было особо нечего… Ну, в смысле, из «полезного». Домашние дела никто не отменял, но они вечны: плинтус, который пропустил этот ремонт и смиренно ждет следующего; ящики с плиткой, уже превратившиеся в элемент интерьера; люстра, которую пришлось закопать на балконе, чтобы просто не мозолила глаза.
И тут в голове сверкнуло: «А не прикрутить ли к MAX какой-нибудь ИИ? Наверное, ничего сложного». Благо домашний интернет работал стабильно, доступ к нейросетям был — и я сел изучать вопрос.
Каналы, чаты в МАКС
Первое, на что наткнулся: чтобы открыть канал и создать чат, нужно иметь статус юридического лица или ИП, а также действующий сайт.
Сриншот из инструкции по подключению к платформе МАКС
У меня на тот момент как раз было открыто ИП для «халтур» по фрезеровке, резке и прочим забавностям.
Фото забавностей, которые иногда приходится выполнять на своем фрезерном ЧПУ
Процесс регистрации потребовал завести еще один аккаунт на Госуслугах (теперь для ИП), зарегистрироваться на сайте МСП и еще в паре сервисов. Но, к моему удивлению, всё прошло быстро: всё через телефон, данные сами подтягивались из одного ведомства в другое.
Для верификации на платформе также требовался сайт. Он у меня был, но по основной тематике — всё той же фрезеровке. На всякий случай уточнил в техподдержке MAX, можно ли указать ресурс с другим профилем. Ответ пришел на редкость быстро: «Можно любой, главное, чтобы он принадлежал вам».
На самой платформе MAX всё оказалось предельно просто: условно три кнопки. Нажать «Создать», дать название и описание будущему каналу или чату, скопировать токен — и готово, можно пользоваться.
Скриншот с платформы макс
Серверное оборудование — «Франкенштейн» из хлама
Сервер (если его таковым можно назвать) я собрал из железа, которое на протяжении жизни потихоньку «прибирал к рукам»: где-то с работы списанный компик подвернулся, где-то мой старый системник, что-то просто отдали друзья.
Установил серверную версию Ubuntu, накатил Nginx и прочие пакеты. Закинул код — и вроде как всё заработало (как мне тогда казалось).
Но хлам есть хлам. Железо уже откровенно устало: сервер постоянно норовил «лечь спать» без предупреждения, не оставляя в логах ни единой строчки о причинах своей комы. Поплясав вокруг него с бубном, я понял, что стабильности так не добиться. В итоге бросил это дело и арендовал VPS на сервисе vpsadmin.
AI API: Квест по обходу ограничений
Большинство нейросетей имеют публичный API — это «вход» для программистов. Но почти всё это платно, а списание средств часто «хитровыдуманное»: деньги улетают за каждый потраченный ресурс (токены) на генерацию текста или картинок.
Яндекс API: Свой среди чужих (или наоборот)
Начал с того, что ближе. Яндекс — он же наш, родной! Думал, будет для людей (ошибался, но понял не сразу). У Яндекса своя экосистема Cloud, в которой новичку легко потеряться.
Скриншот консоли Яндекс Cloude
В консоли — ни слова по-русски, справка наполовину на английском. Чтобы просто завести ключ доступа, нужна отдельная методичка. Документация необъятная, а самое забавное — нейросети Алиса (и тот же GigaChat) не знают, толком, как работать с Яндекс API: в ответ на конкретный запрос, они начинают фантазировать и уводить в сторону.
Интересный факт: у Яндекса нет единой «всеядной» модели. Одна понимает только текст, другая — только фото, третья — генерирует. Приходится «жонглировать» запросами. Зато Яндекс дает 4000 рублей на тесты — это жирный плюс в карму.
Скриншот из документации Яндекс AI Studio
ChatGPT: Карты мексиканцев и прокси
С ChatGPT начался настоящий экшен. Из РФ доступа нет — нужны качественные прокси. Я остановился на fineproxy (принимают карты РФ, стоят около пары баксов за штуку).
Важная ремарка: тут внимательный читатель спросит — «Подожди, ты же завел бота в MAX, чтобы уйти от Телеграма и обходных путей, а сам опять сидишь в телеге и покупаешь прокси?» Поясню: возиться с «волшебными пилюлями» в гараже, где интернет и так еле дышит, — это мучение. Бот в MAX там работает стабильно и без лишних надстроек. А все манипуляции с оплатой, Telegram-ботами посредников и настройкой серверов я делал разово и из дома, где нормальный проводной интернет. Один раз настроил в комфорте — и пользуешься в гараже без головной боли.
Прокси — это полбеды. Как пополнить счет? Карты РФ не принимают. Для API нужна не просто подписка, а привязка карты реального человека. Пошел искать посредников:
1. «Плати по миру» — выдали обезличенную карту без имени. OpenAI её просто «выплюнул».
2. Oplatum — тут вообще живое общение в Телеграме. Пишешь человеку сумму, он присылает счет с комиссией (то 20%, то 30+%, логика туманна). В итоге мне достались данные карт каких-то мексиканцев. С ними всё привязалось и заработало.
DeepSeek, Gemini и фатальный бан
С китайским DeepSeek всё прошло проще — он работает на тех же библиотеках, что и OpenAI, код «встал» как родной.
А вот с Gemini (Google) я проиграл войну. Их гео-проверка самая жесткая. Менял почты, прокси, обходные пути — глухо. Пришлось идти через агрегатор OpenRouter (сервис, дающий один ключ ко всем ИИ сразу).
Но в один прекрасный момент OpenRouter разом забанил мне доступ к Google и Claude. Техподдержка сухо ответила: «Исполняем требования правообладателей по геолокации». Пришлось заводить новый аккаунт на другую почту и заходить в него исключительно через прокси, чтобы не палить местоположение. Пока держимся.
Теперь первоочередная задача найти аналоги и настроить ротацию если вдруг какой сервис меня снова забанит.
Сам чатбот
Интерфейс я старался сделать максимально лаконичным, насколько позволяют возможности платформы MAX. Вот стартовое окно с основным функционалом:
Стартовое окно в чатботе
Для удобства добавил меню быстрого выбора — оно появляется при вводе символа /. Все основные команды и настройки продублированы там для быстрого доступа.
Меню быстрого выбора
В меню можно выбрать модель ИИ под любую задачу: по «вкусу», модальности или объему памяти (контексту). При выборе конкретной нейронки бот выводит краткую справку: что она умеет принимать на вход и сколько текста «держит в голове».
Окно выбора моделей
Характеристики выбранной модели ChatGPT
Чтобы ответы были точнее, я предусмотрел несколько «ролей». Они помогают ИИ быстрее сориентироваться, кто он сейчас: суровый программист, технарь-советчик или просто собеседник.
Меню выбора ролей ИИ
Одной из фич добавил модель, которая немного вольна в ответах и формулировках («Болтун»). Хотел, чтобы общение было более живым, что ли. К примеру, чтобы вместо ответа на приветствие отвечал не «Добрый день», а «Здаров, бро!» и тому подобное.
Но! На Восьмое марта мне одна из пользовательниц написала, что бот её обозвал в приложении, предварив сообщение еще и «дополнительными знаками». Я не знаю, что ему можно было написать такого, чтобы он её обозвал, но решил не испытывать судьбу и не влететь в бан уже в самом MAX — сделал эту роль не по умолчанию.
Особый отзыв
Для генерации изображений есть другое меню — «Создать фото». Так же, как и для генерации текстовых ответов, предусмотрено несколько моделей.
Меню выбора моделей для генерации изображений
Каждая модель по-своему генерирует изображения, но лучшая из представленных, конечно, «Nano Banana». Ниже — пример генерации открытки к 8 Марта.
Сначала я добавил только базу: генерацию текста и картинок (какой же ИИ без «фоточек»?). Но аппетит приходит во время еды, и по мере надобности я «докрутил» возможность обрабатывать офисные документы (Word, Excel, PDF) и анализировать фото.
Вот реальный пример из моей практики, как это экономит время:
Пример №1: Битва с пожарными нормативами
Возник рабочий вопрос по требованиям к системам пожарной сигнализации. Нужно было срочно разобраться с размещением ручных извещателей: чем регламентировано, почему они обязательны и нельзя обойтись только автоматикой. В общем, обычная рабочая возня, способная убить полдня.
Просто задать вопрос ИИ в лоб — гиблое дело. Он со сказочным выражением «лица» напридумывает вам новые пункты правил и несуществующие законы. НО! Если скормить ему в контекст конкретный документ, ИИ превращается в гениального аналитика.
Я загрузил в него свод правил СП 484 целиком. Те, кто читал, знают: пожарные нормативы написаны каким-то особым «пожарным» языком. Формулировки вывернуты задом наперед, и с ходу сориентироваться в них просто нереально, если ты не отдал этой профессии лет десять. ИИ справился на отлично. Разобрал логику, выдал нужные ссылки и объяснил суть. Вместо половины дня в обнимку с талмудом я потратил 15 минут.
Пример анализа нормативного документа
Пример №2: Жизненный. Выбор масла для мотоцикла
Есть у меня мотоцикл. Катаюсь редко, в тонкости техники особо не углубляюсь: выкатился вечерком раз в месяц, получил удовольствие — и в стойло. Сезон на носу, масло я еще ни разу не менял, пора бы обновить.
Забил в поиск: «какое масло лить?». Выпала куча вариантов, глаза разбегаются, какое именно подходит моему коню — неясно. Спросил у ИИ. Тот выдал конкретный вариант с кучей примечаний: «смотри на эту маркировку, учитывай вот этот допуск» и так далее. Оказалось, нюансов там выше крыши.
Пример ответа о выборе масла
Прихожу в магазин. Продавцы с ходу пихают какую-то банку, по VIN подбирать отказываются (классика, блин!). Что делать? Сфотографировал банку и скинул боту с коротким вопросом: «Подходит?».
Пример ответа по фото о масле
Бот разложил всё по полкам. Я сравнил его первый ответ (теоретический) с тем, что он «увидел» на фото и маркировке банки. Всё сошлось. Купил, залил, мотор не стуканул — значит, работает!
У меня таких примеров использования вагон, но, думаю, этих двух достаточно, чтобы понять: бот умеет не только «стишки писать», но и реально помогать в быту.
Важное уточнение: ИИ не несет ответственности за свои слова. Каждый, кто получает информацию от бота, сам решает, насколько она достоверна и как её применять. Голову на плечах отключать нельзя, нейронка — это мощный инструмент, а не истина в последней инстанции.
Зачем так сложно?
Отвечаю просто: мне так захотелось. Это как с токарным станком — хочу, и всё, не свернешь. Мне было интересно закрыть свою потребность своими же руками. Да, есть готовые варианты, есть другие сервисы, но мой путь — такой. Утолил интерес, поднял скилл, решил задачу так, как видел её сам.
Ну и, конечно, подпитывала мысль, что я могу создать сервис, который будет реально полезен кому-то еще.
Что сейчас?
Поначалу ботом пользовался только я, потом скинул ссылку родным и друзьям. Но так как бот доступен в поиске MAX, им начали пользоваться и другие люди. Сначала ограничений не было, но со временем это начало ощутимо бить по карману.
В итоге я ввел систему подписок. Сделал несколько планов: от «стартового», чтобы полноценно всё пощупать, до «базового», рабочего варианта на каждый день.
Что касается стабильности: не буду врать, сбои бывают. И на стороне платформы, и на моем сервере. Но я стараюсь видеть все «траблы» и исправлять их по мере возможности. Это живой процесс.
Что дальше?
Останавливаться на достигнутом не планирую. В списке дел:
Голос: создание протоколов и выжимок из аудиозаписей.
Прокачка графики: пакетная генерация (сразу несколько штук) и расширенные настройки параметров.
Мультимодальный ответ: комбинирование генерации текста и изображений в одном запросе.
3D-моделирование: добавление моделей для генерации 3D-объектов.
Вот такой получился путь и обзор. Если вам было интересно и не возникло желания кинуть в меня тапком — пишите в комментариях. С удовольствием отвечу на вопросы, раскрою детали или подниму тему, которая вам интересна.
По работе нужно было много конвертировать пиксель арта в векторный формат и не найдя адекватных решений решил сам написать мини прожку, ну и от сырого прототипа в консоли за пару недель дошел до юзабельной версии с приятным интерфейсом.
Основным запросом было, что бы финальный SVG не лагал в той же самой фигме, так как нашему дизайнеру нужно было размещать логотипы в брендбуке лендинге и прочее. По этому я в первую очередь бросил все силы на алгоритм, помог мне довести его до идеала некий Гарри Тсанг, (его линкед ин можете найти в репозитории кому надо) который довел мой имеющийся алгоритм до идеала.
Принцип его работы довольно прост - сначала алгоритм смотрит на всю картинку и группирует пиксели по цветам. Далее мы ищем контур что бы четко определить границы каждого такого кластера одинаковых цветов. За счет эффективного математического расчета поиск этих границ занимает буквально секунды. Далее алгоритм ищет все прямые участки и например если граница идет прямо на 100 пикселей, он не будет ставить 100 точек а просто проведет линию от одного угла до другого. И по сути алгоритм не просто копирует пиксели, а скорее интерпретирует их как набор логических форм, по этому на выходе получается чистый и оптимизированный SVG за минимально затраченное время.
В общем на данный момент десктопная версия пополнилась еще парой фичей вроде импорта целых папок и конвертирования в формат WEBP, с помощью этих фич я конвертировал весь набор арт ассетов сайта, это где то 670 картинок за минут 5-7, в вебп формат и сохранил их в то же место где находились исходники.
Так же запустил по советам многих сайт, все вычисления проходят прямо в вашем браузере а не на сервере что позволяет проге быть почти полностью бесплатной.
Еще раз повторяю , мне было не удобно каждый раз копировать по обычному , и стало интересно сделать такую прогу , и те кто говорил почему нельзя сделать ctrl + a ctrl + c то вот вам показ моей проблемы
Есть рутина, которую вы мечтаете автоматизировать? Или идеи, чего не хватает в повседневной работе? Напишите в комментариях или мне на почту (она в конце поста). Буду рад любым предложениям: что добавить, что упростить, а что вообще переделать.
Нейросети научились писать код, но до недавнего времени оставались беспомощными в реальном мире софта. Протокол MCP (Model Context Protocol) убрал эту стену, дав моделям прямой доступ к инструментам. И если для веба коннекторы появились сразу, то инженерный софт незаслуженно забыли. Я решил это исправить и дал нейросети прямой доступ к API КОМПАС-3D.
Что умеет сервер
Сервер работает как мост между MCP-клиентом (Codex, Cursor, любой другой хост, поддерживающий протокол) и запущенным экземпляром КОМПАС-3D. Обмен идёт через стандартный ввод-вывод, сервер переводит их в COM-вызовы и возвращает результат.(На вход можно отправлять как текст, так и картинку-образец, если нейросеть поддерживает).
Набор инструментов охватывает основные задачи 2D-черчения. Создание геометрии: отрезки, полилинии, бесконечные прямые, окружности, дуги (по радиусу и по трём точкам), точки, прямоугольники, правильные многоугольники, эллипсы и их дуги. Редактирование: фаски, скругления, усечение кривых, перемещение, трансформация (масштаб, поворот), симметрия, удаление, изменение параметров существующих объектов. Анализ и измерения: расстояние, длина кривой, угол, площадь, поиск пересечений. Работа с документом: создание и открытие файлов, сохранение, переключение видов и слоёв, скриншот рабочей области, экспорт геометрии в JSON.
Отдельный инструмент execute_python_script позволяет выполнять произвольный Python-код прямо в контексте КОМПАС. В глобальную область видимости скрипта инжектируются готовые объекты: kompas (корневой KompasObject API5), app7 (IApplication API7), doc2d (активный документ), tools (доступ ко всем зарегистрированным инструментам как к обычным функциям). Есть высокоуровневые обёртки: ln(x1, y1, x2, y2) для быстрого рисования линии, circle(x, y, r) для окружности, rect(x, y, w, h) для прямоугольника. Можно писать сложные скрипты, не выходя из диалога с моделью.
Если КОМПАС не запущен, COM-механизм попытается запустить его. Если не получится, вернёт ошибку. При выполнении команд сервер проверяет наличие активного 2D-документа.
Конфигурация
Достаточно указать путь к скрипту в конфиге MCP-клиента. Вот как это будет выглядеть в релизной версии:
Пример конфигурации для Claude Code, Roo Code в файле mcp.json:
Пример конфигурации для Codex в файле config.toml:
[mcp_servers.kompas-3d] command = "python" args = ["C:/Path/To/MCP-KOMPAS-3D/main.py"] # указывайте ваш путь в args
Как это работает в реальной сессии
Пользователь пишет AI-ассистенту: "Нарисуй прямоугольник 100x50 со скруглёнными углами радиусом 5". Модель разбивает задачу на шаги: создать прямоугольник, затем применить скругление к каждому углу. Для каждого шага она вызывает соответствующий инструмент через MCP.
Запрос create_rectangle с параметрами x1=0, y1=0, x2=100, y2=50 попадает на сервер. Обработчик находит зарегистрированный RectangleTool, формирует замыкание, передаёт его в ComWorker. Рабочий поток вызывает ksRectangle через API5. Результат (reference созданного объекта) возвращается модели. Она использует его для следующего вызова create_fillet с радиусом 5.
Если что-то идёт не так (документ не открыт, КОМПАС завис, COM-соединение оборвалось), сервер возвращает структурированную ошибку с описанием проблемы и рекомендациями. Модель может попробовать переподключиться через reconnect() или создать новый документ.
Ограничения и открытые вопросы
Сервер работает только с 2D-документами: чертежами и фрагментами.
Некоторые операции через API ведут себя нестабильно. Создание видов и слоёв через API7 иногда отказывается работать, приходится использовать API5.
Производительность зависит от сложности документа. На чертеже с тысячами объектов итерация по геометрии занимает секунды. Для критичных сценариев есть batch_execute, который группирует несколько операций в один вызов.
Если вас заинтересовал мой проект и вам действительно это может помочь, то смело предлагайте свои идеи для улучшения его функционала. Пишите чтобы вы добавили, а я в свою очередь, увидев ваш актив, выкачу рабочую тестовую версию программы с вашими идеями по возможности реализации.