Catalog · How the catalog works
altium-scripts
Collection of DelphiScript/Pascal automation scripts for Altium Designer, specializing in PCB layout optimization, RF/microwave microstrip taper synthesis, and discrete slice merging into solid regions.
- ★ 2 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
Набор скриптов автоматизации для Altium Designer

Описание репозитория
Данный репозиторий содержит коллекцию специализированных скриптов (DelphiScript / Pascal) для системы автоматизированного проектирования Altium Designer, ориентированных на решение задач автоматизации топологического проектирования, геометрической оптимизации и подготовки высокочастотных (СВЧ/RF) печатных плат.
Основной фокус текущих решений направлен на автоматическое объединение дискретных геометрических сегментов (Fills, Tracks) и синтез согласованных микрополосковых переходов (ступенчатых и гладко-конусных трансформаторов импеданса) в монолитные полигональные объекты типа Solid Region (IPCB_Region) с сохранением электрических цепей (Nets) и сигнальных слоев (Layers).
Структура проекта
├── .gitignore
├── LICENSE
├── README.de.md
├── README.en.md
├── README.md
├── docs/
│ └── images/
│ ├── rf_taper_discrete_slices_selected.png # Выделение исходных дискретных сегментов в PCBDoc
│ ├── rf_taper_stepped_solid_region.png # Результат точного ступенчатого слияния (1:1)
│ ├── rf_taper_smooth_solid_region.png # Результат гладкого конусного перехода (Taper)
│ └── rf_taper_pcb_full_view.png # Общий вид топологии печатной платы с переходом
└── scripts/
└── rf_transitions/
├── merge_slices_to_exact_region.pas # Слияние ступеней в точный ступенчатый Solid Region
└── merge_slices_to_smooth_region.pas # Преобразование ступеней в плавный конусный Solid RegionОписание скриптов и алгоритмический базис
При проектировании СВЧ-устройств ступенчатые и конусные переходы часто рассчитываются в аналитических пакетах (Mathcad, MATLAB) или электродинамических симуляторах (CST Studio Suite, HFSS) и импортируются в САПР в виде набора дискретных полос и прямоугольников. Ручное объединение и редактирование таких сегментов в Altium Designer трудоемко и может приводить к ошибкам DRC и паразитным фасеточным разрывам.
Скрипты модуля rf_transitions автоматизируют этот процесс на уровне объектной модели Altium API (PCBServer).
1. Точное ступенчатое слияние (merge_slices_to_exact_region.pas)
Скрипт выполняет слияние выделенных примитивов (eFillObject, eTrackObject) в единый полигон с точным сохранением всех промежуточных координат и ступенчатых границ 1:1.
-
Алгоритм работы:
- Обход выделенных объектов через
IPCB_BoardIteratorи извлечение граничных координат $[X_1, X_2, Y_1, Y_2]$ с учетом толщины проводников дляeTrackObject. - Сортировка сегментов слева направо вдоль продольной оси $X$.
- Формирование замкнутого математического контура
IPCB_Contourс помощью фабрикиPCBServer.PCBContourFactory:- Фиксация левого торца $(X_{1,0}, Y_{1,0}) \rightarrow (X_{1,0}, Y_{2,0})$.
- Построение верхней ступенчатой кромки с добавлением угловых точек перепада ширины.
- Фиксация правого торца $(X_{2,N}, Y_{1,N})$.
- Построение нижней ступенчатой кромки в обратном направлении.
- Фиксация левого торца $(X_{1,0}, Y_{1,0}) \rightarrow (X_{1,0}, Y_{2,0})$.
- Генерация объекта
IPCB_Region(eRegionObject), перенос атрибутов цепи (TargetNet) и слоя (TargetLayer), удаление исходных кусочков и регенерация отображения.

- Обход выделенных объектов через
2. Синтез плавного конусного перехода (merge_slices_to_smooth_region.pas)
Скрипт преобразует дискретный ступенчатый переход в монолитный гладкий конусный согласующий трансформатор (Taper transition), устраняющий паразитные емкостные и индуктивные скачки на ступенях.
-
Алгоритм работы:
- Извлечение и сортировка геометрии исходных ступеней по оси $X$.
- Построение сглаженного контура без ортогональных уступов: при обнаружении перепада ширины между смежными сегментами строятся прямые диагональные линии, соединяющие крайние точки соседних ступеней.
- Сохранение плоских торцевых участков на входе и выходе для корректной стыковки с подводящими микрополосковыми линиями передачи.
- Формирование полигона
eRegionObject, перенос электрических связей и очистка исходных примитивов.

Порядок запуска в Altium Designer
Подготовка и установка
- Клонируйте репозиторий локально:
git clone https://github.com/AiuRat/altium-designer-scripts.git - Откройте проект платы (
*.PcbDoc) в Altium Designer.
Выполнение операции
-
В редакторе PCB выделите группу стыкующихся объектов (
FillsилиTracks), образующих переход:
-
В главном меню Altium Designer выберите File $\rightarrow$ Run Script... (или нажмите сочетание клавиш
Alt + F11/DXP -> Run Script). -
Нажмите Browse... и выберите требуемый файл скрипта (
merge_slices_to_exact_region.pasилиmerge_slices_to_smooth_region.pas). -
В окне списка процедур выберите соответствующую процедуру:
MergeSelectedSlicesToRegion— для точного ступенчатого контура.MergeSelectedSlicesToSmoothRegion— для сглаженного конусного перехода.
-
Нажмите OK. Скрипт сформирует монолитный полигон, назначит ему исходную цепь и автоматически обновит рабочую область.
Лицензия
Copyright (c) 2026 Айрат Ялалетдинов
Этот исходный документ описывает открытое аппаратное обеспечение (Open Hardware) и распространяется под лицензией CERN-OHL-P v2. Вы можете распространять и изменять этот исходный документ, а также производить на его основе продукты в соответствии с условиями лицензии CERN-OHL-P v2 (https://cern.ch/cern-ohl))
Этот исходный документ распространяется БЕЗ КАКИХ-ЛИБО ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, УДОВЛЕТВОРИТЕЛЬНОГО КАЧЕСТВА ИЛИ СООТВЕТСТВИЯ КОНКРЕТНЫМ ЦЕЛЯМ. Пожалуйста, ознакомьтесь с условиями CERN-OHL-P v2 для получения подробной информации.

