Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

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.

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Русский | English | Deutsch

Набор скриптов автоматизации для Altium Designer

Сглаженный микрополосковый переход в Altium Designer

Описание репозитория

Данный репозиторий содержит коллекцию специализированных скриптов (DelphiScript / Pascal) для системы автоматизированного проектирования Altium Designer, ориентированных на решение задач автоматизации топологического проектирования, геометрической оптимизации и подготовки высокочастотных (СВЧ/RF) печатных плат.

Основной фокус текущих решений направлен на автоматическое объединение дискретных геометрических сегментов (Fills, Tracks) и синтез согласованных микрополосковых переходов (ступенчатых и гладко-конусных трансформаторов импеданса) в монолитные полигональные объекты типа Solid Region (IPCB_Region) с сохранением электрических цепей (Nets) и сигнальных слоев (Layers).


Структура проекта

text
├── .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.

  • Алгоритм работы:

    1. Обход выделенных объектов через IPCB_BoardIterator и извлечение граничных координат $[X_1, X_2, Y_1, Y_2]$ с учетом толщины проводников для eTrackObject.
    2. Сортировка сегментов слева направо вдоль продольной оси $X$.
    3. Формирование замкнутого математического контура IPCB_Contour с помощью фабрики PCBServer.PCBContourFactory:
      • Фиксация левого торца $(X_{1,0}, Y_{1,0}) \rightarrow (X_{1,0}, Y_{2,0})$.
        • Построение верхней ступенчатой кромки с добавлением угловых точек перепада ширины.
        • Фиксация правого торца $(X_{2,N}, Y_{1,N})$.
        • Построение нижней ступенчатой кромки в обратном направлении.
    4. Генерация объекта IPCB_Region (eRegionObject), перенос атрибутов цепи (TargetNet) и слоя (TargetLayer), удаление исходных кусочков и регенерация отображения.

    Ступенчатый монолитный Solid Region

2. Синтез плавного конусного перехода (merge_slices_to_smooth_region.pas)

Скрипт преобразует дискретный ступенчатый переход в монолитный гладкий конусный согласующий трансформатор (Taper transition), устраняющий паразитные емкостные и индуктивные скачки на ступенях.

  • Алгоритм работы:

    1. Извлечение и сортировка геометрии исходных ступеней по оси $X$.
    2. Построение сглаженного контура без ортогональных уступов: при обнаружении перепада ширины между смежными сегментами строятся прямые диагональные линии, соединяющие крайние точки соседних ступеней.
    3. Сохранение плоских торцевых участков на входе и выходе для корректной стыковки с подводящими микрополосковыми линиями передачи.
    4. Формирование полигона eRegionObject, перенос электрических связей и очистка исходных примитивов.

    Гладкий конусный Solid Region


Порядок запуска в Altium Designer

Подготовка и установка

  1. Клонируйте репозиторий локально:
    bash
    git clone https://github.com/AiuRat/altium-designer-scripts.git
  2. Откройте проект платы (*.PcbDoc) в Altium Designer.

Выполнение операции

  1. В редакторе PCB выделите группу стыкующихся объектов (Fills или Tracks), образующих переход:

    Выделение исходных сегментов

  2. В главном меню Altium Designer выберите File $\rightarrow$ Run Script... (или нажмите сочетание клавиш Alt + F11 / DXP -> Run Script).

  3. Нажмите Browse... и выберите требуемый файл скрипта (merge_slices_to_exact_region.pas или merge_slices_to_smooth_region.pas).

  4. В окне списка процедур выберите соответствующую процедуру:

    • MergeSelectedSlicesToRegion — для точного ступенчатого контура.
    • MergeSelectedSlicesToSmoothRegion — для сглаженного конусного перехода.
  5. Нажмите OK. Скрипт сформирует монолитный полигон, назначит ему исходную цепь и автоматически обновит рабочую область.


Лицензия

Copyright (c) 2026 Айрат Ялалетдинов

Этот исходный документ описывает открытое аппаратное обеспечение (Open Hardware) и распространяется под лицензией CERN-OHL-P v2. Вы можете распространять и изменять этот исходный документ, а также производить на его основе продукты в соответствии с условиями лицензии CERN-OHL-P v2 (https://cern.ch/cern-ohl))

Этот исходный документ распространяется БЕЗ КАКИХ-ЛИБО ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, УДОВЛЕТВОРИТЕЛЬНОГО КАЧЕСТВА ИЛИ СООТВЕТСТВИЯ КОНКРЕТНЫМ ЦЕЛЯМ. Пожалуйста, ознакомьтесь с условиями CERN-OHL-P v2 для получения подробной информации.