
Sprint Layout 6 – инструмент для проектирования печатных плат, который поддерживает макросы для автоматизации повторяющихся операций. Макросы позволяют сохранять последовательности действий (например, размещение компонентов, трассировку цепей или нанесение маркировки) и применять их к новым проектам. Это сокращает время разработки на 30–50% при работе с типовыми элементами, такими как разъемы, резисторные сборки или монтажные отверстия.
В отличие от встроенных библиотек, макросы в Sprint Layout 6 хранят не только графические данные, но и логику размещения: координаты, углы поворота, слои и параметры сетки. Например, макрос для SMD-резистора 0805 может включать не только посадочное место, но и правила автоматического выравнивания по сетке 0,1 мм. Это критично для серийного производства, где отклонения в 0,05 мм приводят к браку.
Для создания макроса требуется последовательно выполнить три шага: запись действий, редактирование параметров и сохранение в файл с расширением .l6m. Важно учитывать, что макросы не поддерживают условные операторы или циклы – они работают как линейные сценарии. Поэтому перед записью рекомендуется отключить привязку к сетке (View → Grid Snap) и использовать абсолютные координаты, чтобы избежать смещений при повторном применении.
Оптимальная практика – создавать макросы для элементов, встречающихся в проекте не менее 5–7 раз. Например, для платы с 20 одинаковыми светодиодными сборками макрос сократит время размещения с 15 минут до 2. При этом стоит избегать включения в макрос уникальных операций, таких как ручная трассировка или редактирование полигонов, – это снижает универсальность.
Подготовка рабочей среды для записи макросов
Перед началом записи макросов в Sprint Layout 6 убедитесь, что проект содержит все необходимые элементы для автоматизации. Откройте файл с платой или создайте новый с минимальным набором объектов: дорожками, контактными площадками и текстом. Это позволит избежать захвата лишних действий при записи. Удалите временные или вспомогательные элементы, которые не должны попасть в макрос, – например, направляющие линии или выделения.
Настройте параметры сетки и единицы измерения в соответствии с требованиями проекта. Перейдите в Настройки → Параметры документа и установите шаг сетки не менее 0,1 мм для точного позиционирования объектов. Если макрос будет использоваться для работы с SMD-компонентами, выберите метрическую систему (мм) и отключите привязку к сетке для свободного перемещения элементов. Эти настройки сохранятся в макросе и будут применены при его воспроизведении.
Проверьте горячие клавиши и панели инструментов. Запись макросов в Sprint Layout 6 фиксирует не только клики мышью, но и нажатия клавиш. Отключите сочетания, которые могут конфликтовать с действиями макроса, – например, Ctrl+Z (отмена) или Delete. Для удобства добавьте на панель инструментов кнопки Начать запись и Остановить запись через Вид → Панели инструментов → Настроить.
Создайте резервную копию проекта перед записью. Макросы в Sprint Layout 6 необратимы при воспроизведении, и ошибки в последовательности действий могут привести к потере данных. Сохраните файл под новым именем с суффиксом _macro_test и работайте только с этой копией. После успешной записи протестируйте макрос на чистом проекте, чтобы убедиться в его корректной работе.
Настройка горячих клавиш и параметров записи

В Sprint Layout 6 горячие клавиши для макросов настраиваются через меню *Настройки → Горячие клавиши*. Выберите действие из списка (например, *Запуск макроса* или *Остановка записи*), затем нажмите желаемую комбинацию клавиш. Избегайте конфликтов с системными сочетаниями (Ctrl+C, Alt+Tab) – используйте модификаторы Ctrl+Shift или Alt+Shift с функциональными клавишами (F1–F12). Для быстрого доступа к часто используемым макросам назначьте им уникальные сочетания, например, Ctrl+Shift+M для запуска и Ctrl+Shift+S для сохранения записи. Проверьте работоспособность клавиш в реальном режиме, так как некоторые комбинации могут игнорироваться из-за особенностей ОС.
Параметры записи макроса задаются в окне *Макрос → Запись макроса*. Установите флажок *Записывать относительные координаты*, если макрос должен работать с произвольными точками начала (например, при копировании элементов). Для точного повторения действий включите *Записывать задержки между шагами* – это критично при работе с медленными операциями, такими как трассировка или экспорт. Исключите из записи лишние клики мышью, выбрав *Игнорировать перемещения курсора*, если макрос не зависит от позиционирования. Сохраните настройки профиля записи через *Файл → Сохранить профиль*, чтобы не настраивать их повторно.
Запись последовательности действий в макрос

