В САПР Altium Designer (AD) учёт конструкторско-технологических параметров обеспечивается системой Правил и ограничений. Данная система представляет собой набор правил, каждое из которых предназначено для контроля определённого параметра.
Каждое правило определяет два основных аспекта контроля параметров: область применения и ограничение. Ограничение – это конструкторско-технологический параметр, задаваемый с помощью определённых опций (минимальная ширина проводника, минимальный зазор, параметры переходных отверстий и т.п.), а область применения – топологические объекты, к которым применяется правило. В неё могут быть включены как отдельные топологические элементы: переходные отверстия, регионы, контактные площадки и т.п., – так и целые группы: цепи со всеми входящими в неё объектами, группы цепей, слои и наборы слоёв, классы и т.д.
Особую роль в формировании области применения играют классы. Они представляют собой определяемые пользователем группы, объединяющие однотипные объекты: цепи, контактные площадки, компоненты и т.п. Благодаря этому значительно облегчается процесс определения области применения. Более подробно об этом речь пойдёт далее.
Классы
В первую очередь следует рассмотреть основные принципы работы с классами. Главный инструмент управления ими – редактор классов Object Class Explorer – доступен в редакторе печатных плат (ПП) по команде Design → Classes (горячие клавиши D → C) (см. рис. 1).

В левой части окна редактора расположена область, в которой в виде дерева отображаются все доступные в AD типы классов и все классы, присутствующие в текущем проекте. Они разделены по группам в соответствии со своим типом:
- Net Classes – классы цепей;
- Component Classes – классы компонентов;
- Layer Classes – классы слоёв;
- Pad Classes – классы контактных площадок;
- From To Classes – классы From To;
- Differential Pair Classes – классы дифференциальных цепей;
- Design Channel Classes – классы каналов;
- Polygon Classes – классы полигонов;
- Structure Classes – классы структур;
- xSignal Classes – классы цепей типа xSignal.
В редакторе отображаются как пользовательские классы, так и системные. Последние выделены фигурными скобками. Они недоступны для редактирования и их состав динамически меняется при манипуляции объектами ПП.
При выборе в древовидной структуре любого из классов в правой части окна отображаются поля Non-Members и Members. Поле Non-Members содержит не входящие в текущий класс объекты, а поле Members – входящие. Над полями находятся фильтры объектов. Для формирования класса предназначены расположенные между полями кнопки:
– добавить в текущий класс все объекты;
– добавить в текущий класс объекты, выделенные в поле Non-Members;
– удалить из текущего класса объекты, выделенные в поле Members;
– удалить из текущего класса все объекты;
– добавить в текущий класс объекты, предварительно выделенные в рабочем окне редактора ПП;
– удалить из текущего класса объекты, предварительно выделенные в рабочем окне редактора ПП.
Две последние кнопки предназначены для добавления в класс или удаления из него объектов «на лету» из рабочего окна редактора ПП. В данном случае процесс корректировки класса выглядит следующим образом:
- Выделение в рабочем окне ПП требуемых объектов.
- Запуск редактора классов.
- Выбор нужного класса.
- Добавление или удаление объектов, выделенных на первом шаге, с помощью соответствующих кнопок.
Если в древовидной структуре с помощью левой клавиши мыши (ЛКМ) выбрать тип класса или заголовок Object classes, то справа отобразится список или классов текущего типа, или всех присутствующих в проекте классов соответственно. В любом случае двойным щелчком ЛКМ по классу можно перейти непосредственно к нему.
Чтобы добавить новый класс, необходимо щёлкнуть правой клавишей мыши (ПКМ) в древовидной структуре и в выпадающем меню выбрать пункт Add Class. После этого остаётся лишь задать имя класса, и можно приступать к его формированию. Чтобы удалить класс, нужно щёлкнуть по нему ПКМ и в выпадающем меню выбрать пункт Delete Class. Аналогичным способом можно переименовывать классы с помощью пункта Rename Class [1].

