Часто надо ставить компоненты симметрично с двух сторон платы. Часто у них есть маленькие пины толщиной меньше, чем плата. Еще часто бывают компоненты просто с крепежными отверстиями, которые совмещаются при расположении с двух сторон платы один в точности над другим.
Как при этом избавиться от DRC (P-P)? Отключать надоело.
Hoodwin
Jan 19 2012, 13:12
Да, я тоже как то думал над этим. У Samtec много таких разъемов с симметричной расстановкой направляющих.
Я думаю, что нужно просто сделать отдельно механический компонент - "направляющая дырка", а в символе компонента, где-нибудь в слое Assembly notes поставить вспомогательный крестик на тему "центр отверстия должен быть тут". И вот потом уже просто механический компонент подогнать под крестики.
Конечно, это не универсально, так как нужно отдельно про это думать и при сдвиге компонент возникают проблемы, но это неизбежная плата за такую особенность.
Может быть, можно как-то сгруппировать объекты, чтобы они таскались сразу втроем (два компонента и отверстие)?
Добавление. Изводить drc любым способом - не совсем правильно, потому что, скорее всего, в файл сверловки отверстие попадет дважды в одни и те же координаты. Я думаю, что это плохо, потому что станок может иметь погрешность, и если второй раз он попадет не по центру отверстия, то может сломать свело. Особенно, если платы сверлятся стопкой и сдвиг верхней платы приведет к заметному перекосу сверла для нижней платы.
Нет, я к такому не готов.

Если у компонента 33 таких дырки, да еще и разного размера, то это слишком.
Насчет сверления два раза: по идее такие вещи, если случаются, должны удаляться в процессе подготовки к производству (если люди там нормальные). Но и в самом аллегро тоже есть опция для удаления одинаковых координат. Я всегда включаю, проблем еще не было.
Очевидно, трудности в том, что есть только два типа падстеков: поверхностные и сквозные. Нету задания глубины пина.
В новых версиях видел поддержку компонентов, встроенных в плату, может, там есть такие падстеки?
Hoodwin
Jan 19 2012, 14:05
А в качестве изврата не пойдет глухое отверстие? Теоретически, оно выдаст сверловку с отдельный файл типа тра-та-та-1-2.drl, ну и при установке с другой стороны, наверное можно подыграть, чтобы сверловка была тра-та-та-(n-1)-(n).drl Хотя я так не пробовал.
Нет там таких падстэков. Глубина сверловки определяется только для В/В переходных.
А у Вас действительно регулярно возникают такие ситуации и в большом количестве? Я у себя просто припомнить не могу таких моментов...
Цитата(Hoodwin @ Jan 19 2012, 18:05)

А в качестве изврата не пойдет глухое отверстие? Теоретически, оно выдаст сверловку с отдельный файл типа тра-та-та-1-2.drl, ну и при установке с другой стороны, наверное можно подыграть, чтобы сверловка была тра-та-та-(n-1)-(n).drl Хотя я так не пробовал.
Эх... Потом еще эти файлы объединять с основной сверловкой и исключать повторения... Брр..
Цитата(Uree @ Jan 19 2012, 18:10)

А у Вас действительно регулярно возникают такие ситуации и в большом количестве? Я у себя просто припомнить не могу таких моментов...
Ну да. С двух сторон платы стоят, например, соски езернета, или индикация. И т.п. Заколебало уже.
Но вопрос не глубине сверловки, а именно в глубине пина. Чтобы можно было назначить DRC. Если толщина платы позволяет, то ведь в одно отверстие можно вставить два компонента с двух сторон. Наверно, так и придется вейвить их постоянно.
Hoodwin
Jan 19 2012, 14:49
Это, конечно, изврат, но вот
Я вот только не пойму - если совмещать разные элементы по их пинам, то как их потом устанавливать пин-в-пин? Отламывать мещающие или как? о_О
Hoodwin
Jan 19 2012, 15:02
Так бывает куча элементов, у которых пластмассовые штырьки нужны только для правильного позиционирования при монтаже, и выступают на 0.5 мм, например. При толщине платы более 1 мм, они просто не достают друг до друга.
Ага, т.е. этот момент тоже контролировать надо? Иначе может быть упс - плата на 1.6мм, штырьки на 1мм и привет, начинаем комбинировать...
Еще можно заменять падстэки непосредственно в плате, уже после совмещения. Тогда фактически будет два пада в одной координате, но никакой ошибки возникать не будет. До следующего апдейта футпринта.
Цитата(Hoodwin @ Jan 19 2012, 18:49)

