Владимир
Sep 29 2011, 16:24
Цитата(Jarik @ Sep 29 2011, 18:15)

Кто подскажет как реализовать такие правила:
1. Если via и pad относятся к одной цепи то зазор между ними 0.2мм, а если к разным то 0.3мм (то есть, возможно ли использовать переменные и что-то вроде того).
1 правило
IsVia
IsPad
Same Net
2 правило
IsVia
IsPad
Different Net
Цитата
2. Правило на clearance между начальными отрезками проводников отходящих от определенной микросхемы отличаются от всего остально проекта (см. рис. сделать чтобы на эти отрезки действовало правило 0.2мм как на площадки микросхемы, а не 0.3 как на все остальные цепи платы).
по разному, например указав данное правило для коротких отрезков, например длиной 1мм
Или заданной специфичной ширины
или...
Цитата
3. Выровнить длины проводников начиная с определенной точки ( см. рис. длины от точки 2 до A+, B+ и С+ равны между собой, а длины от точки 1 до A-, B- и С- тоже равны между собой. Есть ли в Altium понятие виртуальная точка или чтото похожее?).
Для этого существует специальный класс FromTo/ Почитайте и пользуйтесь
Владимир, спасибо.
Теперь возникла такая проблема: идет игнорирование правил для выравнивания длин сегментов FromTo, длины просто двух цепей выравниваются без проблем. С чем это может быть связано? (см. файл платы)
Буратино
Sep 30 2011, 09:49
Владимир, если по второму вопросу Jarik сделать так как Вы советуете, то правило будет действовать по всей плате! Правильно все же ограничить областью некоторой вокруг микросхемы, хотя и это не очень, так как вот недавно у меня ПОД микросхемой лежало много дорожек и это правило распространялось и на совсем ненужные цепи/трассы. Кстати это вообще-то довольно важный вопрос и надо бы разрулить как правильно делать!
Владимир
Sep 30 2011, 09:56
Ну да на всей. На плате не один такой корпус, как правило, у кучи. Загнешся румы индивидуальные создавать
Второй способ про специфическою ширину. например 0.15001 решает вопрос с "то правило распространялось и на совсем ненужные цепи/трассы"
Буратино
Sep 30 2011, 11:01
Цитата(Владимир @ Sep 30 2011, 12:56)

Ну да на всей. На плате не один такой корпус, как правило, у кучи. Загнешся румы индивидуальные создавать
Второй способ про специфическою ширину. например 0.15001 решает вопрос с "то правило распространялось и на совсем ненужные цепи/трассы"
С шириной дорожек вроде ниче и правда..А как правило на ширину смотрится?
Владимир
Sep 30 2011, 12:29
указать, что если ширина 0.15001 то водить везде. Приоритет верхний
А остальной правила-- минимальная ширина например 0.3 мм.
Итак, про выравнивание сегментов одной цепи никто пока не решил вопрос?? (
здесь)
Тогда появился еще один:
как отловить координаты X1 и Y1 элемента например DD1. Например в функцию InRegion() вставить эти координаты с допусками чтобы получилось что-то вида: InRegion(X1-5мм,Y1-5мм,X1+5мм,Y+5мм).
Владимир
Sep 30 2011, 15:51
Цитата(Jarik @ Sep 30 2011, 17:53)

Итак, про выравнивание сегментов одной цепи никто пока не решил вопрос?? (
здесь)
Ну как же, через тип класса FromTo он решается, я вроде писал
Единственно этот класс только в PCB определяется
Цитата(Владимир @ Sep 30 2011, 18:51)