В нижнем левом углу окна Object Class Explorer расположена кнопка Component Class Generator. Она доступна только тогда, когда в древовидной структуре выбран один из пользовательских классов компонентов, и предназначена для формирования класса компонентов с помощью фильтров. После её нажатия открывается окно Component Class Generator (см. рис. 2). В левой части окна расположены фильтры:
- Designator – по позиционным обозначениям;
- Comment – по содержимому параметра Comment;
- Footprint – по посадочным местам;
- Layer – по стороне расположения компонентов;
- Rotation – по повороту компонентов;
- Locked – по блокировке компонентов;
- Selection – по выбору компонентов в рабочем окне поля ПП.
В правой части окна Object Class Explorer сверху расположена строка имени класса. Ниже – поле, отображающее состав класса. Чтобы сформировать класс, необходимо настроить фильтры и нажать расположенную в центре кнопку Add Matching. После этого остаётся лишь задать имя класса. Для удаления компонентов из класса необходимо выбрать соответствующие компоненты в правом поле и щёлкнуть ЛКМ на кнопке Clear Selected [2].
Управлять классами также можно с помощью вкладки Nets панели PCB. Чтобы добавить класс, необходимо в поле классов цепей щёлкнуть ПКМ и в выпадающем меню выбрать пункт Add Class, после чего откроется окно Edit Net Class (см. рис. 3).

В верхней части окна расположена строка ввода Name, предназначенная для ввода имени класса. В остальном работа с данным окном полностью аналогична описанным ранее принципам работы с редактором классов. Чтобы удалить класс с помощью панели PCB, необходимо в поле классов цепей щёлкнуть ПКМ по удаляемому классу и в выпадающем меню выбрать пункт Delete Class. Чтобы отредактировать определённый класс, достаточно совершить по нему двойной щелчок ЛКМ, в результате чего также откроется окно Edit Net Class (см. рис. 3).
Цепи можно «на лету» добавлять в соответствующие классы из рабочего окна редактора ПП. Для этого нужно выделить их в окне редактора ПП или на вкладке Nets панели PCB, а потом щёлкнуть на выделенном ПКМ, в выпадающем меню раскрыть подменю Net Actions и выбрать один из пунктов:
- Create NetClass from Selected Nets – создать новый класс с добавлением выбранных цепей (откроется окно Object Class Name для ввода имени нового класса);
- Add Selected Nets to NetClass – добавить выбранные цепи в существующий класс (откроется окно Choose Net Class для выбора класса);
- Remove Selected Nets from NetClass – удалить выбранные цепи из классов [3, 4].
Определение классов на этапе схемотехнического проектирования
Очевидно, что зачастую гораздо логичнее определять классы цепей, а в некоторых случаях – и классы компонентов на этапе схемотехнического проектирования. Здесь необходимо заметить, что классы относятся к файлам ПП и непосредственно в схемном редакторе формируются не они, а условия для их формирования. При этом сами классы, определяемые с помощью схем, формируются при передаче данных со схемы на ПП.
Чтобы в редакторе схем определить класс, к которому необходимо отнести компонент, последний должен содержать параметр ClassName, в значении которого нужно прописать имя соответствующего класса.
Для определения классов цепей предназначены директивы:
- Differential Pair – директива класса дифференциальных цепей;
- Parameter – директива класса цепей;
- Blanket – директива группового выбора цепей.
Рассмотрим подробно основные принципы работы с данными директивами.
Differential Pair
Директива Differential Pair предназначена для обозначения пары сигналов как дифференциальной цепи и определения класса дифференциальных цепей, к которому она должна быть добавлена. Чтобы воспользоваться такой возможностью, необходимо выполнить команду Place → Directives → Differential Pair (горячие клавиши P → V → F), после чего установить маркеры директивы на проводники положительного и отрицательного сигналов (см. рис. 4: слева изображены красные маркеры директивы Differential Pair, наименование сигналов выполнено по правилам). Помимо этого, необходимо придерживаться правила наименования сигналов дифференциальной цепи: оба сигнала должны быть названы идентично и отличаться только суффиксами: «_p» для положительного сигнала, «_n» для отрицательного (см. рис. 4).

На рисунке 5 изображена панель Properties в режиме директивы Differential Pair. В верхней части панели расположена область Location, в которой отображаются координаты директивы (строки ввода (X/Y)) и угол поворота (выпадающее меню Rotation). Ниже расположена область свойств Properties. Строка ввода Label содержит имя директивы, а с помощью опции Style можно изменить цвет маркера.