Это, конечно, изврат, но вот

Скажите на словах, а то скачивать и переносить у нас небыстро.
Цитата(Uree @ Jan 19 2012, 19:16)

Ага, т.е. этот момент тоже контролировать надо? Иначе может быть упс - плата на 1.6мм, штырьки на 1мм и привет, начинаем комбинировать...
Ну об этом же и речь! Хочется, чтобы это было, а этого нету.
Цитата(Uree @ Jan 19 2012, 19:16)

Еще можно заменять падстэки непосредственно в плате, уже после совмещения. Тогда фактически будет два пада в одной координате, но никакой ошибки возникать не будет. До следующего апдейта футпринта.
Как это? На что заменять?
Еще пример из жизни - отверстие для крепления компонента к плате болтом. Если таких компонента два друг под другом, то их тоже можно скрепить болтом насквозь. Только DRC мешает постоянно.
Hoodwin
Jan 19 2012, 15:30
Да, конечно! Я же говорю - изврат. Оно даже не ругается, если сместить компонент на половину диаметра штырька. не дает ошибки, хотя откровенно сверловка пересекается.
Но я думаю, что vitan имел ввиду, что ему гораздо проще при создании проекта согласиться, что все его компоненты, имея 33 направляющих штырька, не будут мешать друг другу при установке по разные стороны платы, нежели вэйвить 33 ошибки для каждой такой пары.
Можно заменять падстэк на нулевой, со всеми нулевыми параметрами. Он как бы есть, но его как бы и нет...
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файлаНо необходимости делать такую замену(или wave-ить ошибки, как сейчас) никто не отменяет.
Hoodwin
Jan 19 2012, 15:39
Цитата(vitan @ Jan 19 2012, 18:27)

Скажите на словах, а то скачивать и переносить у нас небыстро.
Ну, на словах, так на словах. Когда-то в этом форуме мы обсуждали темы монтажных отверстий, к которым иногда хочется прицепить заземление, ну и на схеме не париться с электническим компонентом "Мотнажное отверстие заземления". Ну и после бурных дебатов пришел Old1 и сказал, что можно это сделать, если монтажное отверстие добавить как VIA. Я вначале очень этому удивился, поскольку в Layout было вообще нельзя вставлять via в футпринты. А потом смотрю, действительно эта странность работает.
В итоге у меня родилась идея добавить монтажный сквозной пин как VIA, у которого нет КП, а есть только anti-pad, который больше чем диаметр сверла. Ну и пример я накалякал. Единственное, надо бы его проверить с нормальным нетлистом, когда не только одна dummy net всюду. Уж очень странно, что не дает ошибку, когда отверстия не полностью совпадают, а частично перекрываются.
Цитата(vitan @ Jan 19 2012, 19:27)

Еще пример из жизни - отверстие для крепления компонента к плате болтом. Если таких компонента два друг под другом, то их тоже можно скрепить болтом насквозь. Только DRC мешает постоянно.
В Layout есть возможность "Mark as good DRC". А при запуске DRC есть опция "Hide Known Good DRC". Чем не устраивает такой вариант?
PCB Editor, скорее всего, есть нечто аналогичное. Один раз пометить и дельце обстряпано.
Цитата(Uree @ Jan 19 2012, 19:35)

Можно заменять падстэк на нулевой, со всеми нулевыми параметрами. Он как бы есть, но его как бы и нет...

Я никак не пойму идею. Что это дает?
Цитата(Hoodwin @ Jan 19 2012, 19:39)