Ну как же, через тип класса FromTo он решается, я вроде писал
Единственно этот класс только в PCB определяется
В том то и дело что не срабатывает правило на разность длин, оно работает только для разных цепей, а эти куски FromTo как бы одна цепь. Я там пример (файл Board.rar ) прикрепил посмотрите на досуге=).
Владимир
Oct 1 2011, 10:09
Ну как же не работает. А у меня, то бог ниспослал?
По поводу примера-- нет сейчас времени смотреть
1. Как привязать InRegionRelative к компоненту?? ( Returns objects residing within the rectangular region bounded by X = -700 and X = 1300, and by Y = -400 and Y = 1600; those coordinates are referenced to the user origin (or component insertion point). )
2. Как использовать фильтр для имени объекта по маске? ( Например нужно выбрать PAD в нескольких компонентах они имеют имена: XP1-PAD1, XP2-PAD1 и XP3-PAD1. Возможно ли применить что то вроде *-PAD1 для их выделения?)
Владимир, по поводу предыдущего поста, у вас какая версия AD. У меня 9 и возможно в 10 они поправили этот косяк.
Владимир
Oct 4 2011, 14:05
Цитата(Jarik @ Oct 4 2011, 16:52)

Владимир, по поводу предыдущего поста, у вас какая версия AD. У меня 9 и возможно в 10 они поправили этот косяк.
И та и другая. Но возможно только в 10 делал
Помогите, пожалуйста, создать правило для Hole to Hole Clearance.
BGA 0.4mm pitch, переходки с первого на второй слой в КП. Диаметр отверстия переходки 0,15мм. Зазор между отверстиями получается 0,25мм.
Создаю правило:
- Hole And TouchesRoom('BGA') (при WithinRoom работает аналогично)
- Hole
- Hole to Hole Clearance 0,1mm
но вместо него работает общее правило с зазором 0,254мм. Что вы можете видеть на рисунке.
peshkoff
Oct 11 2011, 05:17
поменять приоритет. ну или убить правиль 0,254
Владимир
Oct 11 2011, 05:32
Цитата(NickZ @ Oct 10 2011, 16:35)

Диаметр отверстия переходки 0,15мм. Зазор между отверстиями получается 0,25мм.
Чтото у вас не то с переходными. сейчас на гарантийный поясок и зазор (если они равны) отводится
(0.25-0.15)/3=0.033
Где вы найдете такое производство- Оно цены заломит, выше не могу
Нужно микровиа ставить, при этом прямо в Болах, и медью заполнять
Vadim_83
Oct 11 2011, 07:57
Владимир абсолютно верно подметил, NickZ действительно у вас с ПО проблемы.
С правилами-то вы разберётесь, а вот BGA 0,4мм pitch - это серьёзно. Подойдите к выбору Track/Pad/Via со всей серьёзностью.
Очень рекомендую два стандарта IPC-7095B и IPC-2226.(может быть есть на фтп, но я пока не в "своих"...)
Владимир
Oct 11 2011, 08:02
Вот тут
bga 0,5 полегче, но посмотрите, приятно будет, что Ваши проблемы еще сложнее
Vadim_83
Oct 11 2011, 09:13
Владимир, хотя бегло изучив pdfку очень сомневаюсь в её сегодняшней актуальности....
+ например не совсем понятна фраза:
"Заказывайте переходы под корпусом BGA тентированием(указывайте опцию via plugging)"
Tenting и Plugging это разные вещи! (кстати заполнение via в среднем удорожает производство ПП на 10%

)
Владимир
Oct 11 2011, 09:34
Гм. там ссылка на ветку форума, а не на PDF
Если в той ветке и была ссылка на PDF ==> признаюсь, последний не читал
Vadim_83
Oct 11 2011, 09:39
Всё верно, это я про "случайно взятую и прочитанную" пдфку оттуда
Цитата
правило для Hole to Hole Clearance
Спасибо за поддержку и документацию.
Для BGA 0,4мм другого выхода нет, будем ставить 0,10мм КП 0,3, что рекомендуют в литературе. Ежики плачут но кактус едет

.
Еще уточню у производителя параметры микровиа.
С правилом проблема осталась. Возможно проблема в определении объектов. т.к. задано HOLE, а в документации говорится оно должно иметь какой то параметр, например Hole=0.3mm.
Как еще можно указать в правилах объект Hole (отверстие)?
Vadim_83
Oct 11 2011, 10:09
NickZ, объясните какое правило хотите создать конкретнее?
Владимир
Oct 11 2011, 10:25
Цитата(NickZ @ Oct 11 2011, 12:56)

