Работа с языком запросов
Altium Essentials: PCB Global Editing and List Panel
This content is part of the official Altium Professional Training Program. For full courses, materials and certification, visit Altium Training.
Что такое запрос?
Пожалуй, самая большая сложность при работе со сложным электронным проектом — управление большим количеством объектов проектирования. От компонентов, меток цепей и текстовых строк на листах схемы до сотен компонентов и дорожек, из которых состоит трассировка на печатной плате, вам нужно иметь возможность получать доступ к этим объектам, просматривать и редактировать их. Как и в большинстве приложений Windows, вы можете дважды щёлкнуть по объекту и отредактировать его свойства. Это удобно для одного объекта, но не подходит, если нужно отредактировать 300+ строк позиционных обозначений компонентов или изменить все переходные отверстия на плате. Для таких обновлений требуется доступ сразу к нескольким объектам.
В основе редакторов схем и PCB в Altium Designer лежит мощный механизм запросов. Вводя запросы в этот механизм, вы можете отфильтровать объекты, чтобы найти и отредактировать именно те, которые вам нужны.
Мощная система фильтрации и редактирования данных в Altium Designer позволяет указать программе вернуть заданный набор объектов. Это указание вводится в виде запроса. Запрос — это строка, которую вы вводите с использованием определённых ключевых слов и синтаксиса и которая возвращает целевые объекты. Что делать с этими объектами — решать вам. Возможно, вы хотите подсветить их и приглушить все остальные объекты, или, возможно, хотите просмотреть или отсортировать их свойства и изменить определённые общие для них атрибуты.
Существует несколько мест, где можно применить запрос, но главным центром управления являются Filter панели, показанные на изображениях ниже. Нажмите F12, чтобы показать/скрыть панель Filter .
Панели PCB Filter и SCH Filter с запросами

Панели PCBLIB Filter и SCHLIB Filter с запросами
Элементы управления на панели используются для определения, к каким объектам будет применён запрос, и как обрабатывать объекты, которые проходят запрос, а также те, которые его не проходят.
SCH Filter Panel

Быстро находите и подсвечивайте объекты с помощью логических запросов на панели SCH Filter.
Краткое описание
Панель SCH Filter позволяет создавать фильтры путём формирования логических запросов. Затем заданный фильтр можно применить к активному документу схемы или ко всем открытым документам схем, что позволяет выбирать и редактировать несколько объектов с большей точностью и эффективностью.
Доступ к панели
Открыть панель можно следующими способами:
- Нажмите кнопку Panels в правом нижнем углу редактора, когда активен SCH Editor, затем выберите SCH Filter во всплывающем меню.
- Нажмите View » Panels » SCH Filter.
- Нажмите F12 горячую клавишу.
Определение области действия фильтра
Первая область панели содержит элементы управления для задания области действия фильтра:
Область Limit search to предоставляет элементы управления для дополнительного уточнения области действия фильтра:
- All Objects - применить фильтр ко всем объектам проектирования.
- Selected Objects - применить фильтр только к тем объектам проектирования, которые сейчас выделены.
- Non Selected Objects - применить фильтр только к тем объектам проектирования, которые сейчас не выделены.
Выпадающее поле Consider objects in позволяет управлять тем, где применяется фильтр. Выберите один из следующих вариантов:
- Current Document - применить фильтрацию только к активному документу схемы (по умолчанию).
- Open Documents - применить фильтрацию ко всем открытым документам схем.
- Project Documents - применить фильтрацию ко всем открытым документам схем, которые являются исходными документами одного и того же родительского проекта.
Определение запросов фильтра
Центральная область панели позволяет создавать фильтры путём ввода логических запросов. Вы можете вводить запрос прямо в поле. По мере ввода будет появляться список подсказок с возможными ключевыми словами.
Доступен Query Helper, который помогает при создании запросов. Эта функция может быть очень полезна, если вы не уверены в синтаксисе запроса или в том, какие ключевые слова стоит использовать. Чтобы воспользоваться Query Helper, нажмите кнопку Helper, чтобы открыть диалог Query Helper. Базовый Query Engine анализирует документ и перечисляет все доступные объекты вместе с универсальными ключевыми словами для использования в запросах.
Используйте верхнюю часть диалога для составления выражения запроса, используя доступные SCH Functions и System Functions. Средняя часть диалога предоставляет набор операторов, используемых при построении выражения. Нажмите кнопку Check Syntax, чтобы проверить, что выражение синтаксически корректно.
Когда выражение запроса определено нужным образом, нажатие OK загрузит запрос в центральную область панели SCH Filter, и фильтр будет готов к применению.
Настройка подсветки фильтра
Перед применением запроса лучше определить, как результат фильтрации должен выглядеть визуально в рабочей области проекта. Области Objects passing/not passing the filter панели предоставляют различные параметры, которые вместе формируют настройки подсветки для постоянной фильтрации.
Параметры, доступные в области Objects passing the filter, позволяют управлять визуальным отображением в рабочей области всех объектов, которые попадают в область действия и соответствуют конкретному выражению запроса фильтра:
- Select - если включено (по умолчанию), отфильтрованные объекты будут выделены в рабочей области.
- Zoom - если включено (по умолчанию), отфильтрованные объекты будут масштабированы и центрированы (где возможно) в окне редактора проекта.
Параметры, доступные в области Objects not passing the filter, позволяют управлять визуальным отображением в рабочей области всех объектов, которые не попадают в область действия и/или не соответствуют конкретному выражению запроса фильтра:
- Deselect - если включено (по умолчанию), все объекты, не попадающие в область действия фильтра, будут сняты с выделения в рабочей области.
- Mask out - если включено (по умолчанию), отфильтрованные объекты будут полностью видимы в окне редактора проекта, а все остальные объекты будут приглушены. При применении маски все объекты вне области действия фильтра будут недоступны для выбора/редактирования.
Можно включить любую комбинацию этих параметров. Например, вы можете захотеть, чтобы все отфильтрованные объекты, попадающие в область действия вашего запроса, были масштабированы, центрированы и выделены в окне редактора проекта, одновременно применив маскирование, чтобы убрать визуальный «шум» от остальных объектов проекта.
Применение и очистка фильтра
После того как вы определили запрос и настроили параметры на панели, фильтр можно применить — либо нажав кнопку Apply, либо нажав Enter.
Чтобы очистить текущий применённый фильтр из панели, удалите выражение запроса в панели, затем либо нажмите кнопку Apply, либо нажмите Enter. Все объекты в рабочей области проекта станут полностью видимыми и доступными для выбора/редактирования.
Контекстные меню (правый клик)
Щелчок правой кнопкой мыши внутри панели SCH Filter открывает доступ к дополнительным параметрам и командам через всплывающее меню.
Меню содержит следующие команды:
- Add to Favorites - добавить выражение запроса, отображаемое в данный момент в панели, в список избранных запросов. Запрос появится как новая запись на вкладке Favorites диалога Expression Manager. По мере добавления запроса в список избранного он будет отображаться в верхней части контекстного меню. В меню отображаются десять последних добавленных в избранное запросов (самый новый — сверху), что позволяет быстро получать доступ и повторно использовать ваши любимые выражения запросов.
- Organize Favorites - используйте эту команду, чтобы открыть вкладку Favorites диалога Expression Manager, в которой вы можете упорядочивать (переименовывать, удалять) записи в списке избранных запросов по мере необходимости.
- Examples - нажмите для доступа к подменю с предопределёнными примерами фильтров. Выбор примера фильтра загрузит соответствующее базовое выражение запроса в центральную область панели.
- History - нажмите для доступа к подменю, содержащему девять последних использованных выражений запросов, взятых из списка истории запросов панели. Нажмите пункт More, чтобы открыть вкладку History диалога Expression Manager, где можно просматривать и применять запрос из полного списка исторических запросов, а также при необходимости очищать список истории.
Примечания
Общие
- Нажатие клавиши F12 переключает видимость панели в рабочей области.
- При использовании диалога Query Helper для построения запроса щелчок внутри введённого ключевого слова или по ключевому слову в одном из доступных списков и нажатие F1 откроет справку по соответствующему ключевому слову. Аналогичный доступ к справке на уровне ключевых слов доступен при щелчке внутри ключевого слова в центральной области панели SCH Filter, затем нажатии F1.
- В зависимости от формы и размера панели содержимое будет динамически располагаться по горизонтали или по вертикали.
При построении выражений запросов
- Настоятельно рекомендуется использовать скобки всякий раз, когда существует хоть какая‑то вероятность того, что запрос может быть интерпретирован неверно.
-
Скобки имеют наивысший приоритет в порядке приоритетов, определённом для различных операторов, и этот порядок определяет, как программой интерпретируются запросы (когда вы не указали скобки). Последовательность этого порядка следующая:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
Этот порядок приоритетов похож на используемый в языках типа Pascal; щедрое использование скобок устраняет сомнения и делает итоговые запросы более понятными для других. - Неоднозначности разрешаются при обработке слева направо.
- Скобки вычисляются изнутри наружу, а равные уровни — слева направо.
- Поскольку параметры отображения для объектов, проходящих и не проходящих применённый фильтр, разделены, вы можете эффективно применять новые запросы фильтра, опираясь на результаты предыдущей фильтрации.
- Фильтрация, применяемая при использовании Queries из панели SCH Filter, является постоянной. При маскировании объектов проекта, не проходящих фильтр, степень маскирования регулируется ползунком в нижней части панели.
- Постоянный фильтр необходимо очистить, применив пустой запрос из панели SCH Filter.
SCHLIB Filter Panel
Быстро находите и подсвечивайте объекты библиотеки схем с помощью логических запросов в панели SCHLIB Filter.
Сводка
Панель SCHLIB Filter позволяет создавать фильтры путём формирования логических запросов. Затем заданный фильтр можно применить к активному компоненту библиотеки схем или ко всем компонентам в активной библиотеке схем, что позволяет выбирать и редактировать несколько объектов с большей точностью и эффективностью. Визуальное отображение объектов можно настроить отдельно для тех, которые соответствуют критериям поиска фильтра, и для тех, которые не соответствуют.
Доступ к панели
Панель открывается следующими способами:
- Нажмите кнопку Panels в правом нижнем углу рабочей области, затем выберите SCHLIB Filter.
- Выберите View » Panels » SCHLIB Filter в главном меню.
- Используйте сочетание клавиш F12.
Определение области действия фильтра
Левая область панели SCHLIB Filter содержит элементы управления для определения (ограничения) области действия фильтра.
Варианты области действия:
- All Objects - применить фильтр ко всем объектам проекта.
- Selected Objects - применить фильтр только к тем объектам проекта, которые сейчас выделены.
- Non Selected Objects - применить фильтр только к тем объектам проекта, которые сейчас не выделены.
- Whole Library - управлять тем, применяется ли фильтрация только к активному компоненту (опция отключена) или ко всем компонентам в активном документе библиотеки схем (опция включена).
Определение запросов фильтра
Центральная область панели SCHLIB Filter позволяет создавать фильтры путём ввода логических запросов.
Вы можете ввести запрос непосредственно в поле, и по мере ввода будет появляться список подсказок с возможными ключевыми словами.
Query Helper
Помимо списка подсказок, панель также предлагает средство Query Helper, помогающее при создании запросов. Это может быть очень полезно, если вы не уверены в синтаксисе запроса или в том, какие ключевые слова следует использовать. Чтобы воспользоваться Query Helper, нажмите кнопку Helper, чтобы открыть диалог Query Helper. Базовый Query Engine анализирует документ и выводит список всех доступных объектов вместе с общими ключевыми словами для использования в запросах.
Используйте верхнюю часть диалога, чтобы составить выражение запроса с помощью доступных SCH Functions и System Functions. Средняя область диалога предоставляет набор операторов для использования при построении выражения. Используйте кнопку Check Syntax, чтобы проверить синтаксическую корректность выражения.
Когда выражение запроса определено должным образом, нажмите OK, чтобы загрузить запрос в центральную область панели SCHLIB Filter. Примените фильтр кнопкой Apply.
При применении ко всей библиотеке выводы (pins), удовлетворяющие фильтру, будут подсвечены и для всех остальных компонентов.
Дополнительные сведения о применении фильтров см. в разделе Applying and Clearing a Filter ниже.
Определение подсветки фильтра
Перед применением запроса в панели SCHLIB Filter лучше определить, как вы хотите, чтобы результат фильтрации выглядел визуально в рабочей области редактора. Правая область панели предоставляет различные параметры, которые вместе образуют элементы управления подсветкой для постоянной фильтрации.
Параметры Objects passing the filter позволяют управлять тем, как все объекты, попадающие в область действия и соответствующие конкретному выражению запроса фильтра, будут визуально отображаться в рабочей области.
- Select - при включении (по умолчанию) отфильтрованные объекты будут выделены в рабочей области.
- Zoom - при включении (по умолчанию) отфильтрованные объекты будут масштабированы и центрированы (где возможно) в окне редактора библиотеки. Действие масштабирования можно определить параметрами Zoom Library Components, заданными на странице Schematic - Library AutoZoom диалога Preferences.
В свою очередь, параметры Objects not passing the filter позволяют управлять тем, как все объекты, которые do not попадают в область действия и/или соответствуют конкретному выражению запроса фильтра, будут визуально отображаться в рабочей области.
- Deselect - при включении (по умолчанию) все объекты, не попадающие в область действия фильтра, будут сняты с выделения в рабочей области.
- Mask out - при включении (по умолчанию) все объекты, не попадающие в область действия фильтра, будут замаскированы в окне редактора библиотеки. Используйте ползунок, чтобы задать уровень маскирования.
Применение и очистка фильтра
После того как вы определили запрос и настроили параметры панели, фильтр можно применить, нажав кнопку Apply на панели или клавишу Enter.
Чтобы очистить текущий применённый фильтр из панели, очистите (выделите и удалите) выражение запроса в центральной области панели, затем нажмите кнопку Apply или клавишу Enter. Все объекты в рабочей области проекта будут восстановлены до полной видимости и станут доступны для выбора/редактирования.
Чтобы очистить фильтрацию в рабочей области и оставить выражение запроса загруженным в центральной области панели, используйте кнопку Clear Current Filter на панели инструментов Sch Lib Standard (сочетание Shift+C).
Контекстное меню
Щелчок правой кнопкой мыши в панели SCHLIB Filter открывает доступ к дополнительным параметрам и командам через всплывающее меню.
Меню содержит следующие команды:
- Add to Favorites - используйте для добавления выражения запроса, отображаемого в центральной области панели, в список избранных запросов. Запрос появится как новая запись на вкладке Favorites диалога Expression Manager. После добавления запроса в список избранного он будет отображаться в верхней части контекстного меню. В меню отображаются десять последних добавленных в избранное запросов (самый новый — сверху), что позволяет быстро получать доступ и повторно использовать избранные выражения запросов.
- Organize Favorites - используйте для перехода на вкладку Favorites диалога Expression Manager, где можно упорядочивать (переименовывать, удалять) записи в списке избранных запросов.
- Examples - нажмите, чтобы открыть подменю предопределённых примеров фильтров. Выбор примера фильтра загрузит связанное с ним базовое выражение запроса в центральную область панели.
- History - нажмите для доступа к подменю, содержащему девять последних использованных выражений запросов из списка истории запросов панели. Нажмите запись More, чтобы открыть вкладку History диалога Expression Manager, где можно просматривать и применять запрос из полного списка исторических запросов, а также при необходимости очищать список истории.
- Show Scope Options - используйте для переключения отображения области панели, отвечающей за область действия фильтра.
- Show Masking Options - используйте для переключения отображения области панели, отвечающей за подсветку фильтра.
Примечания
Общие
- Нажатие клавиши F12 переключает видимость панели в рабочей области.
- Фильтрация, применённая при использовании запросов из панели SCHLIB Filter, сохраняется на время сеанса. Постоянный фильтр необходимо очистить соответствующим действием Clear (применением пустого запроса из панели SCHLIB Filter).
- В зависимости от формы и размера самой панели SCHLIB Filter, содержимое будет динамически располагаться по горизонтали или по вертикали.
Построение выражений запросов
- Настоятельно рекомендуется использовать скобки всякий раз, когда есть вероятность, что запрос может быть интерпретирован некорректно.
-
Скобки имеют наивысший приоритет в порядке приоритетов, определённом для различных доступных операторов и задающем, как программой интерпретируются запросы (когда пользователь не указал скобки). Последовательность этого порядка следующая:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
Этот порядок приоритетов похож на используемый в языках типа Pascal. Однако щедрое использование скобок устраняет сомнения и делает итоговые запросы более понятными для других. - Неоднозначности разрешаются при обработке слева направо.
- Круглые скобки вычисляются изнутри наружу, а операции одного уровня выполняются слева направо.
PCB Filter Panel