Ну, на словах, так на словах. Когда-то в этом форуме мы обсуждали темы монтажных отверстий, к которым иногда хочется прицепить заземление, ну и на схеме не париться с электническим компонентом "Мотнажное отверстие заземления". Ну и после бурных дебатов пришел Old1 и сказал, что можно это сделать, если монтажное отверстие добавить как VIA. Я вначале очень этому удивился, поскольку в Layout было вообще нельзя вставлять via в футпринты. А потом смотрю, действительно эта странность работает.
Гм. Вроде, это довольно естественно и не странно. А что, там нельзя создать, например, BGA с предварительно разведенными фанаутами?
Цитата(Hoodwin @ Jan 19 2012, 19:39)

В итоге у меня родилась идея добавить монтажный сквозной пин как VIA, у которого нет КП, а есть только anti-pad, который больше чем диаметр сверла. Ну и пример я накалякал. Единственное, надо бы его проверить с нормальным нетлистом, когда не только одна dummy net всюду. Уж очень странно, что не дает ошибку, когда отверстия не полностью совпадают, а частично перекрываются.
Я не понял, а как Вы прицепляете к таком via заземление, если у него нету КП?
Цитата(Tahoe @ Jan 19 2012, 20:58)

В Layout есть возможность "Mark as good DRC". А при запуске DRC есть опция "Hide Known Good DRC". Чем не устраивает такой вариант?
PCB Editor, скорее всего, есть нечто аналогичное. Один раз пометить и дельце обстряпано.
Ну да, это называетеся waive. Но в том-то и дело, что этого не хочется. Кроме того, завейвленые ошибки снова появляются, как только сдвинешь компонент, например. Утомляет это.
Вспомнил, что у ментора есть фишка backdrilling. Это когда высверливают медь с обратной стороны сквозного пина, чтобы улучшить качество сигнала. По идее, это нельзя сделать без точного понимания глубины сверления. Значит, при этом эта глубина в САПРе контролируется. В аллегро это есть? Может, получиться приспособить?
Hoodwin
Jan 19 2012, 20:04
В Layout мне ни разу не попадались футпринты с VIA. В нем при редактировании футпринта вообще нельзя работать ни с чем кроме падстеков, прямоугольников. Вести трассу от пина можно только уже в проекте платы. Да я в общем от этого и не страдал особо. Но не в этом суть.
про заземление - это другая немного история. Я ее вспомнил именно потому, что via имеет особенный статус в смысле проверки ошибок. На него не распространяются те ограничения, что распространяются на пины. Но VIA дает возможность сверлить плату. Я попробовал добавить два via на одно место (точнее выбрал via, Затем Add connect, RMB, Add via), и вдруг заметил, что ошибки то нет. Два via друг на друге ошибки не дают.
А дальше уже дело техники - оформить в футпринте отверстие для направляющего штырька как via. Я воткнул пару VIA без КП, поскольку они как раз лучше подходят для направляющих отверстий, убирая медь вокруг отверстия чуть дальше и предотвращая замыкания.
Цитата(vitan @ Jan 19 2012, 20:27)

Я никак не пойму идею. Что это дает?
Это дает отсутствие ошибки при совпадении координат отверстий. Одно отверстие, одного компонента нормальное, второе - измененное на нулевое. В результате при совмещении не возникает ошибка.
Цитата(vitan @ Jan 19 2012, 20:27)

Вспомнил, что у ментора есть фишка backdrilling. Это когда высверливают медь с обратной стороны сквозного пина, чтобы улучшить качество сигнала. По идее, это нельзя сделать без точного понимания глубины сверления. Значит, при этом эта глубина в САПРе контролируется. В аллегро это есть? Может, получиться приспособить?
Бэкдриллинг в аллегро есть, но это именно опция генерации файла сверловки(дополнительного, насколько я понял). К DRC отношения не имеет.
Hoodwin
Jan 20 2012, 05:52
Цитата(Uree @ Jan 19 2012, 23:20)

