Определение фильтра
Теперь рассмотрим относительно более сложный пример. Допустим, что нужно загрузить все компоненты автомобиля, которые используются в электросхеме и расположены в передней части привода, но не входят в набор компонентов, который уже рассматривался. Допустим для данного примера, что атрибут части USAGE всех элементов электросхемы имеет значение Electrical, что передняя часть автомобиля определяется зоной-плоскостью DRIVER_PZ через опорную поверхность привода, и что имеется набор CONSIDERED_CS, в который включаются уже проверенные компоненты. Вы можете действовать следующим образом:
Задайте имя фильтра: FORWARD_ELECTRICALS_F.
Рекомендуется принять определенные условности для имен объектов, которые позволяют понять их назначение. В данном случае мы будем использовать окончание _F для фильтров, _PZ - для зон-плоскостей, _BZ - для зон-параллелепипедов, _CS - для наборов компонентов и _S - для сценариев.
Выберите в меню опцию Zone [Зона]. Появится дополнительное меню - способы задания зоны фильтра.
Для данного примера выберите опцию Above .
Теперь выберите зону DRIVER_PZ и нажмите OK.
В списке зон Вы увидите имена двух специальных зон:
User_Zone | Если это название присутствует в фильтре, то при выполнении фильтра (при открытии сборки с фильтром) система будет запрашивать имя зоны, а при выполнении сценария будет использовать зону, объявленную пользовательской по умолчанию в диалоговом окне Zone. | ||
Work_Part_Volume | Эта зона представляет габаритную рамку текущей рабочей части. Ее удобно использовать при проектировании в контексте сборки для идентификации компонентов, которые находятся вблизи рабочей части. |
Текущий фильтр определен выражением Above(DRIVER_PZ). Нам нужно еще ограничить его, оставив только элементы электросхемы.
Выберите в меню опцию And .
Теперь нажмите клавишу Attribute .
Появится диалоговое окно со списком атрибутов, имеющихся в изображенной части. Если работа организована должным образом, то все части должны иметь стандартный набор атрибутов части. В данном примере изображенная часть должна иметь атрибут USAGE. Выберите из списка этот атрибут USAGE или введите это имя в поле ввода. (Имейте в виду, что Вы можете работать с полным списком атрибутов всех компонентов сборки, но формирование такого списка в общем случае происходит очень долго).
Выберите операцию "=" и введите в поле значение Electrical, а затем нажмите OK.
Теперь Ваш фильтр выглядит так:
Above(DRIVER_PZ) && USAGE=="Electrical"
Этот фильтр отбирает все компоненты, которые находятся впереди привода И являются элементами электросхемы.
Теперь выберите And и Not .
Наконец, выберите в окне списка IsIn(CONSIDERED_CS).
Ваш фильтр приобретет окончательный вид:
Above(DRIVER_PZ)&&USAGE=="Electrical"&&!IsIn (CONSIDERED_CS)
Этот фильтр отбирает все компоненты, которые находятся впереди привода И являются элементами электросхемы И еще НЕ были проверены.
При определении фильтра очень удобно использовать опцию Preview Filter [Предварительный просмотр Фильтра] для подсветки компонентов, которые удовлетворяют условию фильтра, чтобы проверить, что это именно то, что Вам нужно.
Имейте в виду, что обычно один и тот же фильтр можно определить несколькими способами. В приведенном выше примере можно было остановиться после шага 7 и определить второй фильтр (FORWARD_ELECTRICALS_NEW_F) как:
FORWARD_ELECTRICALS_F && !IsIn(CONSIDERED_CS)
Это пример вложенного использования фильтров.
Весь список определенных фильтров можно просмотреть с помощью опции List . Фильтры можно передавать между частями, вначале экспортируя их в текстовый файл, а затем импортируя в другую часть.
Если Ваша работа организована таким образом, что вся сборка разбита на зоны и наборы компонентов, и для всех частей имеются атрибуты, которые можно сравнивать, Вы можете сделать некоторые из своих фильтров глобальными. Для этого создается внешний текстовый файл component_filters.flt
(в формате файлов экспорта фильтров), который доступен всегда, когда можно использовать фильтры.