Панель PCB Filter
Сводка
Панель PCB Filter предоставляет элементы управления для построения фильтров путём создания логических запросов. Затем заданный фильтр можно применить к активной печатной плате, что позволяет с высокой точностью и эффективностью выбирать и редактировать несколько объектов.
Доступ к панели
Панель открывается из PCB-редактора следующими способами:
- Нажмите кнопку Panels в правом нижнем углу рабочей области, затем выберите PCB Filter.
- Выберите View » Panels » PCB Filter в главном меню.
- Используйте F12 горячую клавишу.
Разделы панели
Панель PCB Filter состоит из трёх областей. Первые две — это выбираемые списки, которые совместно определяют область действия фильтрации: Object и Layer.
Третья область, Filter, отображает запрос, созданный на основе того, какие объекты и слои выбраны в данный момент.
Построение простых выражений фильтра
Основная область панели предоставляет элементы управления для быстрого построения простых выражений фильтра, нацеленных на любую комбинацию объектов. Типы объектов организованы в «матрицу объектов» и классифицированы как сетевые объекты (Net), объекты компонентов (Comp) или свободные объекты (Free). Следующий базовый список объектов повторяется во всех трёх группах:
- Track
- Arc
- Via
- Pad
- Fill
- Region
Объект Text доступен как часть группировок Comp и Free , однако, поскольку этот тип объекта не «понимает» сети (net-aware), он не входит в группировку Net . Кроме того, группировка Free также включает: Component, Component Body, Room и Polygon.
Если, например, установить значения «Component» и «Top Layer», вид платы подсветит компоненты на верхнем слое. Выборы в обоих разделах панели представляют собой суммарный эффект нескольких этапов фильтрации, что можно использовать для быстрого выделения любого типа объекта проекта.
Чтобы использовать объект при построении выражения фильтра, то есть фильтровать по этому объекту, включите соответствующий флажок, связанный с этим объектом, в матрице объектов. Команды, доступные в контекстном меню (правый клик) этой области, позволяют быстро отметить или снять отметку со всех элементов матрицы либо переключить состояние всех флажков в матрице.
Используйте область Layer панели, чтобы ограничить фильтр определённым слоем или слоями либо конкретным классом слоёв. Перечисленные элементы отражают:
-
Определённые классы слоёв для платы, значения по умолчанию для которых:
- <All Layers>
- <Component Layers>
- <Electrical Layers>
- <Signal Layers>
- Определённые слои в стеке слоёв (как представлено в Layer Stack Editor).
- Верхний и нижний слои паяльной пасты (paste mask).
По мере выбора параметров фильтрации результирующее выражение запроса строится динамически и отображается в области Filter панели. После того как выражение запроса фильтра задано нужным образом, его необходимо применить отдельным действием. Для этого нажмите кнопку Apply to All в нижней части панели. Либо, если требуется применить фильтр только к объектам, которые уже выбраны в рабочей области, нажмите кнопку Apply to Selected.
Фильтрация по объекту
Выбор в списке Object панели отфильтрует вид платы так, чтобы показывать примитивные объекты проекта. Все объекты будут подсвечены, если это не изменено настройками в списках фильтра Object и/или Layer .

Плата показана с выбранными Component Body и Pad (In Any Component) в разделе Object. Layer установлено в <All>.

Плата показана с Object , установленным в Tracks (In Any Net), и Pads (In Any Net). Layer установлено в <All>.
Фильтрация по слою
Выбор в списке Layer панели фильтрует вид платы так, чтобы показывать объекты на указанном физическом слое проекта (слои Signal, Mask и Silkscreen). Все допустимые объекты слоя будут подсвечены, если это не изменено настройками в списках фильтра Layer и/или Objects .

Плата показана с Object , установленным в Components, и Pads (In Any Component). Layers установлено в Top Layer.

Плата показана с Object , установленным в Tracks (In Any Net). Layer установлено в Bottom Layer.
Выбор отфильтрованных объектов
Совокупное действие фильтра, предоставляемое панелью, помогает как при просмотре, так и при выборе интересующих объектов проекта платы.
Выбираемыми являются только подсвеченные (отфильтрованные) объекты, что упрощает поиск, редактирование и получение информации об объекте.
Очистка фильтра
Очистите текущий применённый фильтр, нажав кнопку Clear .
Настройка визуальной фильтрации
Визуальный результат применённой фильтрации в документе рабочей области определяется набором элементов управления подсветкой. Эффект, накладываемый в окне редактора, можно установить в Normal, Mask или Dim, при этом на практике Mask даёт наиболее заметный эффект подсветки.
Выпадающий список Normal / Mask / Dim предоставляет варианты для визуального контрастирования отфильтрованных и неотфильтрованных объектов в рабочей области.