Это дает отсутствие ошибки при совпадении координат отверстий. Одно отверстие, одного компонента нормальное, второе - измененное на нулевое. В результате при совмещении не возникает ошибка.
Я думаю, что существует много способов
индивидуального подхода к таким ошибкам. Суть вопроса автора как раз и была в том, чтобы придумать способ вообще обойтись без появления ошибки, когда компоненты достаются из библиотеки, и ни один из них не подправляется индивидуально. Тогда их можно двигать, поворачивать и не бояться, что нулевые настройки приведут к тому, что для одного компонента вообще не будет вспомогательных отверстий.
Цитата(Hoodwin @ Jan 20 2012, 00:04)

Я попробовал добавить два via на одно место (точнее выбрал via, Затем Add connect, RMB, Add via), и вдруг заметил, что ошибки то нет. Два via друг на друге ошибки не дают.
Весьма спорное утверждение... Может, у Вас отключено это DRC (V_V)? У меня как только рядом два via встают, оно возникает...
Цитата(Uree @ Jan 20 2012, 00:20)

Это дает отсутствие ошибки при совпадении координат отверстий. Одно отверстие, одного компонента нормальное, второе - измененное на нулевое. В результате при совмещении не возникает ошибка.
Хитро, хитро... Не нравится только, что это надо на уровне платы делать.
А нет ли там какого хитрого property, которое вешается на пин и отключает DRC? Тогда его надо будет прописать в компонент и все...
Hoodwin
Jan 20 2012, 06:06
У меня возникают ошибки только когда неизвестно, что VIA принадлежат к одной цепи.
Вы бы посмотрели тестик то все же, а? Может я чего не учел там, но у меня нет ошибок для направляющих via, у которых нет КП.
Цитата(Hoodwin @ Jan 20 2012, 10:06)

У меня возникают ошибки только когда неизвестно, что VIA принадлежат к одной цепи.
Вы бы посмотрели тестик то все же, а? Может я чего не учел там, но у меня нет ошибок для направляющих via, у которых нет КП.
У меня версия 15.5, есть смысл скачивать?
Есть, конечно, проперти NO_DRC, но уж больно жестокое оно...
Hoodwin
Jan 20 2012, 07:31
То что выложено выше, я делал в 16.2. Могу сохранить в версии 16.01, но не знаю, откроется ли это в версии 15.5.
Цитата(Hoodwin @ Jan 20 2012, 08:06)

У меня возникают ошибки только когда неизвестно, что VIA принадлежат к одной цепи.
Может я чего не учел там, но у меня нет ошибок для направляющих via, у которых нет КП.
Посмотрел, (только у меня 16.5), ошибки появились когда в CM включил режим DRC Hole to Hole в разделе Spacing modes, включил DRC в разделе Same Net Spacing Modes и для правила Same Net Spacing DEFAULT поставил OPTIONS в TRUE... Ваш тест с изменениями в формате 16,2 в аттаче.
Нажмите для просмотра прикрепленного файла
Цитата(Old1 @ Jan 20 2012, 11:54)

Посмотрел, (только у меня 16.5), ошибки появились когда в CM включил режим DRC Hole to Hole в разделе Spacing modes, включил DRC в разделе Same Net Spacing Modes и для правила Same Net Spacing DEFAULT поставил OPTIONS в TRUE...
Ну да, у меня примерно то же самое (с учетом версии). Я обычно все включаю.
Hoodwin
Jan 20 2012, 09:13
Да, действительно, у мне я почему то все проверки <что-то> to hole были выключены. Если включить, то появляется ошибка. Но она появляется только если проверяется Hole-to-hole DRC, что само по себе редкое явление. Большинство нормальных выводов имеют КП и еще до наездов отверстий произойдет нарушение pin-to-pin или pin-to-hole. Так что, возможно, проверкой hole-to-hole можно пожертвовать...
Цитата(vitan @ Jan 20 2012, 09:59)

