К нам обратилась клиентка, дизайнер интерьеров, для студии которой мы уже делали проекты. Попросила помочь удалённо: когда она открывает спецификацию отделки стен или пытается поставить её на лист, Archicad надолго перестаёт отвечать. Иногда его приходилось закрывать через диспетчер задач, а сроки по проекту шли.
Мы подключились к её ноутбуку и разделили работу между двумя нейросетями. Codex работал в самом Archicad: открывал проект, проверял настройки, замерял расчёт и записывал всё в журнал. Claude Code разбирал его находки, уточнял у клиентки, как она работает, и готовил задания для следующих шагов. От клиентки требовалось не трогать ноутбук, пока идёт работа, и отвечать на вопросы, когда без неё было не обойтись.
«Не отвечает» — ещё не приговор
В момент очередного «зависания» в диспетчере задач рядом с Archicad стояло «Не отвечает», но процессор программа продолжала нагружать. Мы не стали снимать задачу и дождались: спецификация открылась сама. Значит, в этом случае программа не зависла, а долго считала и ничего не показывала, пока не закончит.
Если такую задачу снять, расчёт начнётся заново при следующем открытии, а несохранённое пропадёт. У клиентки так и выходило: закрыла, открыла снова, и снова «зависло».
Оставалось понять, что именно так долго считается.
Одна строка за скобкой
Спецификация отделки сама считает, сколько квадратных метров стен покрыто каждой плиткой и краской. Какие поверхности попадают в таблицу, задают условия отбора. Упрощённо они выглядели так:
Последняя строка стояла после закрывающей скобки. Как и в арифметике, «И» здесь выполняется раньше «ИЛИ». Поэтому для белой краски условие «только стены» уже не действовало, и программе приходилось перебирать гораздо больше элементов модели, чем нужно.
Codex проверил это на одной и той же копии проекта, меняя только положение скобки:
| Где стоит скобка | Сколько считается таблица |
|---|---|
| После штукатурки | на 142-й секунде ещё считалась, к 210-й была готова |
| После белой краски | готова не позже чем через 8 секунд |
Штукатурка и обе плитки в двух вариантах совпали до сотых: 130,11, 7,48 и 9,05 м². Изменилась только белая краска — стало на 5,61 м² меньше. Какие именно поверхности дали эту разницу, мы не выясняли: для задачи клиентки это оказалось не нужно, почему — ниже.
С перетаскиванием на лист то же самое: пока спецификация пересчитывается, программа не отвечает. Быструю версию клиентка поставила на лист сразу.
Решающим оказался вопрос клиентке
Нейросети нашли скобку, но менять ею смету сразу не стали. С исправленной скобкой одна из площадей уменьшилась, а молча менять цифры в чужом расчёте нельзя. Сначала нужно было понять, что клиентке на самом деле нужно считать.
Ответ дала она сама. Белая краска для неё — временная заливка: сначала стены становятся белыми, потом она назначает нужную плитку или цвет. Считать ей нужно штукатурку и плитку, а они в обоих вариантах совпали. Значит, для её задачи быстрая версия подходит.
В этом и было разделение труда. Нейросети сделали то, что требует терпения и аккуратности: замерили, сравнили варианты, нашли строку и не стали подгонять цифры. А то, чего нет ни в одном журнале, — зачем в модели белая краска, — знала только клиентка.
Что изменилось у клиентки
Скобку нашли нейросети, а в своей рабочей спецификации клиентка поправила её по нашей подсказке. Открыла исправленную версию как образец, уточнила в чате, где должна стоять скобка, и через три минуты её собственная таблица была готова. Потом она ещё поменяла состав покрытий под новый расчёт, и когда мы проверяли её рабочий проект, спецификация открывалась меньше чем за десять секунд. Перетаскивание на лист она проверила сама: работает.
Дальше Codex по заданию навёл порядок в её рабочем проекте и в шаблоне, с которого начинается каждый новый проект. Перед правками сделал отдельные резервные копии обоих файлов, вернул три пропавшие текстуры, обновил чертежи на листах и проверил, что новый проект из шаблона создаётся без пропавших текстур. Старые чертежи, у которых давно потеряны исходные виды, остались на листах — удалять их клиентка не стала.
В конце мы собрали для клиентки короткую памятку: что делать, когда программа «не отвечает», как добавлять новую плитку в условия, чтобы таблица не начинала тормозить, какие окна при открытии проекта можно спокойно пропускать. Чтобы в следующий раз похожие вещи она могла решить сама, не дожидаясь помощи, — для нас это и есть главный результат.
Если ваша программа «висит»
- Посмотрите на процессор. Откройте диспетчер задач (Ctrl+Shift+Esc). Если программа «не отвечает», но процессор у неё загружен, возможно, она просто долго считает — дайте ей время, прежде чем снимать задачу. Если нагрузки нет, это ещё не приговор: программа может ждать диск, сеть или окно с вопросом, спрятанное за другими окнами. Проверьте панель задач и подождите ещё немного — снятие задачи оставьте на крайний случай.
- Заметьте, после чего это происходит. Если тормозит одна таблица, отчёт или фильтр, а остальное работает нормально, начните проверку с его настроек.
- Проверьте, как сгруппированы условия. В фильтрах и отчётах многих программ строка не в той группе молча расширяет выборку, и программа начинает перебирать всё подряд. Как именно объединяются «И» и «ИЛИ», смотрите в справке своей программы.
- Расскажите тому, кто помогает, как вы работаете, а не только что сломалось. Иногда это и есть ответ.