Современная электроника №4/2019
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 60 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2019 Введение в язык запросов и построение фильтров в САПР Altium Designer Количество объектов, из которых состоят схемные документы, документы печатных плат и библиотеки, может достигать десятков, сотен, а то и тысяч, и с ними пользователь в процессе проектирования электронного изделия совершает какие-либо действия. Стандартные для операционной системы средства, а также специфические инструменты выбора среды Altium Designer малоэффективны в случаях, когда необходимо выбрать несколько сотен или более объектов, подпадающих при этом под сложные условия. Для таких случаев в Altium Designer предусмотрена система фильтрации объектов, основанная на мощном обработчике запросов. Данная статья призвана облегчить освоение языка запросов и построение фильтров любой сложности. Алексей Якубенко (alexey@idstrade.com) Обработчик запросов является одной из основ среды AltiumDesigner (AD). Его назначение в том, чтобы пользователь мог с лёгкостью получать доступ как к отдельным объектам, так и к их груп- пам любой сложности. Взаимодействие с этим инструментом осуществляется с помощью языка запросов. Используя этот язык, пользователь, по сути, строит фильтры, в соответ- ствии с которыми среда AD отбирает требуемые объекты. Это работает сле- дующим образом. Каждый объект сре- ды AD обладает определённым набором параметров. С помощью запросов поль- зователь задаёт определённые условия. Обработчик запросов проводит анализ параметров всех входящих в проект AD объектов на соответствие этим услови- ям и, если параметры того или иного объекта им соответствуют, такой объ- ект включается в определённую выбор- ку, с которой далее разработчик может совершать какие-либо действия. Язык запросов подобен языкам про- граммирования, основанным на Pascal. Он состоит из функций и операторов, с помощью которых пользователь формирует т.н. запросы, представля- ющие собой выражения, записанные в виде текстовых строк. Большинство функций представляют собой условия выбора объектов, но, помимо них, язык запросов содержит также ряд систем- ных и математических функций. Опе- раторы предназначены для связки функций при построении логических выражений. Рассмотрим пример построения запросов. Допустим, на схеме необходи- мо выбрать все резисторы и конденса- торы. Для этого нужно воспользоваться выборкой по префиксу позиционного обозначения и построить следующий запрос: (PartSymbolReference = ‘R’) Or (PartSymbolReference = ‘C’) . В результате выполнения данно- го запроса на схеме будет отображе- на выборка, состоящая из всех ком- понентов, префикс позиционных обозначений которых представляет собой буквы R или C , т.е. выборка из резисторов и конденсаторов. Функ- ция PartSymbolReference предназначе- на для поиска компонентов в соответ- ствии с префиксом позиционного обо- значения. Префикс задаётся с помощью входного параметра – в данном случае это параметры R и C . Оператор Or ука- зывает, что подходит либо первое усло- вие, либо второе. Скобки также являют- ся операторами и определяют старшин- ство записей в строке запроса. Обратимся к более сложному приме- ру. Допустим, для совершения опреде- лённых действий необходимо выбрать все контактные площадки, имеющие размер более 1 мм и содержащие кру- глые металлизированные отверстия. Для этого подойдёт следующий запрос: IsPad And (PadIsPlated = ‘True’) And (AsMM(PadXSize_AllLayers) > 1) And (AsMM(PadYSize_AllLayers) > 1) And HasRoundHole . Функция IsPad указывает, что в выборку необходимо включить имен- но контактные площадки. За выбор размеров отвечает часть запроса (AsMM(PadXSize_AllLayers) > 1) And (AsMM(PadYSize_AllLayers) > 1) . В AD размер контактных площадок опреде- ляется раздельно по осям X и Y , поэтому и функций применяется две: PadXSize_ AllLayers и PadYSize_AllLayers . Кро- ме того, в наименовании данных функ- ций можно увидеть запись All Layers , что указывает на определения размеров контактных площадок на всех слоях. Нетрудно заметить, что данные функ- ции прописываются в связке с функци- ей AsMM , которая указывает, что опреде- ление размеров контактных площадок должно производиться в метрической системе измерений. Параметр «1» с опе- ратором «>» в данных функциях опреде- ляют, что поставленным условиям соот- ветствуют контактные площадки разме- ром более 1 мм. Функция PadIsPlated с входным параметром True задаёт вклю- чение в выборку контактных площадок с металлизированными отверстиями. Наконец, функция HasRoundHole гово- рит о том, что выбраны должны быть контактные площадки именно с кру- глыми отверстиями, а не с прямоуголь- ными или слотами. Оператор And опре- деляет, что требуется выборка, соответ- ствующая всем указанным условиям одновременно. Нетрудно заметить, что язык запросов содержит функции, как требующие для своего выполнения наличия входных параметров, так и не требующие тако- вых. Если для работыфункции необхо- димы текстовые входные параметры, то они всегда ограничиваются одинар- ными кавычками. Название каждой из функций отражает её назначение, бла- годаря чему значительно облегчается их поиск и работа с запросами. ADподдер- живает около тысячифункций и описать их в рамках данной статьи не представ- ляется возможным, поэтому рекоменду- ется помере необходимости обращать- ся к [1], где для каждойфункции приво- дятся описание, синтаксис, примеры и рекомендации по использованию. В таблице 1 приведены операторы языка запросов. Очевидно, что боль- шинство из них пояснений не требует. Нужно лишь оговориться, что, в отли- чие от остальных операторов сравне- ния, оператор Like работает не с чис- ленными, а со строковыми данными. В примере, приведённом в таблице для этого оператора, функция Name опре- деляет, что пользователя интересуют
RkJQdWJsaXNoZXIy MTQ4NjUy