Спасибо за поддержку и документацию.
Для BGA 0,4мм другого выхода нет, будем ставить 0,10мм КП 0,3, что рекомендуют в литературе. Ежики плачут но кактус едет

.
Еще уточню у производителя параметры микровиа.
С правилом проблема осталась. Возможно проблема в определении объектов. т.к. задано HOLE, а в документации говорится оно должно иметь какой то параметр, например Hole=0.3mm.
Как еще можно указать в правилах объект Hole (отверстие)?

Не парьтесь
При Hole 0.1 и Diameter 0.3 мм зазор между диаметрами будет перекрывающим
Владимир
Nov 11 2011, 20:21
Кто напишет правило, для проверки зазора между трассой, принадлежащей 1 цепи
Doomsday_machine
Dec 11 2011, 20:50
Подскажите правило для определения локальных зазоров между Polygon Pours. Мой вариант:InPolygon And WithinRoom('D3_Rule_Area') не работает.
one_eight_seven
Dec 12 2011, 04:49
У меня вообще "InPolygon" не работает, а вот "InPoly" работает.
Doomsday_machine
Dec 12 2011, 05:52
one_eight_seven
С другими объектами (via, pad) InPolygon работает нормально, зазоры меняются. А вот между полигонами - шиш. Подозреваю, дело в том, что на полигоны WithinRoom никак не влияет:
Returns Arc, Fill, Text, and Track objects that totally reside within the region occupied by any Room having a Name property that is specified by the Query, and Pad and Via objects whose centre points reside within the region occupied by any Room having a Name property that is specified by the Query.
Note: The parent objects of group objects (Components, Coordinates, Dimensions, Nets, and Polygons) are not also returned.
Такая же история с TouchesRoom:
Returns objects that either totally or partially reside within the region occupied by any Room having a Name property that is specified by the Query.
Note: The parent objects of group objects (Components, Coordinates, Dimensions, Nets, and Polygons) are not also returned.
С другой стороны, InPolygon описывает не сам полигон, а объекты внутри него:
Returns child objects (arcs and tracks) of any polygon object on any Signal layer or on the Multi-Layer layer.
Note: The parent objects of these polygon objects are not also returned.
Note: This is an alias for InPoly (Attribute Check).
Вот и гадай в чем дело.
Serhiy_UA
Dec 15 2011, 13:58
Начал ходить кругами..., вопрос вроде простой..., нужна помощь...
Как задать правило: «зазор между полигоном на заданном слое и любой цепью». В частности, цепи есть и внутри полигона...
Цитата(Serhiy_UA @ Dec 15 2011, 17:58)

Начал ходить кругами..., вопрос вроде простой..., нужна помощь...
Как задать правило: «зазор между полигоном на заданном слое и любой цепью». В частности, цепи есть и внутри полигона...
Попробуйте первое условие задать :
(ObjectKind = 'Poly') And (Layer = 'Top Layer')
второе :
All
Serhiy_UA
Dec 16 2011, 07:15
Цитата(TOREX @ Dec 15 2011, 19:28)

Попробуйте первое условие задать :
(ObjectKind = 'Poly') And (Layer = 'Top Layer')
второе :
All
К сожалению, не помогает...
На прилагаемых картинках видны правило и часть полигона с островком внутри, расстояние между которыми всегда остается постоянным в 0.127мм. Хотя в правиле "Clearance_temp" требую 0.254мм. Не помогает также задание этому правилу самого высокого или самого низкого приоритета. Использую AD9. Вопрос: "Кто виноват и что делать?"
Цитата(Serhiy_UA @ Dec 16 2011, 11:15)

К сожалению, не помогает...
На прилагаемых картинках видны правило и часть полигона с островком внутри, расстояние между которыми всегда остается постоянным в 0.127мм. Хотя в правиле "Clearance_temp" требую 0.254мм. Не помогает также задание этому правилу самого высокого или самого низкого приоритета. Использую AD9. Вопрос: "Кто виноват и что делать?"
InPoly And (Layer = 'Top Layer')
Работает.
Serhiy_UA
Dec 16 2011, 08:46
Цитата(TOREX @ Dec 16 2011, 10:53)