Откройте панель Макросы через меню Вид → Панели инструментов → Макросы. Нажмите кнопку Новый макрос – откроется окно записи. Перед началом убедитесь, что все необходимые элементы (дорожки, контактные площадки, текст) уже размещены на плате или подготовлены в библиотеке компонентов. Sprint Layout 6 фиксирует только действия, выполняемые мышью или горячими клавишами, но не учитывает перемещения курсора без кликов.
Запустите запись нажатием Начать запись. Выполняйте действия в строгой последовательности: например, размещение контактной площадки (Ctrl+P), рисование дорожки (Ctrl+T), изменение ширины линии через панель свойств. Избегайте случайных кликов – каждый шаг будет воспроизведён при запуске макроса. Для пауз используйте кнопку Пауза, но помните: слишком длинные перерывы могут исказить логику выполнения.
Закончив последовательность, нажмите Остановить запись. В окне редактирования макроса проверьте список команд: удалите лишние шаги, отредактируйте параметры (например, координаты или размеры) вручную. Сохраните макрос с понятным именем, например, «Размещение_разъема_USB_2x5». Для тестирования запустите его на чистом слое – если результат не совпадает с ожидаемым, перезапишите макрос, уточнив порядок действий.
Редактирование и оптимизация сохранённого макроса
Оптимизируйте макрос по следующим критериям:
- Минимизация размеров: удалите неиспользуемые слои (
Настройки → Слои) и обрежьте пустые области (Правка → Обрезать плату). Для сложных макросов используйте командуОптимизировать полигоны(менюИнструменты), чтобы уменьшить количество точек в заливках без потери формы. - Унификация: замените все текстовые метки на единый шрифт (например,
Arial Narrow, размер 1.2 мм) и выровняйте их по сетке. Для повторяющихся элементов (например, контактных площадок) создайте подмакросы (Макрос → Создать подмакрос) – это сократит время редактирования при масштабировании.
Экспортируйте оптимизированный макрос в формат .lmac с включённой опцией Сжать данные для уменьшения размера файла.
Добавление условных операций и циклов в макрос

В Sprint Layout 6 макросы поддерживают базовые конструкции для ветвления логики и повторяющихся действий. Условные операторы реализуются через команду IF с синтаксисом IF [условие] THEN [команда]. Например, проверка наличия слоя:
IF LAYER_EXISTS("Top") THEN SELECT_LAYER("Top")– активирует слой «Top», если он существует.- Условия могут включать сравнения:
IF WIDTH > 10 THEN SET_WIDTH(5)– уменьшает ширину дорожки до 5 мм, если текущая больше 10 мм.
Для сложных проверок используйте логические операторы AND, OR и NOT. Пример комбинированного условия:
IF (LAYER_EXISTS("Silk") AND NOT IS_SELECTED) THEN
SELECT_LAYER("Silk")
SET_COLOR(0xFF0000)
ENDIF
Циклы в макросах Sprint Layout 6 ограничены командой REPEAT с фиксированным числом итераций. Синтаксис: REPEAT [число] TIMES [команда]. Пример – размещение 8 контактных площадок с шагом 2.54 мм:
REPEAT 8 TIMES PLACE_PAD(0, CURRENT_Y + 2.54, 1.5, 0.8) ENDREPEAT
Для динамических циклов с проверкой условия используйте комбинацию REPEAT и IF с принудительным выходом через EXIT. Пример – размещение элементов до достижения границы платы:
SET_X(0) REPEAT 100 TIMES IF X > BOARD_WIDTH THEN EXIT PLACE_VIA(X, 10, 0.6) SET_X(X + 1.27) ENDREPEAT
Переменные в макросах задаются через SET и используются для управления циклами. Пример – создание массива отверстий с переменным шагом:
SET step = 2.0 SET count = 5 REPEAT count TIMES DRILL_HOLE(CURRENT_X + step, 15, 0.8) SET step = step + 0.5 ENDREPEAT
Обработка ошибок в условных операторах критична для стабильности макроса. Проверяйте корректность входных данных перед выполнением действий:
IF NOT IS_NUMERIC(width) THEN SET width = 1.0– задаёт значение по умолчанию, если переменная не число.
Вложенные циклы позволяют создавать двумерные структуры. Пример – сетка из 4×6 контактных площадок:
SET row_spacing = 3.0 SET col_spacing = 2.5 REPEAT 4 TIMES SET_Y(CURRENT_Y + row_spacing) REPEAT 6 TIMES PLACE_PAD(CURRENT_X + col_spacing, CURRENT_Y, 1.2, 0.6) SET_X(CURRENT_X + col_spacing) ENDREPEAT SET_X(0) ENDREPEAT
Оптимизируйте циклы, минимизируя количество повторяющихся вычислений. Выносите неизменяемые параметры за пределы цикла:
SET pad_diameter = 1.0 SET hole_diameter = 0.5 REPEAT 10 TIMES PLACE_PAD(X, Y, pad_diameter, hole_diameter) SET_X(X + 2.54) ENDREPEAT
Сохранение и экспорт макросов для повторного использования

