Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Русский | English | Deutsch

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

Сглаженный микрополосковый переход в 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.

  • Алгоритм работы:
    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. Клонируйте репозиторий локально:
    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 для получения подробной информации.

About

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.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages