Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как правильно задать фильтр
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Altium Designer, DXP, Protel
Sergey Makarov
Всем Добрый День!
Прошу помощи. Для выделения в механическом слое требуется выделить линии определенной длины (на плате их очень большое кол-во) и перенести их в соседний слой. Использую фильтр (OnLayer ('Mechanical 15')) And (IsTrack) And (TraceLength < 40). Выделются все линии на механическом слое 15. TraceLength < 40 не работает. Хотя для проводников печатного рисунка фильтр срабатывает. Такое ощущение что для механики правила работают некорректно. Может делаю что не так? Заранее благодарен.
Rodavion
У меня тоже фильтр на мех. слоях для правила TraceLength < не работает - выделяет все треки. АД10
Sergey Makarov
Цитата(Rodavion @ Jul 18 2011, 10:55) *
У меня тоже фильтр на мех. слоях для правила TraceLength < не работает - выделяет все треки. АД10

ага на и на 9 и на 10 тоже попробовал, результат один и тот же, все треки выделяются. Пришлось пока вручную выделять. Либо как вариант перенести на слой топ все линии, применить фильтр, остальное обратно перенести на механику.
Master of Nature
Цитата(Sergey Makarov @ Jul 18 2011, 13:35) *
ага на и на 9 и на 10 тоже попробовал, результат один и тот же, все треки выделяются. Пришлось пока вручную выделять. Либо как вариант перенести на слой топ все линии, применить фильтр, остальное обратно перенести на механику.

В таком случаем не обязательно на TOP, можно воспользоваться любым другим сигнальным слоем.
Sergey Makarov
Цитата(Master of Nature @ Jul 18 2011, 13:40) *
В таком случаем не обязательно на TOP, можно воспользоваться любым другим сигнальным слоем.

согласен. Просто Топ был упомянут для примераsm.gif

PS: Интересно данный недочет можно считать багом альтиума и надеяться на исправление? Или и так пойдет?
Vokchap
Читаем описание на tracelenght из хэлпа:

Цитата
Description
Returns arc and track objects on Signal layers whose length complies with the Query.


Поэтому на механике пишите выражение для длины в явном виде: sqrt(sqr(x1 - x2) + sqr(y1 - y2).

т.е. в запросе автора д.б. (objectkind = 'Track') & (l = 'Mechanical 15') & (sqrt(sqr(x1 - x2) + sqr(y1 - y2)) < asmm(40)).
Sergey Makarov
Цитата(Vokchap @ Jul 18 2011, 15:01) *
Читаем описание на tracelenght из хэлпа:



Поэтому на механике пишите выражение для длины в явном виде: sqrt(sqr(x1 - x2) + sqr(y1 - y2).

т.е. в запросе автора д.б. (objectkind = 'Track') & (l = 'Mechanical 15') & (sqrt(sqr(x1 - x2) + sqr(y1 - y2)) < asmm(40))


проверил, не работаетsad.gif
Vokchap
Цитата(Sergey Makarov @ Jul 18 2011, 19:16) *
проверил, не работаетsad.gif

Плохо проверили. Попробуйте ещё.

ps
Имена собственные пишутся с БОЛЬШОЙ буквы (track и Track - разные объекты) biggrin.gif .
Sergey Makarov
Цитата(Vokchap @ Jul 18 2011, 15:18) *
Плохо проверили. Попробуйте ещё.

ps
Имена собственные пишутся с БОЛЬШОЙ буквы (track и Track - разные объекты) biggrin.gif .

Во! как только asmm перед 40 убрал, заработалоwink.gif Что за директива такая интересная? и не ругается на нее, а использовав не выделяет нужные иэлементы.

Цитата(Sergey Makarov @ Jul 18 2011, 15:25) *
Во! как только asmm перед 40 убрал, заработалоwink.gif Что за директива такая интересная? и не ругается на нее, а использовав не выделяет нужные иэлементы.

это чтоб работать в ммsm.gif все понял, а я работал в милсах
Vokchap
Это значит, что число в миллиметрах. Не должно НЕ работать. Надёжнее указывать единицы явно.
Sergey Makarov
Цитата(Vokchap @ Jul 18 2011, 15:28) *
Это значит, что число в миллиметрах. Не должно НЕ работать. Надёжнее указывать единицы явно.

Спс Vokchap! Все работает! Пошел читать доки по QueryLanguage...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.