Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Правила в Altium Designer
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Altium Designer, DXP, Protel
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
eXeC001er
Предлагаю в этоц теме складывать правила для Altium Designer.
Просьба указывать версию вашего AD.
самое удобное будет скриншот окна с описанным правилом и маленькое описание что оно делает.
Владимир
Цитата(eXeC001er @ Jul 30 2008, 20:05) *
Предлагаю в этоц теме складывать правила для Altium Designer.
Просьба указывать версию вашего AD.
самое удобное будет скриншот окна с описанным правилом и маленькое описание что оно делает.


В октябре надеюсь выйдет первая часть-- там основные правила без относительно проекта,

Затем вторая часть- с учетом проекта, и далее все для много слоек, дифпар и то до чего руки дойдут, если дойдут.
Именно в последних будет и текст и результат действия, так как именно они сложные.
Первай особого интереса кроме как общеобразовательного не представляют. Но и конечно просто как примери и систепа построения.
eXeC001er
Цитата(Владимир @ Jul 30 2008, 22:21) *
В октябре надеюсь выйдет первая часть-- там основные правила без относительно проекта,


ёлы палы 07.gif . я думал в августе уже почитать статейку.
ну чтоже бум ждать.


вот полезное правило:
позволяет задавать зазор между полигоном и другими объектами трассировки отдельно от основного зазора.Нажмите для просмотра прикрепленного файла
Владимир
Дай бог в августе --- использование базы данных в качестве библиотеки.
Alex Ko
Цитата(Владимир @ Jul 30 2008, 22:55) *
Дай бог в августе --- использование базы данных в качестве библиотеки.

О! Давно собираюсь пользовать, только не очень знаю, зачем..
Владимир
Цитата(Alex Ko @ Jul 31 2008, 11:07) *
О! Давно собираюсь пользовать, только не очень знаю, зачем..


Мне понравилось, особенно удобно поиск компонетов.
Правда дольше подгружается. Заметна задержка.
eXeC001er
вот еще онд правило: (сам сделал)
позволяет PAD отнесенные к определенному классу (у меня на картинке класс GND_PAD) присоединять к полигону напрямую без термопереходов, ну или так как вам надо (т.е. отлично от других PAD)
Работать должно в любой версии.
Нажмите для просмотра прикрепленного файла
RXgade
Цитата(Владимир @ Jul 30 2008, 22:55) *
Дай бог в августе --- использование базы данных в качестве библиотеки.


А буду какие-нибудь фичи описаны, или только стандартные приемы работы из документации?

Ой. кажется я невтой теме не те вопросы задаю. Сори
Krys
Хочу задать зазоры дифференциальной пары между проводниками.
В обоих окошках записАл: InDifferentialPairClass('All Differential Pairs').
Нормально.
Но теперь мне надо, чтобы это правило сработало только для нужной толщины проводника, т.к. соблюсти это условие при выходе с микросхемы не удаётся.
В одном из окошек оставляю всё по-старому, в другом пишу:
InDifferentialPairClass('All Differential Pairs') And (Width > 0.2).
Теперь правило не срабатывает. Работает правило по умолчанию. Т.е. ширину проводника он не чует. Приоритеты правил, разумеется, выставил. В переключателе цепей поставил Any net. Версия AD 6.7.9346
Подскажите, пожалуйста, что не так.

П.С. пробовал ещё такую строчку: InDifferentialPairClass('All Differential Pairs') And (AsMM(Width) > 0.2) - бесполезно.
Владимир
Вот аналог из одного из проектов

InAnyDifferentialPair

