agentee

Схема и топология платы

Редактирование в просмотрщике

Перемещение компонентов, разводка проводников и размещение переходных отверстий вручную в agentee view, с сохранением в тот же файл TOML.

Страница 2D-топологии в agentee view позволяет редактировать топологию вручную. Изменения сохраняются в окне до save (ctrl+S), который записывает их в .pcb.toml тем же писателем, что сохраняет комментарии и порядок, как и CLI; revert отбрасывает их. Каждое изменение проверяется в фоне так, как это делает check, поэтому панель диагностики и таблица цепей обновляются, а в заголовке подсчитываются несохранённые топологии. Если файл на диске изменился при наличии несохранённых правок, страница спрашивает, сохранить ли ваши изменения или загрузить файл. Закрытие окна с несохранёнными правками сначала запрашивает подтверждение.

клавишадействие
кликвыбрать компонент, проводник, переходное отверстие или линию связей; повторный клик по выделенному элементу выбирает следующий элемент под указателем
перетаскиваниепереместить: компонент с его обозначением, переходное отверстие, угол проводника или весь сегмент проводника; выделенный элемент имеет приоритет над тем, что находится под ним
правый или средний клик, колесопанорамирование, масштабирование
R, shift+Rповернуть выделенный компонент на 90 градусов
Delудалить выбранный проводник или переходное отверстие
Xинструмент трассировки: кликните по площадке, переходному отверстию или проводнику, чтобы начать, кликайте, чтобы добавлять углы под 45 градусов, / меняет направление изгиба, V ставит переходное отверстие и переходит на следующий слой, до которого дотягиваются переходные отверстия класса цепи, Backspace отменяет последний шаг, Enter, двойной клик или клик по меди цепи завершают
Vинструмент переходных отверстий: кликните по меди с цепью, чтобы поставить переходное отверстие класса этой цепи
PgUp, PgDnактивный слой
ctrl+Z, ctrl+shift+Zотменить, повторить
Escотменить проводник, вернуться к выделению, снять выделение

Перемещения привязываются к сетке, выбранной на панели инструментов. Новые проводники получают ширину из класса (без ключа width); панель свойств задаёт цепь, слой и собственную ширину проводника, позицию, цепь и тип переходного отверстия, а также позицию, поворот, сторону и locked компонента. Выбранную линию связей можно передать авторутеру как одно соединение или как всю цепь, по тем же правилам, что и agentee route. Переходное отверстие, размещённое правилом [[fanouts]] или [[stitching]], или один элемент строки count, извлекается из правила при перемещении, изменении или удалении: в правиле появляется запись skip_at для этого места, а отверстие записывается как собственное [[vias]].

reset на панели инструментов очищает то, что вы отметили: трассировку (проводники, переходные отверстия и разделы плана движка), правила [[fanouts]] и [[stitching]], полигоны с сохранёнными заливками и позиции меток шелкографии, а также может снова разместить все разблокированные компоненты с помощью размещателя (agentee place, с зерном). Как и любое другое изменение, он остаётся несохранённым, пока вы не сохраните. new layout на вкладке топологий запрашивает имя, плату и схему, записывает NAME.pcb.toml рядом с проектом и, если вы не сняли отметку, сначала размещает все компоненты с помощью размещателя. Новый файл начинается с полигона на каждом медном слое для каждой цепи земли схемы и, если в схеме есть ВЧ-цепи, с сетки [[stitching]] переходных отверстий земли с шагом 2,5 мм и ограждения вдоль ВЧ-проводников, если у их класса есть coplanar_gap. Кнопка tie plane pads на карточке движка выполняет agentee tie для топологии в окне, а выбранная линия связей цепи земли предлагает tie pads to the plane перед трассировкой.

Карточка layout engine выполняет этапы agentee layout (см. docs/layout-engine-2.md) для топологии в том виде, в каком она находится в окне, включая несохранённые изменения: run выполняет этапы от..до, run X only повторяет один этап, stop завершает выполнение после текущего этапа. Редактирование приостанавливается во время выполнения. Результат попадает в окно как любое другое изменение: несохранённый и на один шаг отмены, с временем и оценкой каждого этапа и слагаемыми оценки, которые имеют наибольший вес. phases to run и settings записывают [engine] в топологию (phases, rounds, place_rounds, [engine.place] seed, [engine.access] via_in_pad, [engine.global], [engine.detail]), а default снова удаляет настройку. Выбранный компонент с 16 и более контактными площадками имеет pinswap, который ищет перестановки его входов-выходов, как agentee pinswap, и записывает их в файлы схемы при write to the schematic.