Ниже расположена область правил Rules, которая позволяет уже на этапе проектирования схем задавать правила. О работе с ними будет подробно рассказано в следующей статье, сейчас лишь обозначим основные принципы формирования правил в редакторе схем. Для добавления правила предназначена кнопка Add. После её нажатия откроется окно Choose Design Rule Type, в котором необходимо выбрать тип правила. Далее откроется окно с соответствующим набором опций, где необходимо выполнить настройки и закрыть его. После этого в поле Rule отобразится строка созданного правила. Чтобы отредактировать правило, необходимо либо дважды щёлкнуть ЛКМ по его строке, либо нажать кнопку с изображением карандаша. Нажатие кнопки с изображением корзины удаляет правило.
Бо¢льшую часть области Rule занимает таблица, в которой каждая строка соответствует отдельному правилу. Первый столбец содержит опцию видимости строки правила на схеме, второй – Name – имя правила, а третий – Value – значение. Непосредственно под таблицей расположены интерактивные строки, предназначенные для корректировки шрифта и положения строки правила в случае её видимости на схеме.
Под областью правил расположена область классов Classes. По умолчанию использование директивы Differential Pair определяет добавление дифференциальной цепи к системному классу <All Differential Pairs>. Область классов позволяет определить пользовательский класс дифференциальных цепей с добавлением к нему текущей цепи. Более того, директива Differential Pair позволяет определять также и классы цепей.
Область классов организована аналогично области правил. Отличие заключается в том, что первый столбец таблицы содержит не только опцию видимости строки класса на схеме, но и опцию её блокировки, второй столбец – Class Name – содержит имя класса, а третий – Class Type – тип класса.
Чтобы добавить новый класс, нужно щёлкнуть ЛКМ по кнопке Add и из выпадающего списка выбрать тип класса: Net Class – класс цепей или Diff. Pair Net Class – класс дифференциальных цепей. Далее в таблице отобразится строка класса с указанием его типа. Чтобы задать имя класса, необходимо щелчком ЛКМ активировать ячейку в столбце Class Name и вписать туда требуемое имя [5, 6].
Parameter Set
Директива Parameter Set предназначена для определения пользовательского класса цепей и добавления к нему сигналов. Чтобы использовать эту директиву, необходимо выполнить команду Place → Directives → Parameter Set (горячие клавиши P → V → M) и установить один или несколько маркеров на соответствующих цепях.
Использование директивы Parameter Set не налагает никаких правил на наименование сигналов, более того, отсутствует необходимость в каком-либо пользовательском наименовании вообще.
При использовании данной директивы пользователь должен сам указать, к какому классу необходимо добавить сигналы. Делается это с помощью области классов, расположенной в нижней части панели Properties в режиме директивы Parameter Set. Данный процесс аналогичен описанному ранее: для указания класса необходимо щёлкнуть ЛКМ по кнопке Add и в появившейся в таблице строке указать имя. Одна цепь может быть отнесена к нескольким классам. Количество классов цепей не ограничено. Необходимо иметь в виду, что надпись, которая отображается над маркером директивы, является именем директивы, а не класса.
Очевидно, что наборы свойств директив Differential Pair и Parameter Set очень близки – имеется только два отличия. Во-первых, в области Properties в случае директивы Parameter Set добавляется выпадающее меню Style, позволяющее изменить стиль отображения маркера директивы – сделать его маленьким и без имени. Во-вторых, в области классов отсутствуют возможность выбора типа классов и столбец Class Type [5, 6].
Blanket
Blanket является директивой группового выбора цепей. Её маркер представляет собой прямоугольник или полигон (см. рис. 6).

Чтобы использовать данную директиву, необходимо выполнить команду Place → Directives → Blanket (горячие клавиши P → V → L) и щелчками ЛКМ сформировать маркер. Сама по себе директива Blanket не определяет классы, она лишь указывает группу цепей. Чтобы с помощью данной директивы определить класс с добавлением к нему сигналов, необходимо «подцепить» к ней одну или несколько директив Differential Pair или Parameter Set и настроить их (см. рис. 6).
Для распределения действия директивы на соответствующие сигналы необходимо, чтобы её маркер охватывал полностью (как на рисунке 6) или хотя бы частично метки цепей или точки подключения. Если же маркер попадает на цепь, но не касается метки или точки подключения, то на такие цепи его действие распространяться не будет. К примеру, на рисунке 6 маркер директивы Blanket с подключённой к нему директивой дифференциальной цепи одновременно охватывает метки цепей P1_TXRXA…P1_TXRXD и частично попадает на цепи USART1… USART4. При этом к соответствующему классу с помощью этого маркера будут отнесены только цепи P1_TXRXA…P1_TXRXD.
В верхнем левом углу маркера директивы Blanket расположен небольшой треугольник. Щелчок ЛКМ по нему приводит к скрытию маркера директивы и, соответственно, прекращению её действия. Повторный щелчок ЛКМ по треугольнику разворачивает маркер и восстанавливает действие директивы.