А нет ли там какого хитрого property, которое вешается на пин и отключает DRC? Тогда его надо будет прописать в компонент и все...
Есть некая опция NODRC_SYM_SAME_PIN
Цитата
The NODRC_SYM_SAME_PIN property, attached to a board, symbol instance, or symbol definition, disables pin-to-pin conductive layer checking between pins of the same symbol. Pin-to-pin checking always occurs in a symbol editor (.dra). Pin-to-pin spacing checks between different symbols remain unaffected.
Но на плате она не работает, во всяком случае мне не удалось заставить убрать DRC с помощью этой опции.
Можно делать специальный символ на плату, в котором совмещать оба разьема (верхний и нижний). Но тогда нужно это еще учитывать в схеме...
Короче проще такую ситуацию "завейвить".
Цитата(Hoodwin @ Jan 20 2012, 13:13)

Так что, возможно, проверкой hole-to-hole можно пожертвовать...
У меня уже были случаи такого "жертвования"

Приходилось потом плату править....
Hoodwin
Jan 20 2012, 12:49
Ant_m
Именно hole-to-hole?
Ну тогда расскажите, в чем дело было, может можно от этого тоже как-то еще защититься?
NODRC_SYM_SAME_PIN не поможет. Это свойство отключает проверку DRC для пинов в одном корпусе.
Т.е. глобальный зазор пин-пин установлен в 0.25мм, а в конкретном QFN-e между пинами 0.2мм. Как бы уже имеем ошибки.
Дальше вариантов два:
- рисовать регион, что изрядно утяжелит проект доп. констрейнами и ресурсами проца на их отработку/проверку
- отключить проверку пин-пин для выбранного корпуса, что намного проще и изящнее.
В общем, по сути вопроса, можно сказать так - штатных средств для решения таких моментов нет(оно как бы и понятно почему).
Нештатные средства в любом случае предполагают ручную обработку возникающих коллизий и контроль "в голове".
Есть из чего выбрать...
Цитата(Uree @ Jan 20 2012, 17:18)

NODRC_SYM_SAME_PIN не поможет. Это свойство отключает проверку DRC для пинов в одном корпусе.
Т.е. глобальный зазор пин-пин установлен в 0.25мм, а в конкретном QFN-e между пинами 0.2мм. Как бы уже имеем ошибки.
Дальше вариантов два:
- рисовать регион, что изрядно утяжелит проект доп. констрейнами и ресурсами проца на их отработку/проверку
- отключить проверку пин-пин для выбранного корпуса, что намного проще и изящнее.
ИМХО тут вариант все равно один - регион делать. Т.к запрет DRC на близкие выводы не решит все проблемы. Есть еще ограничение
line to pin - оно всё "подгадит" и DRC всё равно будут.
Про NODRC_SYM_SAME_PIN в документации написано непонятно - толи речь идет о
единичном корпусе и его площадках, толи речь идет об
опреденном типе корпусов и их площадках.
Например сделать так чтобы
все корпуса
типа 0805 могли площадками совмещаться...
HoodwinДело давно было, не вспомню. Но от этого осадок остался - зарекся выключать "ненужные", на первый взгляд, проверки DRC.
Цитата(Ant_m @ Jan 20 2012, 14:54)

Есть еще ограничение line to pin - оно всё "подгадит" и DRC всё равно будут.
Не факт, все зависит от ширины этих самых линий. Если следовать правилу 2/3, то может быть и хватит зазора без ошибок.
Цитата(Uree @ Jan 20 2012, 17:18)

- рисовать регион, что изрядно утяжелит проект доп. констрейнами и ресурсами проца на их отработку/проверку
О! Регион! А можно его засунуть в компонент? Я просто не пробовал ни разу.
Цитата(Uree @ Jan 20 2012, 17:18)

штатных средств для решения таких моментов нет(оно как бы и понятно почему).
А можно для тех, кто на бронепоезде?