InPoly And (Layer = 'Top Layer')
Работает.
Опять все мимо...
В приложении маленький тестовый проект, в котором есть полигон GND. Применяю эти правила (ObjectKind = 'InPoly') And (Layer = 'Top Layer') , но дейстия никакого. Похоже, я опять чего-то не понимаю... Что не так?
То есть, хотел бы к примеру, что бы между полигоном GND и всеми другими цепями было 50 mils, а между полигоном GND и цепяи GND другой зазор (или его не было вовсе) .
AntonS
Dec 16 2011, 08:56
Цитата(Serhiy_UA @ Dec 16 2011, 10:46)

Применяю эти правила (ObjectKind = 'InPoly') And (Layer = 'Top Layer') , но дейстия никакого.
Попробуйте не (ObjectKind = 'InPoly'), а просто InPoly. У меня зазор задается для всех слоев, соответственно правило выглядит так: первый объект: All, второй объект InPoly. Работает.
peshkoff
Dec 16 2011, 09:13
Цитата(Serhiy_UA @ Dec 16 2011, 12:46)

Опять все мимо...
В приложении маленький тестовый проект, в котором есть полигон GND. Применяю эти правила (ObjectKind = 'InPoly') And (Layer = 'Top Layer') , но дейстия никакого. Похоже, я опять чего-то не понимаю... Что не так?
То есть, хотел бы к примеру, что бы между полигоном GND и всеми другими цепями было 50 mils, а между полигоном GND и цепяи GND другой зазор (или его не было вовсе) .
приоритеты поменяйте местами. 1-ый приоритет главнее.
т.е. он проверяется в последнюю очередь.
InPoly And (Layer = 'Top Layer')
All
работает
Цитата(Serhiy_UA @ Dec 16 2011, 12:46)

Опять все мимо...
В приложении маленький тестовый проект, в котором есть полигон GND. Применяю эти правила (ObjectKind = 'InPoly') And (Layer = 'Top Layer') , но дейстия никакого. Похоже, я опять чего-то не понимаю... Что не так?
То есть, хотел бы к примеру, что бы между полигоном GND и всеми другими цепями было 50 mils, а между полигоном GND и цепяи GND другой зазор (или его не было вовсе) .
Да работает, вот на картинке на TOP pзазор 1мм, а на Bottom 0,2мм:
Нажмите для просмотра прикрепленного файлаВы после изменения правил Repure делали?
Да и вопросы странные, сначала хотели для конкретного слоя, а теперь для всех полигонов.
Если для всех, то достаточно InPoly.
Serhiy_UA
Dec 16 2011, 09:50
Большое спасибо, TOREX, peshkoff и AntonS, за помощь!
Все получилось для
InPoly And (Layer = 'Top Layer')
All
а также приоритета 1.
Если пошумел немного, то извините...
Буратино
Dec 19 2011, 11:48
Цитата(Владимир @ Nov 12 2011, 00:21)