Выберите тип применяемой визуальной фильтрации с помощью выпадающего списка режима маскирования.
Эффект визуальной подсветки для каждого режима маскирования:
- Normal - отфильтрованные объекты видимы в рабочей области, а внешний вид неотфильтрованных объектов остаётся без изменений.
- Mask - отфильтрованные объекты подсвечиваются в рабочей области, а все остальные объекты становятся монохромными.
- Dim - отфильтрованные объекты подсвечиваются в рабочей области, при этом все остальные объекты сохраняют свои цвета, но становятся затемнёнными.
Определение запросов фильтра
Центральная область панели предоставляет элементы управления для построения фильтров путём ввода логических запросов.
Доступны две функции, помогающие при создании запросов, — Query Helper и Query Builder. Эти функции могут быть очень полезны, если вы не уверены в синтаксисе запроса или в том, какие ключевые слова вы хотите использовать.
Query Helper
Чтобы воспользоваться Query Helper, нажмите кнопку Helper, чтобы открыть диалог Query Helper. Базовый Query Engine анализирует документ и выводит список всех доступных объектов вместе с универсальными ключевыми словами для использования в запросах.
Используйте верхнюю часть диалога, чтобы составить выражение запроса с применением доступных PCB Functions, PCB Object Lists и System Functions. Средняя область диалога предоставляет набор операторов, используемых при построении выражения. Нажмите кнопку Check Syntax, чтобы проверить, что выражение синтаксически корректно.
Когда выражение запроса определено нужным образом, нажмите OK, чтобы загрузить запрос в центральную область панели — он будет готов к применению фильтра.
Query Builder
Чтобы воспользоваться Query Builder, нажмите кнопку Builder на панели, чтобы открыть диалог Building Query from Board dialog. Этот диалог позволяет создать запрос для нацеливания на конкретные объекты в проектном документе путём построения строки условий, объединённых AND и/или OR. Левая часть диалога используется для задания условия(ий), необходимых для выбора требуемого набора объектов. Изначально запись в столбце Condition Type/Operator будет Add first condition. Однократный щелчок по этой записи откроет раскрывающийся список типов условий.
Перечень типов условий будет включать только те, которые относятся к проектированию платы.
Выберите нужное условие, затем щёлкните в столбце Condition Value, чтобы открыть раскрывающийся список возможных значений для выбранного типа условия. По мере задания условия в левой части диалога в правой части отображается предварительный просмотр текущего формируемого запроса.
Продолжайте добавлять дополнительные условия, чтобы при необходимости сузить целевой набор объектов проекта. Условия можно объединять с помощью AND или OR. Логический оператор по умолчанию — AND; он автоматически вставляется при добавлении следующего условия.
Чтобы изменить логический оператор между условиями, щёлкните по записи AND или OR в столбце Condition Type/Operator, затем выберите требуемый оператор. Предварительный просмотр запроса обновится соответствующим образом.
Задание приоритета выполнения
Кнопки
и
в верхней части диалога Building Query from Board позволяют добавлять и удалять скобки вокруг текущего выбранного условия (увеличивая и уменьшая отступ). Это позволяет задавать приоритет для определённых условий, логически объединённых AND или OR.
Например, рассмотрим следующий сформированный запрос:
InNet('5V') AND (OnLayer('TopLayer')
Первое условие задано как тип условия Belongs to Net со значением 16M_IN. Затем было добавлено ещё одно условие с использованием типа условия Exists on Layer со значением TopLayer.
На этом этапе, когда в диалоге выбрано второе условие, была нажата кнопка со стрелкой вправо. Вокруг второго условия автоматически добавились скобки, и теперь доступна возможность добавить условие внутри этой пары скобок.
Затем внутри скобок добавляется третье условие с типом условия Object Kind is и значением Track.
Используйте раскрывающийся список Show Level в верхнем левом углу диалога, чтобы управлять визуальным отображением уровней в вашей структурированной строке условий. По сути это разворачивает/сворачивает отображение скобок. Добавление скобок фактически создаёт новый уровень. Можно отображать уровни 1–5, а для любых дополнительных уровней используйте параметр Show All Levels.
Либо щёлкайте по символам разворачивания или сворачивания (связанным с условием в скобках), чтобы соответственно показать следующий уровень(ни) или скрыть текущий уровень (и все уровни ниже). Кнопки
и
в верхней части диалога также можно использовать для разворачивания или сворачивания текущего выбранного условия.
Используйте кнопки
и
в верхней части диалога, чтобы перемещать выбранное условие в строке запроса. Для условия, имеющего подуровни (т. е. условия в скобках), можно перемещать любое условие в структуре уровней. Когда уровни развернуты, условие можно перемещать вниз или вверх по уровням. Когда уровни свернуты, условие будет перемещаться поверх структуры уровней.
Чтобы удалить условие, выделите его и либо нажмите кнопку
в верхней части диалога, либо используйте клавишу Delete.
Когда выражение запроса определено нужным образом, нажмите OK, чтобы загрузить запрос в центральную область панели PCB Filter — он будет готов к применению фильтра.
Создание правил проектирования
Панель PCB Filter также предоставляет возможность создания правила проектирования, область действия которого будет использовать текущее выражение запроса, заданное в центральной области панели.
Чтобы добавить новое правило проектирования, нажмите кнопку Create Rule на панели PCB Filter. Откроется диалог Choose Design Rule Type.
В этом диалоге перечислены все категории и типы правил, доступные в PCB-документе. Выберите тип правила, которое хотите создать, затем нажмите OK (или дважды щёлкните непосредственно по записи). Откроется диалог PCB Rules and Constraints Editor.
Имя только что созданного правила будет выделено в дереве навигации слева. Выражение запроса правила находится в верхней правой панели диалога.
Создаётся правило выбранного типа, и отображается основное окно редактирования правила, готовое для задания конкретных ограничений. Выражение запроса из панели PCB Filter вводится в область Full Query диалога. При необходимости уточните параметры конфигурации правила и примените новое правило.
Применение и очистка фильтра
После того как вы определили запрос и настроили параметры на панели нужным образом, фильтр можно применить либо нажатием одной из кнопок Apply на панели, либо щелчком по Enter.
Чтобы очистить текущий применённый фильтр из панели, удалите (выделите и удалите) выражение запроса в центральной области панели, затем либо нажмите одну из кнопок Apply, либо нажмите Enter. Все объекты в рабочей области проекта будут восстановлены до полной видимости и станут доступны для выбора/редактирования.
Контекстные меню (правый клик)
Щелчок правой кнопкой мыши внутри панели PCB Filter предоставляет доступ к дополнительным параметрам и командам через всплывающие меню.
Щелчок правой кнопкой мыши в области Object или Layer панели открывает следующие пункты контекстного меню:
- Toggle Check - включить, чтобы переключать параметры. Текущие выбранные параметры будут сняты, а снятые — выбраны.
- Check All - включить, чтобы выбрать все доступные параметры.
- Uncheck All - включить, чтобы снять выбор со всех доступных параметров.
Примечания
Общие
- Нажатие клавиши F12 переключает видимость панели в рабочей области.
- Query Builder (диалог Building Query from Board) предоставляет простой способ построения запроса, используя контекстно-зависимые типы условий и значения, которые позволяют собирать запрос только из релевантных «строительных блоков». Для расширенного построения запросов, с полным заданием ключевых слов и синтаксиса операторов, используйте диалог Query Helper.
- Поскольку параметры отображения для объектов, проходящих и не проходящих применённый фильтр, разделены, вы можете эффективно применять новые запросы фильтра, опираясь на результаты предыдущей фильтрации.
При построении выражений запросов
-
Настоятельно рекомендуется использовать скобки всякий раз, когда есть хоть какая-то вероятность, что запрос будет интерпретирован неверно.
-
Скобки имеют наивысший приоритет в порядке приоритетов, определённом для различных предоставляемых операторов и определяющем, как программное обеспечение интерпретирует запросы (когда пользователь не указал скобки). Последовательность этого порядка следующая:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
Этот порядок приоритетов похож на используемый в языках типа Pascal. Однако щедрое использование скобок устраняет сомнения и делает итоговые запросы более понятными для других. -
Неоднозначности разрешаются при обработке слева направо.
-
Скобки вычисляются изнутри наружу, а равные уровни — слева направо.
PCBLIB Filter Panel
Сводка
Панель PCBLIB Filter предоставляет элементы управления для построения фильтров путём создания логических запросов. Затем заданный фильтр можно применить к активному посадочному месту компонента PCB или ко всем посадочным местам компонентов в активной PCB-библиотеке, что позволяет выбирать и редактировать несколько объектов с высокой точностью и эффективностью.
Доступ к панели
Доступ к панели осуществляется из PCB Library Editor следующими способами:
- Нажмите кнопку Panels в правом нижнем углу рабочей области, затем выберите пункт PCBLIB Filter.
- Выберите View » Panels » PCBLIB Filter в главном меню.
- Используйте сочетание клавиш F12.
Разделы панели
Панель PCBLIB Filter состоит из трёх областей. Первые две — это выбираемые области списков, которые совместно определяют область действия фильтрации: Object и Layer. Третья область, Filter, отображает запрос, сформированный на основе объектов и слоёв, выбранных в данный момент.
Создание простых выражений фильтра
Основная область панели предоставляет элементы управления для быстрого построения простых выражений фильтра, нацеленных на любую комбинацию объектов. Типы объектов организованы в «матрицу объектов» и сгруппированы по категориям: сетевые объекты (Net), объекты компонентов (Comp) или свободные объекты (Free). Следующий базовый список объектов повторяется во всех трёх группах:
- Дорожка
- Дуга
- Переходное отверстие
- Площадка
- Заливка
- Область
Объект Text доступен в группировках Comp и Free , однако, поскольку этот тип объекта не привязан к сетям, он не входит в группировку Net . Кроме того, группировка Free также включает Component, ComponentBody, Room и Polygon.
Если, например, установить значения «Components» и «Top Layer», вид платы подсветит компоненты на верхнем слое. Выбор в обоих разделах панели отражает суммарный эффект нескольких этапов фильтрации, что позволяет быстро подсветить любой тип объекта проекта.
Чтобы использовать объект при построении выражения фильтра, то есть фильтровать по этому объекту, включите соответствующий флажок, связанный с этим объектом, в матрице объектов. Команды, доступные в контекстном меню (по правому щелчку) для этой области, позволяют быстро отметить или снять отметку со всех элементов матрицы либо, соответственно, переключить состояние всех флажков в матрице.
Используйте область Layer, чтобы ограничить фильтр определённым слоем или слоями либо конкретным классом слоёв. Перечисленные элементы отражают:
-
Определённые классы слоёв для платы, значения по умолчанию для которых:
- <All Layers>
- <Component Layers>
- <Electrical Layers>
- <Signal Layers>
- Определённые слои в стеке слоёв (как представлено в Layer Stack).
- Верхний и нижний слои паяльной пасты.
По мере выбора параметров фильтрации результирующее выражение запроса формируется динамически и отображается в области Filter панели. После того как выражение запроса фильтра определено нужным образом, его необходимо применить отдельным действием. Для этого нажмите кнопку Apply to All в нижней части панели. Либо, если требуется применить фильтр только к тем объектам, которые сейчас выделены в рабочей области, используйте кнопку Apply to Selected.
Применение фильтрации
Компоненты PCB Library состоят из примитивных типов объектов (дуги, площадки, дорожки и т. п.), размещённых на разных слоях платы. Объекты либо являются «свободными» по своей природе, либо «принадлежат» групповому объекту. Обратите внимание: выбор Free в области Object подсветит только те объекты, которые не входят в состав группового объекта.
Фильтрация по объекту
Выбор в списке Object панели отфильтрует вид платы так, чтобы отображались примитивные объекты проекта. Все объекты будут подсвечены, если это не изменено настройками в списке фильтра Layer .

Показан пример платы, где Track и Arc выбраны в разделе Object. Значение Layer установлено в Top Overlay.
Фильтрация по слою
Выбор в списке Layers панели отфильтрует вид платы так, чтобы отображались объекты на указанном физическом слое проекта (сигнальные слои, слои масок и шелкографии). Все допустимые объекты слоёв будут подсвечены, если это не изменено настройками в списке фильтра Object .

Показан пример платы, где Object установлено в Pad. Layer , а Top Layer установлено в Top Layer.
Выбор отфильтрованных объектов
Совокупное действие фильтра, предоставляемое панелью PCBLIB Filter, помогает как при просмотре, так и при выборе интересующих объектов проекта платы.
Выбираемыми являются только подсвеченные (отфильтрованные) объекты, что упрощает поиск, редактирование и получение информации об объекте.
Очистка фильтра
Очистите применённый фильтр с помощью кнопки Clear на панели.
Настройка визуальной фильтрации
Визуальный результат применённой фильтрации в документе рабочей области определяется набором параметров подсветки. Эффект, накладываемый в окне редактора, можно установить в Normal, Mask или Dim, при этом на практике Mask даёт наиболее заметный эффект подсветки.
Выпадающий список Normal / Mask / Dim предоставляет варианты для визуального контраста между отфильтрованными и неотфильтрованными объектами в рабочей области.

Выберите тип применяемой визуальной фильтрации с помощью выпадающего списка режима маскирования.
Эффект визуальной подсветки для каждого режима маскирования:
- Normal - отфильтрованные объекты видимы в рабочей области, а внешний вид неотфильтрованных объектов остаётся без изменений.
- Mask - отфильтрованные объекты подсвечиваются в рабочей области, а все остальные объекты становятся монохромными.
- Dim - отфильтрованные объекты подсвечиваются в рабочей области, при этом все остальные объекты сохраняют свои цвета, но отображаются затемнёнными.
Определение запросов фильтра
Центральная область панели позволяет создавать фильтры путём ввода логических запросов.
Вы можете вводить запрос прямо в поле, и по мере ввода будет появляться список подсказок с возможными ключевыми словами.
Для помощи в создании запросов доступны две функции — Query Helper и Query Builder. Эти средства могут быть очень полезны, если вы не уверены в синтаксисе запроса или в том, какие ключевые слова следует использовать.
Query Helper
Чтобы использовать Query Helper, нажмите кнопку Helper, чтобы открыть диалог Query Helper. Базовый Query Engine анализирует документ и перечисляет все доступные объекты вместе с общими ключевыми словами для использования в запросах.
Используйте верхнюю часть диалога, чтобы составить выражение запроса, используя доступные PCB Functions, PCB Object Lists и System Functions. Средняя область диалога предоставляет набор операторов для использования при построении выражения. Используйте кнопку Check Syntax, чтобы проверить синтаксическую корректность выражения.
Когда выражение запроса определено нужным образом, нажмите OK, чтобы загрузить запрос в центральную область панели PCBLIB Filter, подготовив его к применению фильтра.
Query Builder
Чтобы использовать Query Builder, нажмите на панели PCBLIB Filter кнопку Builder, чтобы открыть диалог Building Query from Board.
Этот диалог позволяет создать запрос для нацеливания на конкретные объекты в документе проекта путём простого построения строки условий, объединённых AND и/или OR.
В левой части диалога задаются условия, необходимые для выбора требуемого набора объектов. Изначально запись в столбце Condition Type/Operator будет Add first condition. Щёлкните один раз по этой записи, чтобы открыть выпадающий список типов условий.
Перечисленные типы условий будут отражать только те, которые относятся к проекту платы.
Выберите условие, затем щёлкните в столбце Condition Value, чтобы открыть выпадающий список возможных значений для выбранного типа условия. По мере задания условия в левой части диалога справа отображается предварительный просмотр формируемого запроса.
Продолжайте добавлять дополнительные условия, чтобы при необходимости сузить целевой набор объектов проектирования. Условия можно объединять с помощью AND или OR. Логический оператор по умолчанию — AND; он автоматически вставляется при добавлении очередного условия.
Чтобы изменить логический оператор между условиями, щелкните запись AND или OR в столбце Condition Type/Operator, затем выберите нужный оператор. Предпросмотр запроса будет обновлен соответствующим образом.
Задание приоритета
Кнопки
и
в верхней части диалога Building Query from Board позволяют добавлять и удалять скобки вокруг текущего выбранного условия (увеличивая или уменьшая отступ). Это позволяет задавать приоритет для определённых условий, логически объединённых AND или OR.
Первое условие было задано как тип условия Exists on Layer со значением Top Layer. Затем было добавлено ещё одно условие с использованием типа условия Object Kind is со значением Arc.
На этом этапе, когда во всплывающем окне выбрано второе условие, была нажата кнопка со стрелкой вправо. Вокруг второго условия автоматически добавились скобки, и теперь доступна возможность добавить условие внутри этой пары скобок.
Затем внутри скобок добавляется третье условие с типом условия In Any Polygon .
Используйте раскрывающийся список Show All Levels в левом верхнем углу диалога, чтобы управлять визуальным отображением уровней в вашей структурированной строке условий. По сути, это разворачивает/сворачивает отображение скобок. Добавление скобок фактически создаёт новый уровень. Можно отображать уровни 1–5, а для любых дополнительных уровней используйте параметр Show All Levels.
Либо щёлкните по символам разворачивания или сворачивания, связанным с условием в скобках, чтобы соответственно показать следующий(ие) уровень(ни) или скрыть текущий уровень (и все уровни ниже). Кнопки
и
в верхней части диалога также можно использовать для разворачивания или сворачивания текущего выбранного условия.
Используйте кнопки
и
в верхней части диалога, чтобы перемещать выбранное условие в строящейся строке запроса. Для условия, имеющего подуровни (т. е. условия в скобках), можно перемещать любое условие в структуре уровней. Когда уровни развернуты, условие можно перемещать вниз или вверх по уровням. Когда уровни свернуты, условие будет перемещаться «поверх» структуры уровней.
Чтобы удалить условие, выберите его и либо нажмите кнопку
в верхней части диалога, либо используйте клавишу Delete.
Когда выражение запроса определено нужным образом, нажмите OK, чтобы загрузить запрос в центральную область панели PCBLIB Filter, подготовив его к применению фильтра.
Создание правил проектирования
Панель PCBLIB Filter также предоставляет возможность создания правила проектирования. Его область действия будет использовать текущее выражение запроса, заданное в центральной области панели.
Чтобы добавить новое правило проектирования, нажмите кнопку Create Rule на панели PCBLIB Filter. Откроется диалог Choose Design Rule Type.
В этом диалоге перечислены все категории и типы правил, доступные в документе PCB. Выберите тип правила, которое хотите создать, затем нажмите OK (или дважды щёлкните по записи). Откроется диалог PCB Rules and Constraints Editor.
Имя только что созданного правила будет видно выбранным в дереве навигации слева. Выражение запроса правила находится в правой верхней области диалога.
Создаётся правило выбранного типа, и отображается основное окно редактирования правила, готовое для задания конкретных ограничений. Выражение запроса из панели PCBLIB Filter вводится в область Full Query диалога. При необходимости уточните параметры конфигурации правила и примените новое правило.
Применение и очистка фильтра
После того как вы определили запрос и настроили параметры на панели, фильтр можно применить либо нажатием кнопки Apply на панели, либо нажатием Enter.
Чтобы очистить текущий применённый фильтр из панели, очистите (выделите и удалите) выражение запроса в центральной области панели, затем либо нажмите кнопку Apply, либо нажмите Enter. Все объекты в рабочей области проектирования будут восстановлены до полной видимости и станут доступны для выбора/редактирования.
Контекстные меню (правый клик)
Щёлкните правой кнопкой мыши внутри панели PCBLIB Filter, чтобы получить доступ к дополнительным параметрам и командам через всплывающие меню.
Щелчок правой кнопкой в области Object или Layer панели открывает следующие пункты контекстного меню:
- Toggle Check - включить для переключения параметров. Текущие выбранные параметры будут сняты, а снятые — выбраны.
- Check All - включить, чтобы выбрать все доступные параметры.
- Uncheck All - включить, чтобы снять выбор со всех доступных параметров.
Примечания
Общие
- Нажатие клавиши F12 переключает видимость панели в рабочей области.
- Построитель запросов (диалог Building Query from Board) предоставляет простой способ построения запроса с использованием контекстно-зависимых типов условий и значений, которые позволяют собирать запрос только из релевантных «строительных блоков». Для расширенного построения запросов с полной спецификацией ключевых слов и синтаксисом операторов используйте диалог Query Helper.
- Поскольку параметры отображения для объектов, проходящих и не проходящих применённый фильтр, разделены, вы можете эффективно применять новые запросы фильтра, опираясь на результаты предыдущей фильтрации.
При построении выражений запросов
- Настоятельно рекомендуется использовать скобки всякий раз, когда есть хоть малейшая вероятность, что запрос может быть интерпретирован неверно.
-
Скобки имеют наивысший приоритет в порядке приоритетов, определённом для различных предоставляемых операторов и определяющем, как программное обеспечение интерпретирует запросы (когда пользователь не указал скобки). Последовательность этого порядка следующая:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
Этот порядок приоритетов похож на используемый в языках типа Pascal. Однако щедрое использование скобок устраняет сомнения и делает итоговые запросы более понятными для других. - Неоднозначности разрешаются при обработке слева направо.
- Скобочные выражения вычисляются изнутри наружу, а равные уровни — слева направо.
Где находятся результаты запроса?
Теперь, когда вы написали запрос на панели Filter , как получить доступ к объектам, возвращённым вашим запросом? В среде Altium Designer есть два способа доступа к объектам и их редактирования.
-
Графически — после применения фильтра поведение по умолчанию заключается в маскировании (приглушении и запрете редактирования) всех объектов, не прошедших запрос, оставляя доступными только те, что прошли. Этот режим отлично подходит для поиска и просмотра объектов в рабочей области. Поскольку замаскированные объекты нельзя редактировать, такие команды, как Ctrl+A (выбрать всё), применяются только к объектам, возвращённым запросом.
-
List панель — панель List (Shift+F12) представляет собой табличный (как в электронных таблицах) вид ваших проектных данных. По умолчанию она отображает все объекты проекта, но после применения фильтра показывает только объекты, возвращённые запросом. Панель List поддерживает стандартные «табличные» действия сортировки и выбора, позволяя редактировать одну или несколько ячеек напрямую.
Панели PCB List и SCH List отображают результаты запросов PSB/SCH из предыдущего раздела.
Параметры подсветки
Каждый раз, когда применяется запрос (или иным образом используется функция фильтрации данных), каждый объект в целевом документе становится участником результатов этой операции фильтрации. Однако то, как затем отображаются объекты, входящие в результаты, и объекты, не входящие в результаты, зависит от параметров подсветки, выбранных на панели Filter . Доступны три различных параметра подсветки, и они полностью независимы друг от друга, поэтому можно выбрать один, два или все.
Масштабирование
Если при применении запроса включён параметр Zoom , вид целевого документа обновляется так, чтобы показать область, занимаемую всеми объектами, входящими в результаты. Будут ли остальные объекты отображаться в обновлённом виде, зависит от их расположения относительно этой области, поэтому каждый из них может оказаться полностью видимым, частично видимым или не отображаться вовсе.
Этот параметр часто выбирают совместно с одним или двумя другими параметрами. Если параметр Mask не включен, объекты, которые не входят в результаты, всё равно будут отображаться в графическом представлении, если они находятся в пределах обновлённых границ. На первый взгляд выбор только этого параметра может показаться бессмысленным, однако бывают ситуации, когда нужно обновить графический вид так, чтобы он охватывал определённые объекты, но при этом не изменять состояние выделения или маскирования ни для одного объекта документа.
Выделить
Когда параметр Select включен, все объекты, входящие в результаты, переводятся в состояние «выделено», а все остальные объекты — в состояние «не выделено». Выделенные объекты отображаются более заметно, чем невыделенные.
Если при применении текущего запроса выбран параметр Select, все объекты, являющиеся членами результирующего набора, впоследствии получают состояние «выделено», а все остальные объекты (не входящие в результирующий набор) — состояние «не выделено». Обычно этот параметр выбирают непосредственно перед процедурами глобального редактирования, поскольку в этот момент обновляются свойства только тех объектов, которые выделены. Но бывают и другие случаи, когда параметр Select полезен — например, когда определённые объекты нужно переместить, скопировать или удалить.
Маска
Параметр подсветки Mask определяет обновлённое свойство маскирования объектов в целевом документе. Если он выбран, все объекты, входящие в результаты, маскируются, а все остальные объекты — демаскируются. Основная особенность маскированных объектов заключается в том, что их и их свойства нельзя редактировать. (В представлении списка маскированные объекты отображаются приглушёнными, но в представлении списка они не отображаются, если только параметр all objects в данный момент не выбран на панели List .) Основная особенность маскированных объектов заключается в том, что объект и его свойства нельзя редактировать.
Query Builder
В редактор PCB входит специализированное диалоговое окно Query Builder. Оно позволяет создавать сложные запросы, выбирая условия проверки из раскрывающихся списков. Преимущество Query Builder в том, что он позволяет создать запрос, нацеленный на разные типы объектов.
Диалог «Building Query» (часть функции «Query Builder») помогает тем, у кого меньше опыта в задании запросов; запрос формируется автоматически, и его содержимое соответствует условиям, заданным разработчиком.
Левая часть этого диалога содержит элементы управления, предназначенные для помощи разработчику в задаче указания, какие свойства должны быть у каждого объекта документа, чтобы он был возвращён запросом, сформированным этим диалогом. По мере задания или редактирования каждого условия содержимое соответствующего запроса обновляется и отображается в правой части диалога. Если затем закрыть этот диалог, нажав OK (или Apply), то либо связанный запрос будет применён, либо его содержимое будет скопировано обратно на панель Filter (в зависимости от того, как этот диалог был вызван изначально).
Диалог Query Builder можно запустить из следующих мест (как показано на изображении ниже):
- На панели PCB Filter нажмите кнопку Query Builder , чтобы построить запрос и загрузить строку в панель.
- В диалоге PCB Rules and Constraints Editor dialog нажмите кнопку Builder , чтобы построить запрос, определяющий, к каким объектам применяется это правило.
На изображении ниже показано использование диалога Query Builder для создания запроса, который нацелен и на площадки, и на переходные отверстия (vias) в цепи 5V.

Диалог Query Builder
Options and Controls of the Query Builder Dialog
-
Show All Levels — используйте раскрывающийся список для управления визуальным отображением уровней в структурированной строке условий. По сути это разворачивает/сворачивает отображение скобок. Добавление скобок создаёт новый уровень, и можно отображать уровни 1–5. Либо нажмите символы разворачивания или сворачивания , чтобы показать следующий(ие) уровень(ни) или скрыть текущий уровень (и все уровни ниже) соответственно.
-
— используйте, чтобы удалить скобки вокруг текущего выбранного условия (уменьшить отступ). Это позволяет задавать приоритет для определённых условий, логически объединённых AND или OR.
-
— используйте, чтобы добавить скобки вокруг текущего выбранного условия (увеличить отступ). Это позволяет задавать приоритет для определённых условий, логически объединённых AND или OR.
-
— чтобы переместить выбранное условие вверх в формируемой строке запроса. Для условия, имеющего подуровни (т.е. условия в скобках), можно перемещать любое условие в структуре уровней. Когда уровни развернуты, условие можно перемещать вверх через уровни. Когда уровни свернуты, условие будет перемещаться поверх структуры уровней.
-
— чтобы переместить выбранное условие вниз в формируемой строке запроса. Для условия, имеющего подуровни (т.е. условия в скобках), можно перемещать любое условие в структуре уровней. Когда уровни развернуты, условие можно перемещать вниз через уровни. Когда уровни свернуты, условие будет перемещаться поверх структуры уровней.
-
— используйте, чтобы развернуть символы и показать следующий(ие) уровень(ни).
-
— используйте, чтобы свернуть символы и скрыть текущий уровень (и все уровни ниже).
-
— используйте, чтобы удалить выбранное условие.
- Condition Type/Operator — используйте эту область, чтобы задать условие(я), необходимые для выбора требуемого набора объектов. Изначально запись в столбце Condition Type/Operator будет Add first condition. Щёлкните один раз по этой записи, чтобы открыть раскрывающийся список типов условий. Список зависит от того, откуда был запущен диалог. Если вы строите запрос для конкретного правила проектирования в диалоге PCB Rules And Constraints Editor , список условий будет отражать только те типы условий, которые возможны для данного типа правила.
- Condition Value — выберите первое условие, затем щёлкните в столбце Condition Value , чтобы открыть раскрывающийся список возможных значений для этого типа условия. По мере задания условия предварительный просмотр текущего формируемого запроса отображается в области Query Preview.
Query Helper
Следующий шаг в развитии навыков написания запросов — использование диалога Query Helper . Диалог Query Helper содержит поле Query , в которое можно ввести нужный запрос, а также использовать кнопки синтаксиса под полем Query (например, And, Or, <, Not, Like и т. д.), а также полный список всех ключевых слов запросов в поле Categories .
Диалог «Query Helper» предоставляет помощь разработчикам, которые хотят задавать собственные запросы. Для каждого перечисленного ключевого слова приводится краткое описание, а онлайн-справку можно открыть, нажав клавишу F1, когда ключевое слово выделено. Это вызывает диалог Altium Designer Documentation Library, в котором приводятся сведения о том, какие объекты в документе возвращаются выделенным ключевым словом, как использовать это ключевое слово, а также один или несколько примеров его применения.
К диалогу можно получить доступ следующими способами:
- Нажмите кнопку Helper на панели Filter .
PCB Filter доступ к панели
SCH Filter доступ к панели
-
В диалоге File-based Libraries Search dialog (открывается нажатием
в правом верхнем углу панели Components panel, затем выбором File-based Libraries Search в раскрывающемся меню) нажмите кнопку Helper .
File-based Libraries Searchдоступ к диалогу
Используйте раздел Query в верхней части диалога, чтобы составить выражение запроса, используя доступные функции. В текстовом поле вы можете просмотреть и/или дополнительно отредактировать поисковое выражение. Для редактирования выражения поиска вводите текст непосредственно в это поле. Чтобы найти и добавить конкретные ключевые слова, начните ввод. Пока вы печатаете, диалог будет предлагать раскрывающееся меню доступных ключевых слов, соответствующих введенному на данный момент тексту. Щелкните ключевое слово, чтобы автоматически завершить ввод выбранного варианта. Если нужное ключевое слово выделено, нажатие Enter также автоматически завершит выбор.
Просмотрите Categories доступных ключевых слов и выберите нужное. Используйте поле Mask, если вы не уверены, какое именно ключевое слово требуется. Например, в Query Helper редактора схем ввод *har в поле Mask найдет ключевые слова, относящиеся именно к жгутам, как показано на изображении ниже. Обратите внимание, что поле Mask работает и по полю ключевого слова Name , и по полю Description , поэтому это может быть самым быстрым способом найти подходящие ключевые слова.
Дважды щелкните ключевое слово в таблице, чтобы добавить его в запрос в текущей позиции курсора.
Средняя область диалога содержит кнопки синтаксиса, предоставляющие набор операторов для использования при построении выражения. Дополнительные сведения о назначении каждой кнопки синтаксиса см. в разделе Logical Query Expression Operators ниже. Используйте кнопку Check Syntax (внизу слева в диалоге), чтобы проверить, является ли выражение синтаксически корректным.
История запросов
По мере ввода и применения нового запроса из панели фильтра (SCH Filter / SCHLIB Filter, PCB Filter / PCBLIB Filter) он будет добавляться в список истории запросов. Нажмите кнопку History на панели, чтобы открыть этот список. Диалог Expression Manager откроется с активной вкладкой History .
Вкладка History диалога Expression Manager содержит список выражений запросов, использованных ранее. Здесь показан пример истории запросов для Schematic. Наведите курсор на изображение, чтобы увидеть аналогичный пример списка для PCB.
Чтобы использовать исторический запрос из списка, выберите его запись и нажмите кнопку Apply Expression или дважды щелкните запись. Диалог закроется, а выражение запроса будет загружено в центральную область соответствующей панели фильтра.
Исторический запрос можно добавить в список избранных запросов, выбрав его запись и нажав кнопку Add To Favorites. Используйте кнопку Clear History, если хотите «очистить» список истории.
До девяти последних использованных выражений запросов из списка будут доступны для применения из подменю History , вызываемого правой кнопкой мыши на панели фильтра.
Избранные запросы
Любой определенный запрос можно добавить в список избранных двумя способами:
- Нажмите кнопку Add To Favorites или щелкните правой кнопкой мыши в основной области Query Expression и выберите команду Add to Favorites в контекстном меню, чтобы добавить выражение запроса, в данный момент заданное в центральной области активной панели фильтра.
- Выберите запись исторического запроса на вкладке History диалога Expression Manager, затем нажмите кнопку Add To Favorites.
Избранные выражения запросов сохраняются и управляются на вкладке Favorites диалога Expression Manager. Доступ можно получить, используя кнопку Favorites на панели фильтра (SCH Filter / SCHLIB Filter, PCB Filter / PCBLIB Filter) или щелкнув правой кнопкой мыши в основной области Query Expression панели фильтра и выбрав команду Organize Favorites в контекстном меню. Из рабочей области проектирования диалог можно открыть, используя сочетание клавиш Y, затем выбрав Organize Favorites во всплывающем меню фильтрации.
Откройте список избранных запросов из панели фильтра редактора или из рабочей области проектирования, используя всплывающее меню фильтрации.
Когда выражение запроса добавляется в список Favorites , ему присваивается уникальное имя. По умолчанию назначается общее имя — Favorite_n — где n — следующий доступный неиспользованный номер. Имя записи можно изменить на любом этапе одним из следующих способов:
- Выберите запись запроса и нажмите кнопку Rename.
- Выберите запись запроса и затем выберите команду Edit в меню правой кнопки мыши.
- Выберите запись запроса и затем щелкните еще раз внутри поля Name.
В каждом случае введите новое имя, затем щелкните вне поля Name, чтобы применить изменение.
Чтобы отредактировать избранное выражение запроса, выберите его запись в списке, затем нажмите кнопку Edit (или щелкните правой кнопкой мыши и выберите Edit в контекстном меню). Откроется диалог Edit Favorite. Используйте его, чтобы изменить имя избранного, само выражение, а также определить, как обрабатываются объекты проекта (как прошедшие фильтр, так и не прошедшие).
Измените существующий избранный запрос с помощью диалога Edit Favorite, показанного здесь для Schematic (слева) и PCB (справа).
Чтобы удалить запрос из списка Favorites , выберите его запись в списке, затем либо нажмите кнопку Remove, либо выберите команду Remove в меню правой кнопки мыши. Появится диалог с запросом подтверждения удаления.
Использование избранных запросов
Существует три способа использовать избранные запросы:
-
На вкладке Favorites диалога Expression Manager — либо выберите запись и нажмите кнопку Apply Expression , либо дважды щелкните по записи. Диалог закроется, а выражение запроса будет загружено в центральную область соответствующей панели фильтра.
-
Из верхней части меню правой кнопки мыши панели фильтра (доступно до десяти последних добавленных в список Favorites выражений запросов).
-
Из всплывающего меню фильтрации в рабочей области проектирования (нажмите Y) — до десяти избранных выражений запросов перечислены в верхней части меню. Выбранное выражение запроса будет загружено в центральную область соответствующей панели фильтра.
Использование готовых примеров
И редакторы схем, и редакторы PCB поставляются с набором готовых примеров запросов. Эти примеры доступны из меню фильтрации — его можно открыть либо щелкнув правой кнопкой мыши в области выражения панели фильтра, либо используя сочетание клавиш Y в рабочей области проектирования. Наведите курсор на Examples, чтобы увидеть подменю.
При выборе пункта в подменю применяется запрос, лежащий в основе этого фильтра. Чтобы увидеть фактический запрос, стоящий за одним из примеров, посмотрите в список History после его применения. Этот список также доступен во всплывающем меню фильтрации.
Инструменты построения запросов
Возможно, самый простой способ написать запрос — позволить Altium Designer сделать это за вас! Это можно выполнить, используя диалог Find Similar Objects или диалог Query Builder .
Диалог Find Similar Objects
Когда вы используете диалог Find Similar Objects dialog, он генерирует запрос для поиска нужных объектов. Если включена опция Create Expression, этот запрос будет отображаться на панели Filter . Это отличный способ изучать различные ключевые слова запросов.
Диалог Find Similar Objects открывается, когда вы щелкаете правой кнопкой мыши по любому незамаскированному объекту в документе проекта и выбираете Find Similar Objects в контекстном меню.
Левое изображение: версия PCB; правое изображение: версия SCH
Этот диалог позволяет находить объекты, похожие на тот, по которому вы щёлкнули правой кнопкой мыши, а затем определить, какие атрибуты объекта должны совпадать (или отличаться) для получения совпадения. Предположим, вы хотите изменить все площадки GND в вашем проекте. Вы можете щёлкнуть правой кнопкой по одной такой площадке, выбрать Find Similar Objects, затем изменить поле Net с Any (значение по умолчанию) на Same. Все площадки GND будут выделены, когда вы нажмёте Apply в диалоге. Если включена опция Create Expression , следующий запрос появится на панели Filter : (ObjectKind = 'Pad') And (Net = 'GND').
В качестве примера для схемы: вы можете изменить свойство Color у всех Power Objects, имеющих определённое текстовое свойство (например, 'GND') в пределах документа, на одно и то же значение. Например, на PCB вы можете изменить свойство Hole Size у всех переходных отверстий (via), имеющих определённое свойство Via Diameter в пределах документа, на одно и то же значение.
Опция Clear Existing
Включите опцию Clear Existing , чтобы очистить любое существующее выделение или маску редактирования перед применением поиска. Отключите эту опцию, если вы выполняете последовательные поиски и желательно, чтобы результаты накапливались.
Панель инструментов Filter
Filter Toolbar предусмотрена для PCB-документов и позволяет замаскировать все объекты в документе, кроме тех, которые имеют заданное свойство, или кроме тех, которые являются частью указанного компонента. Самое правое поле панели инструментов используется для задания содержимого запроса. Вы можете ввести запрос в поле или использовать выпадающий список, чтобы выбрать один из недавних запросов (существующий в списке запросов History ). Невозможно указать, какие опции использовать при применении запросов из Filter Toolbar, и во всех случаях любой предыдущий запрос очищается, после чего с текущим запросом используются опции Mask и Zoom. Чтобы использовать опции запроса, применяйте панель Filter , диалог Query Builder, диалог Query Helper или диалог Find Similar Objects .
Операторы логических выражений запросов
Ниже приведено краткое описание операторов, которые можно использовать при определении логических выражений запросов с помощью языка запросов.
Арифметические операторы
| Оператор | Описание | Пример |
|---|---|---|
| + | Оператор сложения | NetPinCount + NetViaCount |
| - | Оператор вычитания | ArcStopAngle - ArcStartAngle |
| * | Оператор умножения | PadXSize_BottomLayer * PadYSize_BottomLayer |
| / | Оператор деления | HoleDiameter / ViaDiameter |
| Div | Оператор целочисленного деления | Color Div 65536 Вычисляет Color, делённое на 65536, при этом дробная часть результата отбрасывается |
| Mod | Оператор остатка от деления (modulus) | Color Mod 256 Вычисляет остаток при делении Color на 256, без определения дробной части результата |
Логические операторы
| Оператор | Описание | Пример |
|---|---|---|
| And | Логический оператор AND | IsPad And OnMultiLayer Чтобы объект был возвращён, он должен быть площадкой (pad) и находиться на слое Multi-Layer |
| && | Логический оператор AND (более низкий приоритет) |
IsPad && OnMultiLayer Чтобы объект был возвращён, он должен быть площадкой (pad) и находиться на слое Multi-Layer |
| Or | Логический оператор OR | IsPad Or IsVia Чтобы объект был возвращён, он должен быть либо площадкой (pad), либо переходным отверстием (via) |
| || | Логический оператор OR (более низкий приоритет) |
IsPad || IsVia Чтобы объект был возвращён, он должен быть либо площадкой (pad), либо переходным отверстием (via) |
| Xor | Логический оператор исключающего ИЛИ (EXCLUSIVE OR) | OnMultiLayer Xor (HoleDiameter <> 0) Чтобы объект был возвращён, он должен либо находиться на слое Multi-Layer и иметь Hole Diameter, равный нулю, либо не находиться на слое Multi-Layer и иметь Hole Diameter, не равный нулю. |
| Not | Логический оператор NOT | Not OnMultiLayer Чтобы объект был возвращён, он не должен находиться на слое Multi-Layer |
Операторы сравнения
| Оператор | Описание | Пример |
|---|---|---|
| < | Оператор «меньше чем» | HoleDiameter < 40 Чтобы объект был возвращён, он должен иметь Hole Diameter, которое меньше 40 |
| <= | Оператор «меньше или равно» | HoleDiameter <= 40 Чтобы объект был возвращён, он должен иметь Hole Diameter, которое меньше или равно 40 |
| >= | Оператор «больше или равно» | HoleDiameter >= 40 Чтобы объект был возвращён, он должен иметь Hole Diameter, которое больше или равно 40 |
| > | Оператор «больше чем» | HoleDiameter > 40 Чтобы объект был возвращён, он должен иметь Hole Diameter, которое больше 40 |
| <> | Оператор «не равно» | HoleDiameter <> 40 Чтобы объект был возвращён, он должен иметь Hole Diameter, которое не равно 40 |
| = | Оператор «равно» | HoleDiameter = 40 Чтобы объект был возвращён, он должен иметь Hole Diameter, которое равно 40 |
| Between...And... | Оператор включённого диапазона | HoleDiameter Between 30 And 50 Чтобы объект был возвращён, он должен иметь Hole Diameter, которое больше или равно 30, и меньше или равно 50. |
| Like | Оператор Like | Name Like 'ADDR?*' Возвращает объекты, имеющие свойство Name , связанная (текстовая) строка которого начинается с ADDR и содержит как минимум ещё один символ |
Символы подстановки (Wild Card)
Символы подстановки позволяют задавать строки, которые указаны не точно. Обычно эти символы используются совместно с другими символами, в результате чего задаются строки, определённые лишь частично. Несколько исключительных ключевых слов могут принимать строковые параметры, заданные не точно, но в большинстве случаев строки могут содержать символы подстановки только тогда, когда они сравниваются оператором Like.
| Оператор | Описание | Пример |
|---|---|---|
| ? | Может быть заменён одним символом любого типа | Footprint Like 'DIP1?' Возвращает объекты, у которых свойство Footprint равно DIP10, или DIP12, или DIP14 и т. д. |
| * | Может быть заменён любым количеством символов, каждый из которых может быть любого типа | Footprint Like 'SIP*' Возвращает объекты, у которых свойство Footprint равно SIP1, или SIP12, или SIP216 и т. д. (Также возвращаются любые объекты, у которых свойство Footprint равно SIP, поскольку '*' также может быть заменён на no символов) |
Булевы строки
| Оператор | Описание | Пример |
|---|---|---|
| True | Подтверждает значение ключевого слова | IsPad = True Чтобы объект был возвращён, он должен быть площадкой (pad) |
| False | Отрицает значение ключевого слова | IsVia = False Чтобы объект был возвращён, он не должен быть переходным отверстием (via) |
Круглые скобки и порядок приоритета
Полезно ознакомиться с порядком приоритета операторов, используемых в логических выражениях запросов. В конце концов, без этого знания выражение может не нацеливаться на нужные объекты.
Круглые скобки имеют наивысший приоритет в определённом порядке приоритета для различных операторов, который определяет, как программное обеспечение интерпретирует запросы (когда пользователь не указал круглые скобки). Последовательность этого порядка, от высшего к низшему, следующая:
- Круглые скобки ()
- Not
- ^, *, /, Div, Mod, And
- +, -, Or, Xor
- =, <>, <, >, <=, >=
- &&, ||
Глобальные системные функции запросов

Глобальные системные функции запросов, показанные в диалоге Query Helper
В этом разделе подробно описаны ключевые слова языка запросов, доступные в документах схем, PCB и библиотек в Altium Designer. Чтобы получить справку по конкретному ключевому слову запроса, используйте следующие сворачиваемые разделы или выделите (или щелкните внутри) нужное ключевое слово — в Query Helper, на панели Filter или в поле Query правила проектирования PCB — и нажмите F1, чтобы сразу перейти к соответствующему разделу.
Арифметические функции
ABS
Сводка
Возвращает (вещественное) число, значение которого равно модулю числового значения параметра. Если это числовое значение положительное, возвращаемое число имеет то же значение; в противном случае возвращаемое число равно числовому значению параметра, умноженному на -1.
Синтаксис
ABS(X : Number / Numeric_String) : Number
Пример использования
ABS(2.3)
Возвращает 2.3.
ABS(-7.2)
Возвращает 7.2.
CEIL
Сводка
Возвращает целое число, значение которого зависит от характера числового значения параметра. Если это числовое значение является точным целым, возвращаемое число имеет ровно то же значение; иначе возвращаемое число — это наименьшее целое, которое больше числового значения параметра.
Синтаксис
CEIL(X : Number / Numeric_String) : Number
Пример использования
CEIL(5.0)
Возвращает 5.
CEIL(5.33)
Возвращает 6.
CEIL(-5.0)
Возвращает -5.
CEIL(-5.33)
Возвращает -5.
FLOOR
Сводка
Возвращает целое число, значение которого зависит от характера числового значения параметра. Если это числовое значение является точным целым, возвращаемое число имеет ровно то же значение; иначе возвращаемое число — это наибольшее целое, которое меньше числового значения параметра.
Синтаксис
FLOOR(X : Number / Numeric_String) : Number
Пример использования
FLOOR(5.0)
Возвращает 5.
FLOOR(5.33)
Возвращает 5.
FLOOR(-5.0)
Возвращает -5.
FLOOR(-5.33)
Возвращает -6.
FRAC
Сводка
Возвращает (вещественное) число, значение которого зависит от характера числового значения параметра:
- Если это числовое значение положительное, но не является точным целым, возвращаемое число равно разности между числовым значением параметра и наибольшим целым, которое меньше числового значения параметра.
- Если это числовое значение отрицательное, но не является точным целым, возвращаемое число равно разности между числовым значением параметра и наименьшим целым, которое больше числового значения параметра.
- Если числовое значение параметра является точным целым, возвращаемое число равно 0.
Синтаксис
FRAC(X : Number / Numeric_String) : Number
Пример использования
FRAC(5.0)
Возвращает 0.
FRAC(5.33)
Возвращает 0.33.
FRAC(-5.0)
Возвращает 0.
FRAC(-5.33)
Возвращает -0.33.
IIF
Сводка
Это конструкция специального назначения, содержащая три запроса. Вычисляется значение первого запроса (между открывающей скобкой и первой запятой). Если оно True, возвращается второй запрос (между запятыми); иначе возвращается третий запрос (между второй запятой и закрывающей скобкой).
Синтаксис
IIF(L : Boolean Query , A : Query , B : Query)
L, A и B — это строки, каждая из которых задает некоторый запрос; L должен быть булевым запросом (т. е. таким, который возвращает результат True или False).
Пример использования
IsArc And IIF(ArcStopAngle - ArcStartAngle >= 0 , ArcStopAngle - ArcStartAngle Between 30 And 60 , ArcStartAngle - ArcStopAngle Between 300 And 330)
Возвращает все дуги, длина дуги которых больше или равна 30 градусам и меньше или равна 60 градусам. (Свойство длины дуги у дуги — это угол, определяемый вычитанием свойства Start Angle из свойства Stop Angle. Усложняющий момент состоит в том, что свойство Stop Angle у дуги может быть меньше свойства Start Angle, однако этот запрос корректно вычисляет истинное значение длины дуги для всех возможных объектов дуг.)
IsComponent And IIF(Layer = 'Top Layer' , Rotation <> 0 , Rotation <> 180)
Возвращает все компоненты на верхней стороне PCB, у которых свойство Rotation не равно 0 градусов, и все компоненты на нижней стороне PCB, у которых свойство Rotation не равно 180 градусов. (Объекты компонентов могут располагаться только на сигнальном слое Top или сигнальном слое Bottom, поэтому любой компонент, который не находится на сигнальном слое Top, должен находиться на сигнальном слое Bottom.)
INT
Сводка
Возвращает целое число, значение которого зависит от характера числового значения параметра:
- Если это числовое значение положительное, но не является точным целым, возвращаемое число — это наибольшее целое, которое меньше числового значения параметра.
- Если это числовое значение отрицательное, но не является точным целым, возвращаемое число — это наименьшее целое, которое больше числового значения параметра.
- Если это числовое значение является точным целым, возвращаемое число имеет ровно то же значение.
Синтаксис
INT(X : Number / Numeric_String) : Number
Пример использования
INT(5.0)
Возвращает 5.
INT(5.33)
Возвращает 5.
INT(-5.0)
Возвращает -5.
INT(-5.33)
Возвращает -5.
Советы
Это псевдоним для арифметической функции TRUNC.
MAX
Сводка
Возвращает (вещественное) число, значение которого равно максимальному значению среди всех переданных параметров. Каждый параметр должен быть либо числом, либо числовой строкой; допускается любое количество параметров.
Синтаксис
MAX(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Пример использования
MAX(2)
Возвращает 2.
MAX(7,2,3)
Возвращает 7.
Советы
Должен быть указан как минимум один параметр.
MIN
Сводка
Возвращает (вещественное) число, значение которого равно минимальному значению среди всех переданных параметров. Каждый параметр должен быть либо числом, либо числовой строкой; допускается любое количество параметров.
Синтаксис
MIN(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Пример использования
MIN(2)
Возвращает 2.
MIN(7,2,3)
Возвращает 2.
Советы
Должен быть указан как минимум один параметр.
POWER
Сводка
Возвращает (вещественное) число, значение которого равно числовому значению первого параметра, возведенному в степень, равную числовому значению второго параметра.
Синтаксис
POWER(X : Number / Numeric_String , Y : Number / Numeric_String) : Number
Пример использования
POWER(3,2)
Возвращает 9.
POWER(32,0.2)
Возвращает 2.
POWER(16,-0.5)
Возвращает 0.25.
ROUND
Сводка
Возвращает целое число, значение которого зависит от характера числового значения параметра:
- Если это числовое значение является точным целым, возвращаемое число имеет ровно то же значение.
- Если это числовое значение не является точным целым, возвращаемое число — это целое, наиболее близкое по значению к числовому значению параметра. Положительные числа, находящиеся ровно посередине между соседними целыми, округляются upwards, а отрицательные числа, находящиеся ровно посередине между соседними целыми, округляются downwards.
Синтаксис
ROUND(X : Number / Numeric_String) : Number
Пример использования
ROUND(5.0)
Возвращает 5.
ROUND(5.33)
Возвращает 5.
ROUND(5.5)
Возвращает 6 (округление вверх).
ROUND(5.66)
Возвращает 6.
ROUND(-5.0)
Возвращает -5.
ROUND(-5.33)
Возвращает -5.
ROUND(-5.5)
Возвращает -6 (округление вниз).
ROUND(-5.66)
Возвращает -6.
SIGN
Сводка
Возвращает значение знака переданного параметра. То есть возвращает целое число, значение которого зависит от характера числового значения параметра:
- Если это числовое значение положительное, возвращаемое число равно 1.
- Если это числовое значение отрицательное, возвращаемое число равно -1.
- Если это числовое значение равно точно нулю, возвращаемое число равно 0.
Синтаксис
SIGN(X : Number / Numeric_String) : Number
Пример использования
SIGN(5.33)
Возвращает 1.
SIGN(-5.33)
Возвращает -1.
SIGN(0)
Возвращает 0.
SQR
Сводка
Возвращает (вещественное) число, значение которого равно квадрату числового значения параметра.
Синтаксис
SQR(X : Number / Numeric_String) : Number
Пример использования
SQR(2)
Возвращает 4.
SQR(14.1)
Возвращает 198.81.
SQR(-1.5)
Возвращает 2.25.
SQRT
Сводка
Возвращает (вещественное) число, значение которого равно (положительному) квадратному корню из числового значения параметра.
Синтаксис
SQRT(X : Number / Numeric_String) : Number
Пример использования
SQRT(4)
Возвращает 2.
SQRT(10)
Возвращает 3.1623.
TRUNC
Сводка
Возвращает целое число, значение которого зависит от характера числового значения параметра:
- Если это числовое значение положительное, но не является точным целым, возвращаемое число — наибольшее целое, которое меньше числового значения параметра.
- Если это числовое значение отрицательное, но не является точным целым, возвращаемое число — наименьшее целое, которое больше числового значения параметра.
- Если это числовое значение является точным целым, возвращаемое число имеет точно такое же значение.
Синтаксис
TRUNC(X : Number / Numeric_String) : Number
Пример использования
TRUNC(5.0)
Возвращает 5.
TRUNC(5.33)
Возвращает 5.
TRUNC(-5.0)
Возвращает -5.
TRUNC(-5.33)
Возвращает -5.
Советы
Это псевдоним арифметической функции INT.
ZERO
Сводка
Возвращает целое число, значение которого равно 0 или 1 в зависимости от числового значения параметра. Если это числовое значение равно нулю, возвращаемое число — 0; в противном случае возвращаемое число — 1.
Синтаксис
ZERO(X : Number / Numeric_String) : Number
Пример использования
ZERO(5.33)
Возвращает 1.
ZERO(-5.33)
Возвращает 1.
ZERO(0)
Возвращает 0.
Тригонометрические функции
ACOS
Сводка
Возвращает (вещественное) число, значение которого равно углу арккосинуса числа, заданного числовым значением параметра; этот угол выражен в радианах (а не в градусах).
Синтаксис
ACOS(X : Number / Numeric_String) : Number
Пример использования
ACOS(0)
Возвращает 1.5708.
ACOS(0.5)
Возвращает 1.0472.
ACOS(1)
Возвращает 0.
ASIN
Сводка
Возвращает (вещественное) число, значение которого равно углу арксинуса числа, заданного числовым значением параметра; этот угол выражен в радианах (а не в градусах).
Синтаксис
ASIN(X : Number / Numeric_String) : Number
Пример использования
ASIN(0)
Возвращает 0.
ASIN(0.5)
Возвращает 0.5236.
ASIN(1)
Возвращает 1.5708.
ATAN
Сводка
Возвращает (вещественное) число, значение которого равно углу арктангенса числа, заданного числовым значением параметра; этот угол выражен в радианах (а не в градусах).
Синтаксис
ATAN(X : Number / Numeric_String) : Number
Пример использования
ATAN(0)
Возвращает 0.
ATAN(1)
Возвращает 0.7854.
ATAN(2.5)
Возвращает 1.1903.
COS
Сводка
Возвращает (вещественное) число, значение которого равно косинусу угла, заданного числовым значением параметра; этот угол выражен в радианах (а не в градусах).
Синтаксис
COS(X : Number / Numeric_String) : Number
Пример использования
COS(0)
Возвращает 1.
COS(0.8)
Возвращает 0.6967.
COS(1.57)
Возвращает 0.0008.
COSH
Сводка
Возвращает (вещественное) число, значение которого равно гиперболическому косинусу числового значения параметра.
Синтаксис
COSH(X : Number / Numeric_String) : Number
Пример использования
COSH(TextHeight / TextWidth) < 70.5
Возвращает объекты, для которых гиперболический косинус отношения расстояния TextHeight к расстоянию TextWidth меньше 70.5. (Это эквивалентно возврату объектов, для которых отношение расстояния TextHeight к расстоянию TextWidth меньше 4.9487).
(TextHeight / TextWidth) >= COSH(2.3)
Возвращает объекты, для которых отношение расстояния TextHeight к расстоянию TextWidth равно или больше гиперболического косинуса 2.3 (что равно 5.0372).
COTAN
Сводка
Возвращает (вещественное) число, значение которого равно котангенсу угла, заданного числовым значением параметра; этот угол выражен в радианах (а не в градусах).
Синтаксис
COTAN(X : Number / Numeric_String) : Number
Пример использования
COTAN(0.1)
Возвращает 9.9666.
COTAN(0.8)
Возвращает 0.9712.
COTAN(1.57)
Возвращает 0.0008.
SIN
Сводка
Возвращает (вещественное) число, значение которого равно синусу угла, заданного числовым значением параметра; этот угол выражен в радианах (а не в градусах).
Синтаксис
SIN(X : Number / Numeric_String) : Number
Пример использования
SIN(0)
Возвращает 0.
SIN(0.8)
Возвращает 0.7174.
SIN(1.57)
Возвращает 1.0.
SINH
Сводка
Возвращает (вещественное) число, значение которого равно гиперболическому синусу числового значения параметра.
Синтаксис
SINH(X : Number / Numeric_String) : Number
Пример использования
SINH(TextWidth / TextHeight) < 0.17
Возвращает объекты, для которых гиперболический синус отношения расстояния TextWidth к расстоянию TextHeight меньше 0.17. (Это эквивалентно возврату объектов, для которых отношение расстояния TextWidth к расстоянию TextHeight меньше 0.1692).
(TextWidth / TextHeight) >= SINH(0.2)
Возвращает объекты, для которых отношение расстояния TextWidth к расстоянию TextHeight равно или больше гиперболического синуса 0.2 (что равно 0.2013).
TAN
Сводка
Возвращает (вещественное) число, значение которого равно тангенсу угла, заданного числовым значением параметра; этот угол выражен в радианах (а не в градусах).
Синтаксис
TAN(X : Number / Numeric_String) : Number)
Пример использования
TAN(0)
Возвращает 0.
TAN(0.8)
Возвращает 1.0296.
TAN(1.57)
Возвращает 1255.7656.
TANH
Сводка
Возвращает (вещественное) число, значение которого равно гиперболическому тангенсу числового значения параметра.
Синтаксис
TANH(X : Number / Numeric_String) : Number
Пример использования
TANH(TextWidth / TextHeight) < 0.17
Возвращает объекты, для которых гиперболический тангенс отношения расстояния TextWidth к расстоянию TextHeight меньше 0.17. (Это эквивалентно возврату объектов, для которых отношение расстояния TextWidth к расстоянию TextHeight меньше 0.1717).
(TextWidth / TextHeight) >= TANH(0.2)
Возвращает объекты, для которых отношение расстояния TextWidth к расстоянию TextHeight равно или больше гиперболического тангенса 0.2 (что равно 0.1974).
Экспоненциальные и логарифмические функции
EXP
Сводка
Возвращает (вещественное) число, значение которого равно e в степени, равной числовому значению параметра. (Число e является основанием натуральных логарифмов и приблизительно равно 2.7183).
Синтаксис
EXP(X : Number / Numeric_String) : Number
Пример использования
EXP(0)
Возвращает 1.
EXP(1)
Возвращает 2.7183.
LG
Сводка
Возвращает (вещественное) число, значение которого равно десятичному логарифму (по основанию 10) числового значения параметра.
Синтаксис
LG(X : Number / Numeric_String) : Number
Пример использования
LG(1)
Возвращает 0.
LG(10)
Возвращает 1.
LG(25)
Возвращает 1.3979.
LN
Сводка
Возвращает (вещественное) число, значение которого равно натуральному логарифму (или логарифму по основанию e) числового значения параметра. (Число e — это 2.7183).
Синтаксис
LN(X : Number / Numeric_String) : Number
Пример использования
LN(1)
Возвращает 0.
LN(2)
Возвращает 0.6931.
LN(10)
Возвращает 2.3026.
LOG
Сводка
Возвращает (вещественное) число, значение которого равно двоичному логарифму (по основанию 2) числового значения параметра.
Синтаксис
LOG(X : Number / Numeric_String) : Number
Пример использования
LOG(1)
Возвращает 0.
LOG(2)
Возвращает 1.
LOG(8)
Возвращает 3.
LOG(10)
Возвращает 3.3219.
Агрегатные функции
AVG
Сводка
Возвращает (вещественное) число, значение которого равно среднему значению всех переданных параметров. Каждый параметр должен быть либо числом, либо числовой строкой; допускается любое количество параметров.
Синтаксис
AVG(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Пример использования
AVG(2)
Возвращает 2.
AVG(7,2,3)
Возвращает 4.
Советы
- Должен быть указан как минимум один параметр.
MAX
Сводка
Возвращает (вещественное) число, значение которого равно максимальному значению среди всех переданных параметров. Каждый параметр должен быть либо числом, либо числовой строкой; допускается любое количество параметров.
Синтаксис
MAX(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Пример использования
MAX(2)
Возвращает 2.
MAX(7,2,3)
Возвращает 7.
Советы
Необходимо указать как минимум один параметр.
MIN
Сводка
Возвращает (вещественное) число, значение которого равно минимальному значению среди всех переданных параметров. Каждый параметр должен быть либо числом, либо числовой строкой; допускается передавать любое количество параметров.
Синтаксис
MIN(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Пример использования
MIN(2)
Возвращает 2.
MIN(7,2,3)
Возвращает 2.
Советы
Необходимо указать как минимум один параметр.
PROD
Сводка
Возвращает (вещественное) число, значение которого равно произведению всех переданных параметров. Каждый параметр должен быть либо числом, либо числовой строкой; допускается передавать любое количество параметров.
Синтаксис
PROD(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Пример использования
PROD(2)
Возвращает 2.
PROD(7,2,3)
Возвращает 42.
Советы
Необходимо указать как минимум один параметр.
SUM
Сводка
Возвращает (вещественное) число, значение которого равно сумме всех переданных параметров. Каждый параметр должен быть либо числом, либо числовой строкой; допускается передавать любое количество параметров.
Синтаксис
SUM(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Пример использования
SUM(2)
Возвращает 2.
SUM(7,2,3)
Возвращает 12.
Советы
Необходимо указать как минимум один параметр.
Системные функции
Copy
Сводка
Возвращает подстроку строки. Можно указать, сколько символов будет содержать возвращаемая подстрока, а также позицию в строке, с которой будет начинаться возвращаемая подстрока.
Синтаксис
Copy(S : String , Index : Integer , Count : Integer) : String
S — выражение строкового типа. Index и Count — выражения целочисленного типа. Copy возвращает подстроку, содержащую Count символов, начиная с позиции S[Index].
Если Index больше длины S, Copy возвращает пустую строку.
Если Count задаёт больше символов, чем доступно, возвращаются только символы от S[Index] до конца S.
Пример использования
Copy('Cats and dogs',1,1)
Возвращает 'C'. (Возвращает 1 символ, начиная с 1-й позиции в строке).
Copy('Cats and dogs',2,1)
Возвращает 'a'. (Возвращает 1 символ, начиная со 2-й позиции в строке).
Copy('Cats and dogs',13,1)
Возвращает 's'. (Возвращает 1 символ, начиная с 13-й позиции в строке).
Copy('Cats and dogs',14,1)
Возвращает '' (пустую строку). (Возвращает 1 символ, начиная с 14-й позиции в строке; однако в строке всего 13 символов, поэтому возвращается пустая строка).
Copy('Cats and dogs',1,2)
Возвращает 'Ca'. (Возвращает 2 символа, начиная с 1-й позиции в строке).
Copy('Cats and dogs',2,2)
Возвращает 'at'. (Возвращает 2 символа, начиная со 2-й позиции в строке).
Copy('Cats and dogs',12,2)
Возвращает 'gs'. (Возвращает 2 символа, начиная с 12-й позиции в строке).
Copy('Cats and dogs',13,2)
Возвращает 's'. (Возвращает 2 символа, начиная с 13-й позиции в строке; однако в строке всего 13 символов, поэтому возвращается только 1 символ).
Copy('Cats and dogs',15,2)
Возвращает '' (пустую строку). (Возвращает 2 символа, начиная с 15-й позиции в строке; однако в строке всего 13 символов, поэтому возвращается пустая строка).
Copy('Cats and dogs',1,6)
Возвращает 'Cats a'. (Возвращает 6 символов, начиная с 1-й позиции в строке).
Copy('Cats and dogs',5,9)
Возвращает ' and dogs'. (Возвращает 9 символов, начиная с 5-й позиции в строке).
Copy('Cats and dogs',8,5)
Возвращает 'd dog'. (Возвращает 5 символов, начиная с 8-й позиции в строке).
Copy('Cats and dogs',8,6)
Возвращает 'd dogs'. (Возвращает 6 символов, начиная с 8-й позиции в строке).
Copy('Cats and dogs',8,7)
Возвращает 'd dogs'. (Возвращает 7 символов, начиная с 8-й позиции в строке; однако в строке всего 13 символов, поэтому возвращается только 6 символов).
Length
Сводка
Возвращает количество символов в строке.
Синтаксис
Length(S : String) : Integer
S — строка, для которой нужно вернуть количество символов.
Пример использования
Length(Name) Between 4 And 7
Возвращает объекты, у которых есть свойство Name, содержащее от 4 до 7 символов.
Length('Cat')
Возвращает 3.
Length('Darryll')
Возвращает 7.
Length('Cats and dogs')
Возвращает 13.
Length('')
Возвращает 0.
Pos
Сводка
Возвращает индекс первого символа указанной подстроки, встречающейся в заданной строке.
Синтаксис
Pos(Substr : String , S : String) : Integer
Pos выполняет поиск подстроки Substr в строке S. Substr и S — выражения строкового типа. Возвращается целое число — индекс первого символа Substr.
Пример использования
Pos('T',Name) = 1
Возвращает все объекты, у которых есть свойство Name , связанная строка которого впервые содержит 'T' в первой позиции; примеры таких строк: 'T1' и 'Time Table'. ('T' встречается в строке 'Time Table' дважды, но первое вхождение находится в первой позиции.)
Pos('A',Name) = 2
Возвращает все объекты, у которых есть свойство Name , связанная строка которого впервые содержит 'A' во второй позиции; примеры таких строк: 'RA1' и 'CABLE CHART'.
Pos('B',Name) = 0
Возвращает все объекты, у которых есть свойство Name , связанная строка которого не содержит 'B' ни в одной позиции; примеры таких строк: 'D1' и 'Time Table'. (Строка 'Time Table' содержит 'b' в восьмой позиции, но Pos чувствительна к регистру.)
Pos('D',Name) > 0
Возвращает все объекты, у которых есть свойство Name , связанная строка которого содержит 'D' как минимум в одной позиции и в любом месте; примеры таких строк: 'Data Chart', 'U1D' и 'Install either D1 and D2 or D3 and D4, but never install all of these.'.
Pos('Con',Name) = 1
Возвращает все объекты, у которых есть свойство Name , связанная строка которого впервые содержит 'Con' в первой, второй и третьей позициях; пример такой строки: 'Concatenate'. (Первое вхождение 'Con' в 'Concatenate' — это первые три символа; первый символ в 'Con' — 'C', и его позиция — первый символ строки 'Concatenate'.)
Pos('ate',Name) = 5
Возвращает все объекты, у которых есть свойство Name , связанная строка которого впервые содержит 'ate' в пятой, шестой и седьмой позициях; пример такой строки: 'Concatenate'. (Первое вхождение 'ate' в 'Concatenate' — это символы с пятого по седьмой; первый символ в 'ate' — 'a', и его позиция — пятый символ строки 'Concatenate'.)
Pos('ate',Name) = 0
Возвращает все объекты, у которых есть свойство Name , связанная строка которого нигде не содержит 'ate'; примеры таких строк: 'C1' и 'TIME:'.
Pred
Сводка
Возвращает (вещественное) число, значение которого равно числовому значению параметра минус 1.0.
Синтаксис
Pred(X : Number / Numeric_String) : Number
Пример использования
Pred(4.1)
Возвращает 3.1.
Pred(41.313)
Возвращает 40.313.
Random
Сводка
Возвращает случайное число в диапазоне от 0 до X-1.
Синтаксис
Random(X) : Number
Пример использования
Random(10)
Возвращает значение в диапазоне от 0 до 9.
Random(100)
Возвращает значение в диапазоне от 0 до 99.
Succ
Сводка
Возвращает (вещественное) число, значение которого равно числовому значению параметра плюс 1.0.
Синтаксис
Succ(X : Number / Numeric_String) : Number
Пример использования
Succ(2.1)
Возвращает 3.1.
Succ(41.313)
Возвращает 42.313.