Для экспорта макроса с целью передачи коллегам или использования на другом ПК выполните следующие шаги:
- Откройте проект, содержащий нужный макрос.
- Перейдите в Инструменты → Менеджер макросов.
- Выделите макрос в списке и нажмите Экспорт.
- Выберите формат
.lmacи подтвердите сохранение.
При экспорте учитывайте, что макрос не сохраняет привязку к библиотекам компонентов Sprint Layout – если в нём используются сторонние элементы (например, корпуса из .lpp), их потребуется передать отдельно или заменить на стандартные.
Для импорта макроса в новый проект используйте Файл → Импорт → Макрос. После загрузки проверьте:
- Корректность привязки слоёв (особенно если проект использует нестандартные слои).
- Совместимость с текущей версией Sprint Layout – макросы, созданные в версии 6.0, могут некорректно отображаться в 5.0.
- Отсутствие дубликатов при импорте одноимённых макросов (программа предложит заменить или переименовать файл).
Если макрос содержит динамические параметры (например, изменяемые размеры), настройте их заново через Свойства макроса после импорта.
Тестирование макроса на типовых задачах

Первым этапом проверьте макрос на простых геометрических фигурах: окружностях диаметром 0.8–3.2 мм, квадратах со стороной 1.5–5 мм и линиях шириной 0.2–1 мм. Запустите макрос в режиме отладки (Debug Mode) с шагом 0.1 мм для контроля точности позиционирования. Если смещение элементов превышает 0.05 мм, скорректируйте параметры Grid Snap или пересчитайте координаты в скрипте с учётом разрешения экспорта (например, 2540 DPI для Gerber).
Для проверки функциональности на реальных проектах используйте тестовые платы с SMD-компонентами типоразмеров 0402, 0603 и 0805. Макрос должен корректно размещать пады с зазорами не менее 0.2 мм между ними и автоматически выравнивать их по сетке 0.05 мм. При ошибках в позиционировании проверьте переменные $X_POS и $Y_POS в коде – они должны учитывать размеры корпуса компонента и ширину дорожек (например, 0.3 мм для сигнальных линий).
Тестируйте макрос на задачах с повторяющимися элементами: массивы контактных площадок (например, 2×10 для разъёмов) или группы резисторов. Убедитесь, что цикл for в скрипте корректно обрабатывает инкремент координат и не создаёт наложений. Для проверки используйте инструмент Design Rule Check с параметрами: минимальный зазор 0.15 мм, минимальная ширина дорожки 0.2 мм. Логи ошибок сохраняйте в файл для последующего анализа.
Последний этап – проверка на сложных трассировках: дифференциальные пары с зазором 0.254 мм, полигоны с термобарьерами и переходные отверстия диаметром 0.4–0.6 мм. Макрос должен сохранять целостность полигонов при автоматическом добавлении элементов, не нарушая правила заливки (Thermal Relief с шириной спиц 0.3 мм). Если макрос модифицирует существующие объекты, экспортируйте проект до и после выполнения в Gerber и сравните слои в CAM-редакторе (например, ViewMate) на предмет артефактов.
Устранение ошибок и корректировка макросов