Почему?
Hoodwin
Jan 20 2012, 14:32
А у меня такой вопрос в продолжение темы via. Можно ли при редактировании символа компонента зафиксировать положение via ( и еще route keepout вокруг него) внутри компонента? То есть, чтобы компонент на плате можно было двигать вместе с отверстием, но отвертие на плате отдельно от компонента двигать было нельзя? Что то я пробовал сделать им fix, но на деле оно игнорируется на плате, все равно все можно подвинуть.
2 vitanДумаете регион поможет? Не могу придумать чем... Сделать в нем констрейны с нулевыми зазорами пад-пад? Тогда и остальные пады из проверки выпадут. В общем мне такое решение не нравится. Но можете попробовать.
Тяжело обяснить... Но Аллегро все-таки софт не для 3D проектирования, хотя некоторые функции объемного контроля и присутствуют.
А значит любые примитивы, находящиеся на одном логическом уровне проекта(медь, пады электрические, отверстия механические, маски, шейпы PLACEMENT_BOUNDARY), имеющие определенные(ненулевые) ограничения, и нарушающие эти ограничения своим расположением, являются ошибками.
И если для тех же шейпов(и их комбинаций) параметр высоты может быть определен многократно, то для падов, тем более thru-hole, не может.
Вот и остается один выбор - либо видеть эти ошибки и комментить их, либо отключать соответствующие проверки и не видеть. Правда возможен момент прозевать реальную ошибку, как писал
Ant_m.
Можно еще попробовать приписать свойство NO_DRC на уровне футпринта. Тогда ошибка точно никогда не возникнет.
2 Hoodwin1. Сделайте фикс уже в плате.
2. Не двигайте эти переходные

Зачем двигать, если не хотите

3. Определите их в футпринте как пады, с размерами VIA. Правда если надо, то пады в плате тоже можно двигать...
Hoodwin
Jan 20 2012, 16:16
NO_DRC по-моему хуже, потому что тогда любые вообще DRC с via не ловятся. Наедешь на пин, а оно и не заметит. А так только hole-to-hole реально можно отключить, все остальное проверять.
1 + 2. Вот я покопался в хелпе, оказывается есть свойство 'LOCKED' которое запрещает фокусы с двиганием падстеков, относящихся к символу или модулю. К сожалению, не смог понять, можно ли это свойство задать на этапе проектирования символа изнутри. Я, естественно, не хотел бы их двигать, но бывает, что-нибудь выделишь, подвинешь, а уже потом дойдет, что лишнего выделил. Вот от этого защита нужна.
NO_DRC получается как раз лучше. Проверка hole-to-hole включается/выключается глобально. А NO_DRC можно приписать локально любому примитиву на плате. В данном случае - обоим совмещенным отверстиям. Остальные отверстия будут проверятся.
В чем еще плюс NO_DRC - при сдвиге компонента ошибка не появляется опять, как в случае с waive.
Hoodwin
Jan 20 2012, 16:59
Это да, но если при сдвиге дырка наедет на выводы компонентов с какой-нибудь стороны, то ошибки не будет, а это более вероятно, чем hole-to-hole ввиду того, что большинство hole имеют вокруг КП, которые имеют свои проверки в более широкой зоне, чем само отверстие. И в итоге hole-to-hole - это вообще экзотика почти.
Да любой способ решить такую ситуацию, кроме как "завэйвить" - раскладывание граблей вокруг себя. Но ведь
vitan хочет так сделать. Варианты описаны. Выбираем грабли на вкус и цвет
Итак, я выбираю вариант с регионом (пока).
Проверено, работает.
Делать надо так. Вокруг нужных пинов
в компоненте задать маленький регион (ы), чтобы он не залезал на другие пины. Можно прямо по размеру пина. В нем сделать правило thru pin to thru pin меньше нуля. Если задать ноль, то ошибка все равно будет. Для этого, конечно, надо задать новый SCS, но это, вроде, не очень напрягает. Этот SCS потом в плату не попадает, т.е. его не видно в табличке (в 16.х уже и таблички нет, вроде...). Регионы в табличку попадают, что логично, поэтому называть их надо так, чтобы было понятно, что это такое.
После этого ставим компоненты и наслаждаемся.

Жаль только, что глубину платы не считает, но это уже, наверно, можно в скриптах реализовать и запускать потом в batch mode.
Вот как-то так пока.
UPD. Дошло, как сделать контроль глубины. Так же, как и высоты! Т.е. нарисовать пины в отверстиях с помощью package_boundary и задать высоту со знаком минус. Завтра попробую.
UPD. Попробовал, не получилось. Невозможно задать отрицательное число. А так красиво все получалось...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.