Кто напишет правило, для проверки зазора между трассой, принадлежащей 1 цепи
похоже, что это невозможно..
Владимир
Dec 19 2011, 12:34
CAM умеет
gia1965
Dec 27 2011, 05:48
Не могу задать правило. Хочу во внутренних слоях, под корпусом BGA выделить переходные отверстия не имеющие на данном слое подключение к Wire (но имеющие на других слоях) для удаления с них контактного пояска. Конечно можно зайти в свойста каждого переходного отверстия и там через "Edit Full Stack Via Sizes" сделать это, но учитывая что у BGA более 1000 выводов и самих BGA больше 10, то сами понимаете -это накладно.
Владимир
Dec 27 2011, 06:21
Оно вам надо.
Этот вопрос периодически поднимается.
Вопросы допуска на смещение отверстий при сверловке, допуск самого сверла, допуск наложения фотошаблонов, допуск на не вертикальность отверстия-- и вы получите то же самое, что нужно добавлять зону запрета, которая практически будет равна тому пояску, который вы собираетесь убирать
gia1965
Dec 27 2011, 09:18
наверно мой вопрос не был правильно понят. Пояски во внутренних слоях я убираю ислючительно из-за желания увеличения плотности проводников в этих слоях. Любая CAM программа убирает автоматически неподключенные в данном слое контактные площадки. Но хотелось-бы это сделать в самом Altiume. Еслиб я имел возможность выделить эти Via (не подключенные к Wire), то через pcb Inspector сог бы снять с них в этом слое поясок конт. площадки. При этом всегда имел бы возможность применять и проверять различные правила. Так есть ли признак по которому можно определить подведен ли проводник к конт. площадке или нет. В любом случае спасибо за ответ.
Владимир
Dec 27 2011, 09:28
Да нет. вопрос был понят правильно.
Просто это не даст вам увеличения плотности проводников, по указанной мной причине
По сути вопроса.
Правил нет, нахождения нет,
где-то бегал скрипт, что это делает.
gia1965
Dec 28 2011, 04:37
Спасибо за ответ
Avel_1979
Jan 6 2012, 13:55
Всем доброго времени суток.
Встал вопрос о правиле для CopperPour. На плате имеется множество медных заливок, которые подключены к разным землям (несколько преобразователей напряжения). Плата будет изготавливаться и паяться вручную, соответственно маски не будет. Поэтому, хотелось бы увеличить зазор между полигонами и КП (не цепями!), которые к этой заливке не принадлежат. Это нужно для того, чтобы заливка, которая идет под SMD-компонентами была подальше от КП, и случайно во время пайки ничего не закоротилось.
Для отдельных полигонов я создал правила типа:
1-й объект: InNamedPolygon('Top Layer-PGND')
2-й объект: IsPad And Not InNet(PGND)
И т.д.
Вопрос. Как можно объединить все эти правила в одно, чтобы было что-то типа такого. Если КП не принадлежит цепи, которая подключена к Copper Pour, то работает увеличенный зазор.
Цитата(Avel_1979 @ Jan 6 2012, 16:55)

Всем доброго времени суток.
Встал вопрос о правиле для CopperPour. На плате имеется множество медных заливок, которые подключены к разным землям (несколько преобразователей напряжения). Плата будет изготавливаться и паяться вручную, соответственно маски не будет. Поэтому, хотелось бы увеличить зазор между полигонами и КП (не цепями!), которые к этой заливке не принадлежат. Это нужно для того, чтобы заливка, которая идет под SMD-компонентами была подальше от КП, и случайно во время пайки ничего не закоротилось.
Для отдельных полигонов я создал правила типа:
1-й объект: InNamedPolygon('Top Layer-PGND')
2-й объект: IsPad And Not InNet(PGND)
И т.д.
Вопрос. Как можно объединить все эти правила в одно, чтобы было что-то типа такого. Если КП не принадлежит цепи, которая подключена к Copper Pour, то работает увеличенный зазор.
Попробуйте
1-й объект: InPoly
2-й объект: IsPad
Consrance: Different net only
Avel_1979
Jan 6 2012, 14:51
Цитата(TOREX @ Jan 6 2012, 17:27)

Попробуйте
1-й объект: InPoly
2-й объект: IsPad
Consrance: Different net only
Пробовал что-то подобное раньше. Сейчас еще раз ввел - получается зазор действует на все КП, с учетом того, что я ставлю термобарьеры - для них тоже ставится большой зазор.
Все-таки хотелось бы чтобы правило действовало на все КП, не принадлежащие к цепи медной заливки
Цитата(Avel_1979 @ Jan 6 2012, 17:51)

Пробовал что-то подобное раньше. Сейчас еще раз ввел - получается зазор действует на все КП, с учетом того, что я ставлю термобарьеры - для них тоже ставится большой зазор.
Все-таки хотелось бы чтобы правило действовало на все КП, не принадлежащие к цепи медной заливки
Действительно, от Constraintc вообще ни чего не зависит. Похоже на баг.
Есть микросхема с шагом 0,5мм.
Создал правило для падов микросхемы на расстояние 0,15мм (чтобы не ругались друг на друга): IsPad And InComponent(DD3)
Как теперь создать правило для дорожек?
Пока что добавил все дорожки микросхемы в класс и создал правило Clearance: InNetClass(DD3)
Но хотелось бы более универсально и профессионально.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.