Ошибки в макросах Sprint Layout 6 часто возникают из-за неверного синтаксиса команд или неправильной последовательности действий. Первым шагом диагностики станет проверка лога выполнения: откройте окно Макрос → Показать лог и проанализируйте сообщения об ошибках. Типичные проблемы – отсутствие закрывающих скобок в выражениях SetLayer() или некорректные координаты в PlacePad(). Например, если макрос завершается с ошибкой Invalid parameter at line 5, проверьте строку на соответствие формату: PlacePad("1", 10.5, 20.3, 1.2) – все параметры должны быть числовыми.
Частая проблема – несовпадение слоёв при размещении элементов. Если макрос игнорирует команду SetLayer("Top"), убедитесь, что слой с таким именем существует в проекте. Проверьте список слоёв через Проект → Слои и скорректируйте название в макросе. Для динамического выбора слоя используйте индексы: SetLayer(1) вместо имени. В таблице ниже приведены стандартные индексы слоёв в Sprint Layout 6:
| Индекс | Слой | Назначение |
|---|---|---|
| 0 | Top Copper | Верхний слой меди |
| 1 | Bottom Copper | Нижний слой меди |
| 2 | Top Silkscreen | Верхний шелкографический слой |
| 3 | Bottom Silkscreen | Нижний шелкографический слой |
| 4 | Drill | Сверловка |
Ошибки в циклах For или While часто связаны с бесконечным выполнением. Если макрос зависает, прервите его через Esc и проверьте условие выхода из цикла. Например, в конструкции For i = 1 To 10 убедитесь, что переменная i инкрементируется. Для отладки добавьте счётчик итераций: If i > 100 Then Exit For – это предотвратит зацикливание.
При работе с пользовательскими диалогами (InputBox) проверяйте ввод на корректность. Если макрос ожидает число, а пользователь вводит текст, используйте обработку исключений: Try: X = Val(InputBox("Введите X")) Catch: MessageBox("Ошибка ввода") End Try. Это предотвратит аварийное завершение. Для сложных диалогов создавайте формы с валидацией через CreateForm() и проверяйте значения перед использованием.
Проблемы с размещением компонентов часто возникают из-за неверных размеров посадочных мест. Если макрос устанавливает контактные площадки с нулевым диаметром, проверьте параметры в PlacePad(). Минимальный допустимый диаметр – 0.1 мм. Для проверки используйте команду GetPadSize() и сравнивайте результат с ожидаемым. Пример корректного вызова: PlacePad("1", 15.0, 10.0, 1.5, 0.8), где 1.5 – диаметр площадки, 0.8 – диаметр отверстия.
Если макрос работает медленно, оптимизируйте его структуру. Избегайте повторных вызовов функций в циклах – вынесите их в переменные. Например, вместо For i = 1 To 100: PlacePad("1", GetX(), GetY(), 1.0): Next используйте x = GetX(): y = GetY(): For i = 1 To 100: PlacePad("1", x, y, 1.0): Next. Это сократит время выполнения в 2–3 раза. Также отключайте обновление экрана во время работы макроса: SetRedraw(False) в начале и SetRedraw(True) в конце.
Для сохранения работоспособности макросов при обновлении Sprint Layout 6 используйте относительные координаты вместо абсолютных. Например, вместо PlacePad("1", 50.0, 30.0, 1.2) применяйте PlacePad("1", GetBoardWidth()/2, GetBoardHeight()/2, 1.2). Это гарантирует корректное размещение элементов независимо от размеров платы. При переносе макросов между проектами проверяйте наличие всех используемых слоёв и компонентов – отсутствие одного из них приведёт к ошибке.