|
|
  |
Правила в Altium Designer, выкладываем сюда создаваемые вами правила и вопросы |
|
|
|
Aug 6 2008, 07:42
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Увы... рано я порадовался... Один раз сработало тогда, а сейчас также выдрючивается похоже... У меня и с миллиметрами поначалу работало, потом перестало. Похоже, там какая-то одноразовая система. Один раз даёт работать в миллиметрах, потом в милсы переходишь - ещё раз. А потом уже не работает ни в тех, ни в тех единицах :( Спишем всё на версию, она у меня старая, а новую скачать нет возможности пока. Пришлось пока дедовским способом выставлять зазор...
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Aug 15 2008, 06:40
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Беда у меня с этими правилами... Прошлую проблему я решил тупо. Вручную переключал в правилах зазор, когда надо было тянуть дифференциальную пару. Т.е. всегда стоял 0,15, а когда тянул пару, ставил 0,2. Потом обратно. В пикаде в принципе так делал всегда. Но теперь опять появилась проблема, на этот раз с зазором между полигонами и дорожками. Поскольку это была уже вторая проблема при работе в АД версии 6.7, то я таки решился перейти на АД саммер 08. Не изменилось ничего. Вот тут мой файл:
digital_loop.rar ( 283.22 килобайт )
Кол-во скачиваний: 374Задаю правило в разделе 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
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Aug 18 2008, 06:19
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 4-10-05
Из: Москва
Пользователь №: 9 217

|
Цитата(Krys @ Aug 6 2008, 08:15)  Если кому-нибудь нетрудно, попробуйте, пожалуйста, на своём АД сделать подобный поиск дорожек с использованием ширины дорожки. Тоже ошибку даст или нет... То ли глюк у меня в самом АД. Может, переустановить его... Какие ещё обходные пути кто может предложить? Ещё раз постановка задачи: Дорожка должна иметь большую толщину и большой зазор, но от микросхемы её такой вывести нереально, поэтому недалеко приходится выводить с малой толщиной и малым зазором. Я пытаюсь задать правило для зазора, которое бы в зависимости от толщины дорожки устанавливало бы разный допустимый зазор. Пока в тупике, даже разводить дальше не могу - застрял на этом. Поиск - старый баг, в новых версиях остался http://electronix.ru/forum/index.php?showt...4963&st=66#Я делал так: с BGA вывводил пары вручную тонкими одиночными линиями, задав нужный зазор, а выйдя на простор - дифпарами. Хотя глючно всё весьма..
|
|
|
|
|
Aug 18 2008, 06:37
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 6-09-06
Пользователь №: 20 116

|
Добрый день! Вообще в AD не работала  . Но когда у нас на фирме был поднят вопрос выбора пакета Expedition или AD, пришлось немного полазить в последнем для ознакомления. Искала целенаправленно те же возможности, которые используем в Expedition`e. Разные правила для выхода из-под микросхемы и трассировке вне ее в Expedition задаются с помощью Rule Area (и ширина дорожек внутри этой зоны, и зазоры в ней). Поэтому в AD сразу искала аналог и нашла его  Нарисовала Room вокруг требуемой микросхемы. А потом задала правила внутри и вне ее. См. рис.
|
|
|
|
|
Aug 18 2008, 09:26
|
Частый гость
 
Группа: Свой
Сообщений: 150
Регистрация: 6-08-04
Из: München
Пользователь №: 461

|
Цитата(Krys @ Aug 15 2008, 08:40)  Задаю правило в разделе Clearance: __________________________________________ IsTrack And InDifferentialPairClass('All Differential Pairs') __________________________________________ InPolygonClass('All Polygons') __________________________________________ Я не очень разбирался с Вашими всеми правилами. Если вместо InPolygonClass('All Polygons') написать просто InPoly или InPolygon, то всё должно работать. Удачи.
|
|
|
|
|
Aug 19 2008, 08:32
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Цитата(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 перед пикадом, потому что в конечном счёте я этими преимуществами (гибкость правил) воспользоваться не смог, и пришлось делать всё по-тупому.
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Aug 22 2008, 04:14
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Прошу прощения, не указал один нюанс: мне нужно найти компонент, у которого имеются указанные условия. (ParameterValue = '=Comment') & (ParameterName = 'Value') - я так делал, находит сам параметр, но не компонент. Мне нужно найти сам компонент, т.к. с ним нужно проводить определённые действия. Да, у параметра в SCH List есть колонка Owner, но она мне ничего не даёт. Через неё выделить сами компоненты я не могу. Или я ошибаюсь? Поправьте, пожалуйста, если неправ.
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Aug 22 2008, 08:39
|
Частый гость
 
Группа: Свой
Сообщений: 150
Регистрация: 6-08-04
Из: München
Пользователь №: 461

|
Цитата(Krys @ Aug 19 2008, 10:32)  Да я вижу, что не читали. ПРоверял я это: Да я тоже вижу, что Вы невнимательно читали. Я написал не IsPoly, а InPoly, всего одна буква разница, а имеет большое значение.
|
|
|
|
|
Aug 22 2008, 09:04
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
dimay, простите, пожалуйста, был неправ. Ваше InPoly заработало. Спасибо. Правда, слишком поздно, я уже так намучался, вручную. А плату уже отдал в производство :) Единственное, что расстраивает - не было InPoly в списке Query Helper. Или я не туда смотрел? Получается, что этот хелпер неплолный, и мне нужно перечитывать всю докмуентацию, чтобы найти нужную мне функцию. ___________________________ Ещё раз был неправ. В хелпере нашлась такая функция, но среди attribute check. Кто бы мог догадаться... Ну да ладно, это вопрос стереотипов. ___________________________
Ещё, если нетрудно, разжуйте, пожалуйста, почему не заработало IsPoly? В чём нюанс? И если в моей задаче сработало InPoly, то в каком случае сработает IsPoly? И почему не заработало InPolygonClass? (тоже слово In присутствует).
ЗЫ: а про проблему с Width не сможете что-нибудь посоветовать?
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|