На рисунке 7 изображена панель Properties в режиме директивы Blanket. Выпадающее меню Border Width позволяет изменить толщину линий маркера, а выпадающее меню Line Style – их стиль. В обоих случаях доступны стандартные значения редактора схем. Ниже расположены опции Border Color и Fill Color, с помощью которых можно выбрать цвета линий маркера и его заполнения соответственно. В самом низу области расположен пункт Collapse and Disable, выбор которого приводит к скрытию маркера и прекращению действия директивы [7, 8].
Передача данных о классах из редактора схем в редактор печатных плат
Вкладка Class Generation (см. рис. 8), которую можно найти в окне настроек проекта Project Options, предназначена для настройки и контроля процесса передачи данных о классах из редактора схем в редактор ПП. С помощью представленных здесь опций можно как настроить передачу данных о пользовательских классах, так и управлять автоматическим формированием классов и комнат на основе данных схем.

Окно Class Generation разделено на две области: выше расположена Automatically Generated Classes, опции которой отвечают за автоматическое формирование классов, ниже – User-Defined Classes, с помощью которой настраивается передача данных о пользовательских классах.
Область User-Defined Classes содержит три пункта:
- Generate Component Classes – включает передачу данных о пользовательских классах компонентов;
- Generate Rooms for Component Clas-ses – доступен при выборе пункта Generate Component Classes и предназначен для формирования комнат на основе пользовательских классов компонентов;
- Generate Net Classes – включает передачу данных о пользовательских классах цепей.
В верхней части области Automatically Generated Classes можно найти четыре пункта:
- Generate Net Classes for Busses – включает автоматическое формирование классов цепей на основе шин;
- Generate Net Separate Classes for Bus Section – доступен при выборе пункта Generate Net Classes for Busses и дополнительно к классам цепей на основе шин включает автоматическое формирование классов цепей на основе сегментов шин;
- Generate Net Classes for Components – включает автоматическое формирование классов цепей на основе компонентов;
- Generate Net Classes for Named Signal Harnesses – включает формирование классов цепей на основе наименованных жгутов.
Ниже расположена таблица. Она предназначена для автоматического формирования классов на основе листов схемы. Каждая строка таблицы соответствует одному из листов. Столбец Schematic Sheet отображает имя листа и путь к его файлу. Столбец Component Classes содержит пункты, выбор которых включает автоматическое формирование классов компонентов. При выборе такого пункта становится доступен расположенный рядом пункт в подстолбце Generate Rooms, который включает автоматическое формирование комнат на основе классов компонентов. Столбец Net Class содержит выпадающие меню, отвечающие за автоматическое формирование классов цепей. Здесь доступны следующие пункты:
- None – класс цепей не формируется;
- Local Nets Only – в автоматически формируемый класс цепей включаются только локальные для листа цепи;
- All Nets – в автоматически формируемый класс цепей включаются все цепи, упоминаемые на листе.
В столбце Structure Classes расположены пункты, отвечающие за автоматическое формирование классов структур [9].
На этом рассмотрение вопросов, связанных с созданием и управлением классами, можно считать завершённым. В следующей статье будут рассмотрены вопросы работы с правилами и применения классов в них, а также механизм контроля конструкторско-технологических параметров.
Литература
- Altium. Documentation. Object Class Explorer: www.altium.com
- Altium. Documentation. Component Class Generator: www.altium.com
- Altium. Documentation. PCB - Nets: www.altium.com
- Altium. Documentation. Edit Object Class: www.altium.com
- Altium. Documentation. Parameter Set: www.altium.com
- Altium. Documentation. Parameter Set Properties: www.altium.com
- Altium. Documentation. Blanket: www.altium.com
- Altium. Documentation. Blanket Properties: www.altium.com
- Altium. Documentation. Project Options - Class Generation: www.altium.com
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