Общие компоненты рисуются из посадочного места без загрузки модели: чип-резисторы, конденсаторы, дроссели, светодиоды и диоды (названия с размером Metric), вертикальные штыревые разъёмы и гнёзда, корпуса SOIC, SOT, QFP, QFN, DFN, SON, TSLP и BGA, кварцевые резонаторы и генераторы, разъёмы SMA для монтажа на край, а также рамы экранирования (Shield в названии или описании), которые рисуются без крышки. Корпусом служит контур F.Fab, высота берётся из height, части _h1.25mm в названии или семейства корпуса, а выводы располагаются на контактных площадках за пределами корпуса. Отверстия для монтажа, реперы, тестовые точки на площадках, перемычки для пайки и посадочные места Tag-Connect не получают корпуса. Файл модели в проекте (3dmodels/ или путь относительно него) всё равно имеет приоритет над сгенерированным компонентом; agentee models пропускает сгенерированные.

Модели имеют формат STEP или VRML и размещаются так же, как в KiCad (model_offset, model_rotate, model_scale). Путь к модели ищется в том виде, как задан, затем в KICAD9_3DMODEL_DIR и аналогичных переменных, в 3dmodels/ проекта, в ~/.cache/agentee/3dmodels и в /usr/share/kicad/3dmodels, пробуя расширения .step, .stp и .wrl, с gzip-сжатием или без. Моделью может быть и URL https:// на файл STEP или VRML, поэтому модели поставщиков не обязательно коммитить: файл скачивается один раз в ~/.cache/agentee/3dmodels/url/ и считается собственной моделью проекта, поэтому имеет приоритет над сгенерированным компонентом. Привяжите URL к коммиту или релизу, чтобы файл не мог измениться под вами. Модели из библиотек KiCad, которых нет на диске, скачиваются из репозитория kicad-packages3D в кэш: agentee models (MCP models) скачивает их все и сообщает, что найдено, а просмотрщик скачивает в фоне. Компонент без модели представляется коробкой над контуром завода высотой height, иначе высота угадывается из названия посадочного места. Файлы STEP триангулируются с помощью truck, с цветами из стилизованных элементов и применением позиций сборки. Рёбра используют 3D-кривую каждой кривой поверхности, а не её pcurves. Неограниченные B-сплайновые кривые и поверхности обрезаются до их валидного диапазона узлов. Кривая ребра, которая всё ещё не вычисляется в конечные точки, триангулируется как прямая линия, а грань, поверхность которой не вычисляется, исключается.

agentee export pcb:NAME -o NAME.step (MCP export) записывает топологию как одно STEP-сборочное дерево (AP214) для CAD корпуса. Плата представляет собой твёрдое тело толщиной стека слоёв с отверстиями под контактные площадки, прорезями и вырезами; переходные отверстия исключаются. Каждый компонент является экземпляром, названным по его обозначению: STEP-модель вставляется так, как её записал поставщик, с сохранением твёрдых тел, цветов и под-сборок, и записывается один раз, сколько бы компонентов её ни использовали. Модели VRML и сгенерированные корпуса вставляются как фасетчатые поверхности, а компонент без модели вообще как коробка над контуром завода. Система координат соответствует топологии с осью Y вверх и нижней гранью платы на z = 0, поэтому компонент на верхней стороне начинается с толщины платы. Отчёт перечисляет использованные файлы STEP, количество фасетчатых компонентов, компоненты, нарисованные как коробки, и модели, которые не были найдены.

Контактные площадки получают цепи из схемы (номер площадки = номер вывода). Полигоны заполняются с учётом зазоров до всех остальных цепей и до края платы, а острова, не достигающие ничего, удаляются. Проверка сообщает о нераспределённых соединениях (с линиями связей), замыканиях, нарушениях зазоров, проводниках уже, чем требует их класс, или не соответствующих ширине импеданса, меди у края, пересечениях courtyards, не размещённых компонентах, концах проводников, не соединённых ни с чем, а также о шелкографии, которая перекрывает другой текст, пересекает контур шелкографии, находится на контактной площадке или выходит за пределы платы. Courtyards, это замкнутые контуры, нарисованные на F.CrtYd / B.CrtYd, которые размещаются вместе с компонентом (courtyard компонента на нижней стороне попадает на другую сторону). Ошибка, если courtyards двух компонентов пересекаются на одной стороне, а также если courtyard на любой стороне перекрывает отверстие NPTH другого компонента или courtyard посадочного места MountingHole* (его контур площадки, если courtyard отсутствует). При совпадении имён указывайте тип элемента: agentee render pcb:lna, sch:lna, board:lna.

docs/format.md · Markdown для агентов