isTrack And (TraceLength < 100) And (WithinRoom('A2') Or WithinRoom('A4') Or WithinRoom('A5') Or WithinRoom('A8') Or WithinRoom('A9')


работает
Krys
Цитата(Владимир @ Aug 5 2008, 17:07) *
InAnyDifferentialPair
Не нашёл такого в query helper'e. А когда вписАл - не ругается. Даже не знал, что такая функция существует.
Попробовал ещё вот так:
_______
isTrack And InDifferentialPairClass('All Differential Pairs') And (Width > 0.2)
_______
InAnyDifferentialPair
_______
Бесполезно...
При том, когда стираю And (Width > 0.2) - правило начинает работать, т.е. соблюдать заданный зазор. Очевидно, что с толщиной линии не понимает...
Владимир, а приведённое Вами правило действовало для зазоров?
Владимир
Вставьте в формулу
(IsTrack And Width >= 0.5)
Krys
Увы... сделал вот так:
______
(IsTrack And Width >= 0.4)
______
IsTrack
______

Эффект тот же... т.е. нулевой. Срабатывает правило для зазоров по умолчанию, а не это.
Увы... сделал вот так:
______
(IsTrack And Width >= 0.4)
______
IsTrack
______

Эффект тот же... т.е. нулевой. Срабатывает правило для зазоров по умолчанию, а не это.
Для точности добавлю, что толщина дорожки дифференциальной пары у меня 0,4, зазор между ними 0,2. А по умолчанию у меня дорожки 0,2 и зазор 0,15. Вот зазор 0,15 я сейчас наблюдаю для дорожек любой толщины. А должен быть 0,2.
Владимир
Учтите там есть гадость. правила работуют для тех единиц, что являются активными.
явно писать единицы в формулах не дает.
Во вторых, что бы узнать какое правиде действует--- выделите элемен ЮЮ правая кнопка юю Aplicate binary (unaru) Rules

А так перед отпуской апломб. Ничего делать и проверять не хочется. smile.gif
Krys
Цитата(Владимир @ Aug 5 2008, 18:40) *
Учтите там есть гадость. правила работуют для тех единиц, что являются активными.
явно писать единицы в формулах не дает.
На этот счёт есть такая функция: AsMM(Width), я её тоже использовал - бесполезно. Хотя, у меня активные единицы всё равно миллиметры. И зазоры я ставлю в миллиметрах. Даже если подумать: милсы - это ещё меньше десятых миллиметра, поэтому под это правило у меня должны попадать все дорожки, а этого не происходит. Но на всякий случай я попробовал такой ход: Width < 0.4. Т.е. сделал неравенство наоборот. Всё равно правило не работает.
Цитата(Владимир @ Aug 5 2008, 18:40) *
Во вторых, что бы узнать какое правиде действует--- выделите элемен ЮЮ правая кнопка юю Aplicate binary (unaru) Rules
Спасибо, полезная функция. Ещё раз показала, что моё созданное правило не работает, а работает то, что по умолчанию.
Цитата(Владимир @ Aug 5 2008, 18:40) *
А так перед отпуской апломб. Ничего делать и проверять не хочется. :)
Вам приятного отпуска. Будем надеяться, кто-то ещё сможет что-то подсказать.
_________________________________________________________________
Попробовал сделать просто через панель PCB Filter. Дал запрос Width > 0.2. Выдало ошибку Error Occurred while Running script
Т.е. получается, что слово Width он не любит. Как бы его обмануть...
Если кому-нибудь нетрудно, попробуйте, пожалуйста, на своём АД сделать подобный поиск дорожек с использованием ширины дорожки. Тоже ошибку даст или нет... То ли глюк у меня в самом АД. Может, переустановить его...


Какие ещё обходные пути кто может предложить? Ещё раз постановка задачи: Дорожка должна иметь большую толщину и большой зазор, но от микросхемы её такой вывести нереально, поэтому недалеко приходится выводить с малой толщиной и малым зазором. Я пытаюсь задать правило для зазора, которое бы в зависимости от толщины дорожки устанавливало бы разный допустимый зазор. Пока в тупике, даже разводить дальше не могу - застрял на этом.
Krys
Найдено решение проблемы. Хоть и обходной путь, но всё же. Спасибо человеку с ником Dxp. Нужно правило указывать только в милсах и дорожку проводить в милсах, тогда срабатывает.
Похоже, очередной баг
Владимир
Цитата
Нужно правило указывать только в милсах и дорожку проводить в милсах

Я же и писал, работает только в тех единицах, что активные, а явно писать не дает. И это здоровеннный недостаток. Так как при переходе с мил нп милиметры-- все числовые значения перерасчитываются (изменятся), а в правилах остаются неизменными безымянными . Я пишу правила как раз для милс, испытываю меньше не удобст. Тянется эта гадасть с доисторических времен.
Krys
Увы... рано я порадовался... Один раз сработало тогда, а сейчас также выдрючивается похоже... У меня и с миллиметрами поначалу работало, потом перестало. Похоже, там какая-то одноразовая система. Один раз даёт работать в миллиметрах, потом в милсы переходишь - ещё раз. А потом уже не работает ни в тех, ни в тех единицах :(
Спишем всё на версию, она у меня старая, а новую скачать нет возможности пока. Пришлось пока дедовским способом выставлять зазор...
Владимир
Она делает перерасчеты. Поэтопу появляются округления
Не надо пользоватся знаком равно. Только больше менише или в диапазоне. smile.gif тогда проблемы округления пропадут.
Krys
Беда у меня с этими правилами...
Прошлую проблему я решил тупо. Вручную переключал в правилах зазор, когда надо было тянуть дифференциальную пару. Т.е. всегда стоял 0,15, а когда тянул пару, ставил 0,2. Потом обратно. В пикаде в принципе так делал всегда.
Но теперь опять появилась проблема, на этот раз с зазором между полигонами и дорожками. Поскольку это была уже вторая проблема при работе в АД версии 6.7, то я таки решился перейти на АД саммер 08. Не изменилось ничего.
Вот тут мой файл: Нажмите для просмотра прикрепленного файла
Задаю правило в разделе Clearance:
__________________________________________
IsTrack And InDifferentialPairClass('All Differential Pairs')
__________________________________________
InPolygonClass('All Polygons')
__________________________________________
Для этого правила зазор 0,2. По умолчанию для всего остального зазор 0,15.
АД моего правила внаглую не видит, у всех полигонов до дорожек зазор 0,15, а не 0,2, как требуется.
Даю команду Applicable binary rules, выбираю дорожку и полигон - табличка с перечнем правил просто не вылазиит. Хотя правило там хоть какое-то должно быть, ведь зазор 0,15 всё равно откуда-то берётся, хоть и не 0,2.
Пробовал я поставить правило таким образом:
__________________________________________
IsTrack And InDifferentialPairClass('All Differential Pairs')
__________________________________________
All
__________________________________________
Так заработало. Разумеется, всё вокруг поменяло цвет, сигнализируя об ошибках в зазорах. Зато полигоны перезалились с зазором 0,2.
Попробовал записАть так:
__________________________________________
IsTrack And InDifferentialPairClass('All Differential Pairs')
__________________________________________
IsPoly
__________________________________________
АД сказал, что в правиле ошибка, и не желаю ли я ошибку исправить. Т.е. IsPoly вообще не понимает.

Попробовал ещё так:
__________________________________________
IsTrack And InDifferentialPairClass('All Differential Pairs')
__________________________________________
IsNamedPolygon('top_common_gnd')
__________________________________________

Тоже нулевая реакция, т.е. зазор остаётся 0,15 после перезаливки.
Я думал, может, АД не видит заданных мной условий для полигонов. Попробовал эти же условия ввести в PCB Filter (по очереди, не все сразу):
InPolygonClass('All Polygons')
IsPoly
IsNamedPolygon('top_common_gnd')
В таком виде фильтр выделяет правильно нужные полигоны.

Кто может что-нибудь посоветовать? Попробуйте, пожалуйста, у себя мой файл, будет ли такая проблема. АД я поставил свежий только недавно, так что переставлять его можете не советовать. Да, комп уже довольно старенький, 2 ГГц, одноядерник, видюха встроенная какая-то без DirectX 9.0c. Может так видюха влияет?

ЗЫ: при переходе на новый АД проблема с заданием зазора в зависимости от ширины трассы также не исчезла. Когда в PCB Filter встречается строка со словом Width, то пишется та же самая ошибка Error Occurred while Running script
Alex Ko
Цитата(Krys @ Aug 6 2008, 08:15) *
Если кому-нибудь нетрудно, попробуйте, пожалуйста, на своём АД сделать подобный поиск дорожек с использованием ширины дорожки. Тоже ошибку даст или нет... То ли глюк у меня в самом АД. Может, переустановить его...
Какие ещё обходные пути кто может предложить? Ещё раз постановка задачи: Дорожка должна иметь большую толщину и большой зазор, но от микросхемы её такой вывести нереально, поэтому недалеко приходится выводить с малой толщиной и малым зазором. Я пытаюсь задать правило для зазора, которое бы в зависимости от толщины дорожки устанавливало бы разный допустимый зазор. Пока в тупике, даже разводить дальше не могу - застрял на этом.

Поиск - старый баг, в новых версиях остался http://electronix.ru/forum/index.php?showt...4963&st=66#

Я делал так: с BGA вывводил пары вручную тонкими одиночными линиями, задав нужный зазор, а выйдя на простор - дифпарами. Хотя глючно всё весьма..
Anchic
Добрый день!

Вообще в AD не работала smile.gif . Но когда у нас на фирме был поднят вопрос выбора пакета Expedition или AD, пришлось немного полазить в последнем для ознакомления. Искала целенаправленно те же возможности, которые используем в Expedition`e. Разные правила для выхода из-под микросхемы и трассировке вне ее в Expedition задаются с помощью Rule Area (и ширина дорожек внутри этой зоны, и зазоры в ней). Поэтому в AD сразу искала аналог и нашла его smile.gif Нарисовала Room вокруг требуемой микросхемы. А потом задала правила внутри и вне ее. См. рис.
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
dimay
Цитата(Krys @ Aug 15 2008, 08:40) *
Задаю правило в разделе Clearance:
__________________________________________
IsTrack And InDifferentialPairClass('All Differential Pairs')
__________________________________________
InPolygonClass('All Polygons')
__________________________________________


Я не очень разбирался с Вашими всеми правилами.
Если вместо InPolygonClass('All Polygons') написать просто InPoly или InPolygon, то всё должно работать.
Удачи.
Krys
Цитата(dimay @ Aug 18 2008, 16:26) *
Я не очень разбирался с Вашими всеми правилами.
Если вместо InPolygonClass('All Polygons') написать просто InPoly или InPolygon, то всё должно работать.
Удачи.
Да я вижу, что не читали. ПРоверял я это:
Цитата
Попробовал записАть так:
__________________________________________
IsTrack And InDifferentialPairClass('All Differential Pairs')
__________________________________________
IsPoly
__________________________________________
АД сказал, что в правиле ошибка, и не желаю ли я ошибку исправить. Т.е. IsPoly вообще не понимает.






Цитата(Anchic @ Aug 18 2008, 13:37) *
Разные правила для выхода из-под микросхемы и трассировке вне ее в Expedition задаются с помощью Rule Area (и ширина дорожек внутри этой зоны, и зазоры в ней). Поэтому в AD сразу искала аналог и нашла его :) Нарисовала Room вокруг требуемой микросхемы. А потом задала правила внутри и вне ее.
Спасибо, но это не то, что мне надо. У меня не работает вполне конкретное правило. В целом вроде правилами пользоваться умею давно (в большей или меньшей степени).


Цитата(Alex Ko @ Aug 18 2008, 13:19) *
Я делал так: с BGA вывводил пары вручную тонкими одиночными линиями, задав нужный зазор, а выйдя на простор - дифпарами. Хотя глючно всё весьма..
Я вообще управиться с differential pair routing не смог. Проводил дифференциальные пары как обычные. Увы...
А с полигонами пришлось поступить тупо, как в пикаде. Хотя это мне добавило ооооочень много неудобств.
Я создал правило для зазоров между дорожкой и любым объектом и поставил 0,2. Оно работает. Я его включаю на время заливки полигонов. Потом правило приходится отключать, чтобы на все остальные зазоры не ругалось. Для всего остального действует правило по умолчанию 0,15.
Короче мой вывод такой, что глюки свели на нет все преимущества AD перед пикадом, потому что в конечном счёте я этими преимуществами (гибкость правил) воспользоваться не смог, и пришлось делать всё по-тупому.
Krys
Появился ещё один вопросик по написанию правил. Не работает SCH Filter по такому правилу: HasParameter('Value','=Comment')
Дошло то, что при поиске автоматически выполняется подстановка того значения, на которое идёт ссылка. Галочку Convert Special Strings пробовал и включать, и выключать. Безрезультатно. Аналогично при выполнении команды Update Schematic in.. из редактора ПП поле Comment сравнивается только по значениям. Т.е. если в схеме в этом поле стоит =Value, а в ПП стоит конкретное значение то сравниваться будут сами эти значения. Также галочка Convert Special Strings ни на что не влияет.
Вопрос: как мне заставить фильтр найти параметр Value, в котором имеется именно специальная строка типа =Comment
?
Vokchap
Цитата(Krys @ Aug 21 2008, 15:01) *
Вопрос: как мне заставить фильтр найти параметр Value, в котором имеется именно специальная строка типа =Comment
?

ParameterValue = '=Comment'

или если принципиально

(ParameterValue = '=Comment') & (ParameterName = 'Value')

Цитата(Krys @ Aug 21 2008, 15:01) *
... при поиске автоматически выполняется подстановка того значения, на которое идёт ссылка...

Так задумано для гибкости поиска. smile.gif
Krys
Прошу прощения, не указал один нюанс: мне нужно найти компонент, у которого имеются указанные условия.
(ParameterValue = '=Comment') & (ParameterName = 'Value') - я так делал, находит сам параметр, но не компонент.
Мне нужно найти сам компонент, т.к. с ним нужно проводить определённые действия. Да, у параметра в SCH List есть колонка Owner, но она мне ничего не даёт. Через неё выделить сами компоненты я не могу. Или я ошибаюсь? Поправьте, пожалуйста, если неправ.
Krys
Пока сделал так:
Сформировал в фильтре запрос
(ParameterValue = '=Comment') & (ParameterName = 'Value')
Поменял у всех поле Value на 'See_Comment'.
А потом уже использовал по-нормальному поиск по HasParameter('Value','See_Comment'). Т.е. я ушёл от специальных строк.
dimay
Цитата(Krys @ Aug 19 2008, 10:32) *
Да я вижу, что не читали. ПРоверял я это:

Да я тоже вижу, что Вы невнимательно читали. Я написал не IsPoly, а InPoly,
всего одна буква разница, а имеет большое значение. smile.gif
Krys
dimay, простите, пожалуйста, был неправ.
Ваше InPoly заработало. Спасибо. Правда, слишком поздно, я уже так намучался, вручную. А плату уже отдал в производство :)
Единственное, что расстраивает - не было InPoly в списке Query Helper. Или я не туда смотрел? Получается, что этот хелпер неплолный, и мне нужно перечитывать всю докмуентацию, чтобы найти нужную мне функцию.
___________________________
Ещё раз был неправ. В хелпере нашлась такая функция, но среди attribute check. Кто бы мог догадаться... Ну да ладно, это вопрос стереотипов.
___________________________

Ещё, если нетрудно, разжуйте, пожалуйста, почему не заработало IsPoly? В чём нюанс? И если в моей задаче сработало InPoly, то в каком случае сработает IsPoly?
И почему не заработало InPolygonClass? (тоже слово In присутствует).

ЗЫ: а про проблему с Width не сможете что-нибудь посоветовать?
Vokchap
Цитата(Krys @ Aug 22 2008, 07:14) *
Мне нужно найти сам компонент, т.к. с ним нужно проводить определённые действия. Да, у параметра в SCH List есть колонка Owner, но она мне ничего не даёт. Через неё выделить сами компоненты я не могу.

Можно если осторожно.
После фильтрации (ParameterValue = '=Comment') & (ParameterName = 'Value')
нажимаем Owner в группе Object Specific инспектора. Далее в sch list имеем список требуемых компонентов.

Цитата(Krys @ Aug 22 2008, 12:04) *
Ещё, если нетрудно, разжуйте, пожалуйста, почему не заработало IsPoly? В чём нюанс? И если в моей задаче сработало InPoly, то в каком случае сработает IsPoly?
И почему не заработало InPolygonClass? (тоже слово In присутствует).

ЗЫ: а про проблему с Width не сможете что-нибудь посоветовать?

В данном случае нужны объекты, составляющие полигон (дуги, треки), а не сам полигон как объект. Вот и всё отличие. InPolygonClass не будет работать по этой же причине. А проблема с Width она аппаратная, мучает на сильно старых машинах ...
dimay
Vokchap уже написал почему нужно писать именно InPoly. Кстати это правило уже много раз всплывало тут на форуме и даже в этом топике на первой странице.
А вот с правилом Width я не знаю, у меня оно тоже не работает, просто игнорируется. Если строка с правилом длинная, то все остальное из этой строки выполняется, а на заданную ширину проводников внимание не обращается. Насчет того, что это аппаратная проблема, я в этом сомневаюсь, хотя у меня пентиум 3 ГГц и 1 Гб памяти, а видеокарта не поддерживает DirectX, что по сегодняшним меркам действительно не ахти.
Vokchap
Цитата(dimay @ Aug 22 2008, 16:05) *
А вот с правилом Width я не знаю, у меня оно тоже не работает, просто игнорируется. Если строка с правилом длинная, то все остальное из этой строки выполняется, а на заданную ширину проводников внимание не обращается. Насчет того, что это аппаратная проблема, я в этом сомневаюсь, хотя у меня пентиум 3 ГГц и 1 Гб памяти, а видеокарта не поддерживает DirectX, что по сегодняшним меркам действительно не ахти.

Возможно я что-то упустил в беседе. Под проблемой с Width я подразумевал сообщения об ошибках при работе с фильтром. Регулярно сталкивался с этим на дохленьках машинах с селеронами, чего нет на современных конфигурациях.
Владимир
Цитата
Под проблемой с Width

Что-то я пропустил проблему с Width
Хотя бог с ней. За неделю я думаю разрешится.
Если нет-- тогда решу.
AndreworNIL
Пытаюсь создать несколько правил MinimumAnnularRing для разных диаметров отверстий и ничего не выходит. Запрос пишу примерно такой (IsPad OR IsVia) AND (HoleSize between 0.4 AND 0.7). пробовал использовать функции конвертации систем AsMM и AsMIL, задавать другую систему для документа - один фиг. Если отверстия объединить в класс, то запрос работает. Чувствую, что HoleSize так впрямую использовать нельзя, но как сделать иначе не понимаю. Помогите, пожалуйста
Krys
Цитата(AndreworNIL @ Aug 24 2008, 15:00) *
Пытаюсь создать несколько правил MinimumAnnularRing для разных диаметров отверстий и ничего не выходит. Запрос пишу примерно такой (IsPad OR IsVia) AND (HoleSize between 0.4 AND 0.7). пробовал использовать функции конвертации систем AsMM и AsMIL, задавать другую систему для документа - один фиг. Если отверстия объединить в класс, то запрос работает. Чувствую, что HoleSize так впрямую использовать нельзя, но как сделать иначе не понимаю. Помогите, пожалуйста

Нашёл на странице 4 в документе TR0110 Query Language Reference.PDF в папке help в АД вот что:
Код
Example:
HoleDiameter Between 30 And 50
To be returned, an object has to have a Hole Diameter that is greater than or equal to 30, and less
than or equal to 50.
Т.е. можно попробовать не HoleSize, а HoleDiameter

Попробуйте ещё использовать не between, а двойное неравенство типа < и >. А если и так не пойдёт - попробуйте для начала одиночное неравенство и цифры попробуйте очень маленькие и очень большие для пробы: понимает ли он хоть что-нибудь.

Цитата(Владимир @ Aug 24 2008, 00:50) *
Что-то я пропустил проблему с Width
Хотя бог с ней. За неделю я думаю разрешится.
Если нет-- тогда решу.
C width проблема пока не решилась. Суть тут: http://electronix.ru/forum/index.php?s=&am...st&p=449092
Могу выложить свой *.pcb. Я его даже где-то выкладывал.
Krys
Цитата(Vokchap @ Aug 22 2008, 18:09) *
Можно если осторожно.
После фильтрации (ParameterValue = '=Comment') & (ParameterName = 'Value')
нажимаем Owner в группе Object Specific инспектора. Далее в sch list имеем список требуемых компонентов.
Спасибо, сработало. ПРо инспектор я как-то не подумал...


Цитата(Vokchap @ Aug 22 2008, 21:13) *
Под проблемой с Width я подразумевал сообщения об ошибках при работе с фильтром
При упоминании слова Width в любых комбинациях в фильтре выскакивает ошибка сценария. Но это не главное. Проблема в том, что не воспринимается ширина проводника при задании правил, скажем, зазоров.
AndreworNIL
Цитата(Krys @ Aug 25 2008, 12:59) *


Читал я эти документы. Пробовал и HoleSize и HoleDiameter и Hole и двойное неравенство и between и точное равнество - толку ноль. Такое ощущение, что для правила AnnularRing поле HoleSize невидимо и обратиться к нему нельзя.
Krys
Цитата(AndreworNIL @ Aug 26 2008, 03:02) *
Читал я эти документы. Пробовал и HoleSize и HoleDiameter и Hole и двойное неравенство и between и точное равнество - толку ноль. Такое ощущение, что для правила AnnularRing поле HoleSize невидимо и обратиться к нему нельзя.
Охотно верю. Возможно, у меня с полем Width точно такая же история.
AndreworNIL
Цитата(Krys @ Aug 26 2008, 06:45) *


Есть там Queue Helper и Queue Builder. И сложилось у меня токое впечатление, что если в билдере параметра нет, то задавать его в запросе бесполезно - система его не опознает.
Krys
Если быть точным, то не Queue, а query.
А билдером я пользоваться так и не научился... Пользуюсь только хелпером. Попробовал сейчас зайти в билдер поискать своё свойство width, с которым у меня проблемы. Не нашёл. В билдере только принадленжости можно устанавливать к определённым классам и т.п. Может, я не умею пользоваться, но меня этот инструмент не впечатлил.
AndreworNIL
Установил сервис-пак. Стало лучше, но ненамного. Правило HoleDiameter >=1 применяется ко всем отверстиям с целым диаметром. т. е. 1мм, 2мм, 3мм и тд.
Владимир
Цитата(AndreworNIL @ Aug 24 2008, 11:00) *
Пытаюсь создать несколько правил MinimumAnnularRing для разных диаметров отверстий и ничего не выходит. Запрос пишу примерно такой (IsPad OR IsVia) AND (HoleSize between 0.4 AND 0.7). пробовал использовать функции конвертации систем AsMM и AsMIL, задавать другую систему для документа - один фиг. Если отверстия объединить в класс, то запрос работает. Чувствую, что HoleSize так впрямую использовать нельзя, но как сделать иначе не понимаю. Помогите, пожалуйста


скопировал правило. размеры изменил на MIL.

Все работает. Скрин приложен
Beginning
Подскажите, какое правило надо для следующего случая.
Изначально правило Component Clearance было вида ALL-ALL. Но есть два компонента X1 и X2 которые должны стоять вплотную друг к другу. Как должно изменится правило, что бы исключить эти два компонента из проверки. Кстати если ставишь клиренц 0 то ошибка всё равно есть. Т.к. компоненты – колодки, одна вставляется в другую, и на плате они окантовками накладываются друг, на друга и даже при 0 клиренсе возникает ошибка. Как их вообще исключить из проверки?
Владимир
для этех компоненотов новое правило с более высоким приоритетом и ОТРИЦАТЕЛНЫМ значением зазора, по абсолютной величене превосходящей их реальное пересечение.
Beginning
Это впринципе я знаю, и про отрицательное значение тоже. Но мне интересно было написать конструкцию именно в одном правиле.
Владимир
не получится-- значения зазоров разные.
уж лучше рисовать сложный BODY, который разрешает вложение одного в другое smile.gif
Beginning
Спасибо за ответы. Но нельзя ли сделать, что бы указанные РЭ вообще не принадлежали правилу? Типа зазор 0.255 для всех, кроме X1 и X2. Тогда можно обойтись одним зазором.
Владимир
иСКлючить из правила можно отдельные элементы
Krys
Здравствуйте. У меня вопрос по заданию правила отступа от края платы до топологии. Начало здесь (и не мной начато, я просто натолкнулся).
Задача такова: нужно указать, что от любого элемента топологии до края платы должно быть расстояние, не меньше, скажем, 0,3 мм.
Я попробовал записАть:
Код
OnSignal  
и
IsBoardOutline

не заработало.

По методу, предлагаемому в вышеуказанной теме, всё заработало. А предлагалось там вместо записи IsBoardOutline использовать (IsTrack and OnLayer('Keep-Out Layer')).

Но на мой взгляд, было бы более логично использовать IsBoardOutline, потому что, если я конечно не ошибаюсь, это именно для того и предназначено. А (IsTrack and OnLayer('Keep-Out Layer')) - это как бы обходной путь, это называется "выкрутился".
И ещё один минус: в случае (IsTrack and OnLayer('Keep-Out Layer')) нужно на заданном слое рисовать границу печатной платы. Это в общем-то несложно, но всё равно, если уж можно было бы обойтись без такой операции (если бы заработало IsBoardOutline), то почему бы и не минимизировать свои действия.

Мой вопрос в данной теме прост: почему не заработало с IsBoardOutline? Это бага софта или моё неправильное понимание этой функции? Если неправильное понимание, тогда как правильно понимать фукнцию IsBoardOutline и как её можно применить, например?

Заранее спасибо за ответы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.