|
Несколько вопросов по созданию символов компонентов, В Allegro PCB Editor |
|
|
|
Nov 1 2010, 07:49
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
1. Как задается при создании символа компонента точка привязки установщика, которая потом пишется в файле Pick & place? 2. Как задается высота компонента для проверок DRC? Например, у Layout при создании place outline нужно было указать Height, после чего это значение участвовала при проверке размещения компонентов на плате. 3. Можно ли как-нибудь изменить заливку шейпов типа place_bound_*, чтобы ее не было, а был только контур, как у place outline в layout? Вроде бы должно быть можно, ведь например у шейпа board outline заливки нет. Тогда вопрос, как? 4. Как настраивать приоритет отрисовки слоев, который экспортируется в разделе color layer?
|
|
|
|
|
Nov 2 2010, 15:41
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
1. OK 2. OK. Я это баловство все теперь в Компасе делаю, там оно еще реалистичнее. 3. Обидно. Никак не могу придумать такой цвет. чтобы эти штуки глаза не мозолили. А отключишь, так сразу становится жаль, что не видно, каковы шансы что-нибудь удачно подвигать... 4. Тут сам нашел. Меню Display -> Layer Priority. (это кстати к вопросу о терминологии слои vs классы/подклассы  Там можно руками прописать порядок отрисовки всех 100 классов, если, конечно, не лень  Вдогонку к 3 еще пара связанных вопросов про place_bound: 5. Как в аллегро решается проблема со свесами разъемов с края платы? Например, многие разъемы, которые монтируются на плату под прямым углом и выходят с нее на стенку прибора, обычно на несколько миллиметров вылезают за габарит платы. В Layout DRC ругался, если place outline целиком покрывал контур разъема и вылезал за board outline. Чтобы не ругался, приходилось либо вовсе удалять этот place outline, но он его каждый раз обратно врисовывл при очередном AutoECO. Либо можно было в библиотеке этот place outline сознательно урезать, чтобы он в потенциально свешивающуюся часть не залезал. Но это некрасивое решение. Какое красивое, я не очень представляю, вероятнее всего просто не считать такое ошибкой, либо, наоборот, ввести явное указание на возможный выступ части детали за контур платы. 6. Вот есть такие компоненты - клеммники. У них есть такая особенность: их можно стыковать между собой боковыми сторонами, так что они образуют как бы клеммник с бОльшим числом контактов, но с постоянным шагом выводов. То есть, их place_bound должен на этих сторонах вообще не иметь защитного выпуска, который обычно есть у всех деталей для проверки условий слипания при монтаже. Можно ли как-то объяснить аллегро, что у таких компонентов есть как бы условный place_bound, который для размещения рядом подобных компонентов один, а для посторонних - другой?
|
|
|
|
|
Nov 2 2010, 23:27
|
Знающий
     
Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480

|
Цитата(Hoodwin @ Nov 2 2010, 17:41)  2. OK. Я это баловство все теперь в Компасе делаю, там оно еще реалистичнее. Вы не поняли. Это не баловство и реалистичность нас не интересует(до определенных пределов конечно, высота например задается правильной). А вид электролита на приведенном рисунке включает в себя все ограничения накладываемые производством: - на высоту от 0 до 3мм place_bound определен с одним диаметром, таким, который позволяет максимально близкую установку низких компонентов, вроде СМД, СОИК-ов и т.п. - на высоту от 3мм до фактической высоты электролита диаметр place_bound больше на 2мм, что позволяет увеличить расстояние между ними - на боттоме определен place_keepout, так что туда никакие элементы встать не могут, потому как в той зоне откусываются и загибаются машиной выводы электролитов, а также остается открытым защитный трафарет для СМД на этапе пайки волной. Цитата(Hoodwin @ Nov 2 2010, 17:41)  3. Обидно. Никак не могу придумать такой цвет. чтобы эти штуки глаза не мозолили. А отключишь, так сразу становится жаль, что не видно, каковы шансы что-нибудь удачно подвигать... Оставьте шелк или ассембли, а place_bound выключите. Загромождать экран они не будут, а ДРЦ от их выключенности работать не перестанет - в процессе расстановки ошибки сразу будут видны. Еще могу посоветовать поиграться с настройками полупрозрачности - если удачно подобрать, то шейпы видно, но они не мешают. Собственно именно так и работаю. Цитата(Hoodwin @ Nov 2 2010, 17:41)  4. Тут сам нашел. Меню Display -> Layer Priority. (это кстати к вопросу о терминологии слои vs классы/подклассы  Там можно руками прописать порядок отрисовки всех 100 классов, если, конечно, не лень  Хорошо, что такое есть. Вот Вам например пригодилось. Мне и без этой настройки вполне комфортно после предыдущих систем. Цитата(Hoodwin @ Nov 2 2010, 17:41)  5. Как в аллегро решается проблема со свесами разъемов с края платы? С ходу вижу два решения: - определять place_keepin с учетом выступающих разъемов. Он же не обязательно должен повторять контур платы, может быть вообще любой формы. Собственно мы так и делаем, потому что такое решение не создает ошибки. - wave-ить эту ошибку. На дальнейшей работе не скажется, но в случае чего вылезет опять(есть там проверки с восстановлением проигноренных ошибок). Мне такой подход не нравится, но это просто имхо. Цитата(Hoodwin @ Nov 2 2010, 17:41)  6. Вот есть такие компоненты - клеммники. У них есть такая особенность: их можно стыковать между собой боковыми сторонами, так что они образуют как бы клеммник с бОльшим числом контактов, но с постоянным шагом выводов. То есть, их place_bound должен на этих сторонах вообще не иметь защитного выпуска, который обычно есть у всех деталей для проверки условий слипания при монтаже. Можно ли как-то объяснить аллегро, что у таких компонентов есть как бы условный place_bound, который для размещения рядом подобных компонентов один, а для посторонних - другой? Тоже два варианта: - определите place_bound так, чтобы никакие другие элементы кроме этих нельзя было поставить ближе. Например изрежьте контур place_bound со сторон стыкующихся друг с другом мелкой комплементарной расческой(полностью не рисовал, но думаю идея ясна): [attachment=49444:Place_Bo..._Variant.PNG] шаг зубчиков мелкий, никто посторонний туда не влезет, а вот два и больше таких корпусов можно будет стыковать без проблем и ошибок. Заодно очень точная стыковка получится, так как любое отклонение от правильного положения вызовет ошибку плэйсмента. - определите shape на слое dfa_bound и работайте с этой проверкой. Там можно определить разные зазоры для разных групп и типов компонентов с учетом их ориентации. Правда насколько я понял настраивать придется прилично, но тут подсказать не могу - наша лицензия не работает с DFA "на лету", поэтому мы эту проверку не используем, обходимся стандартным набором инструментов. А вообще мыслите шире - у Вас же новый инструмент, с новыми(бОльшими) возможностями, в нем можно делать фактически все, главное осторожно. А в плане создания реалистичных в 3D футпринтов ему так и вообще равных нет. Смотреть на эту объемную картинку как бы и не обязательно, но вот проектировать это здорово помогает - например приподнятые разъемы для PCMCIA карт, под которыми в разных зонах доступна разная высота для установки других компонентов, или защитный экран для ВЧ-схемы, со стенками, крышкой и вырезами для вывода трасс - все можно нарисовать и потом спокойно проектировать, не рискуя наделать дорогих ошибок.
|
|
|
|
|
Nov 3 2010, 06:45
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
2. OK, теперь понял. Обычно я такие вещи без формальных проверок делаю, а выводные детали стараюсь не использовать, не технологичные они. В основном, разъемы только. Но при малых сериях их производство вручную допаивает.
3. Ладно, привыкну, я думаю. Обычно не так уж и долго ставить и переставлять детали надо.
4. При настроенной полупрозрачности в 50% я не заметил эффекта от приоритетов, а вот если прозрачность снизить или выключить совсем, то приоритеты очень даже заметны. Другое дело, что не очень понятно, как сочетать, скажем, приоритеты верха и низа платы. При двустороннем монтаже, особенно плотном, будет каша. Может быть, приоритеты можно тоже сохранять в .color, тогда будет удобно.
5. Меня первый вариант устраивает тоже. Просто в Layout, видимо, автоматически board outline считался за place keep in. И никакой силой его не разубедить. Вот надо ему, чтобы все контуры деталей не вылезали за габарит и все.
6. ОК, можно попробовать сделать по первому варианту. Правда в Layoute такое чревато. При ошибках округления такой рубленый контур немного меняется, если, например, компонент создан в метрической сетке, а затем записан в дюймовую библиотеку. И потом он может запросто точно сам в себя не залезть. Но идея интересная. Спасибо.
|
|
|
|
|
Nov 3 2010, 08:18
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
Цитата Выступающим за контур платы элементам можно присвоить свойство NODRC_COMPONENT_BOARD_OVERLAP, если быть точным, то свойство присваивается шейпу символа компонента в подклассе PLACE_BOUND_TOP или PLACE_BOUND_BOTTOM в зависимости от того как установлен компонент. А тогда вопрос: при этом ведь будет игнорироваться любое сколь угодно сильное сваливание компонента с платы, так? Я имею ввиду ту часть, которая содержит выводы, и они обязательно должны быть на плате. Или в таком случае я должен покрыть компонент двумя шейпами, один в разъемной (свешиваемой) части, а второй в оставшейся на плате; потом первому шейпу установить свойство NODRC_COMPONENT_BOARD_OVERLAP, так? И тогда получится, что вот эту первую часть можно свешивать с платы сколько угодно, но если ее часть все же на плату попадает, то она блокирует там размещение других компонентов. Правильно?
|
|
|
|
|
Nov 3 2010, 08:34
|

Знающий
   
Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095

|
Цитата(Hoodwin @ Nov 3 2010, 10:18)  А тогда вопрос: при этом ведь будет игнорироваться любое сколь угодно сильное сваливание компонента с платы, так? Я имею ввиду ту часть, которая содержит выводы, и они обязательно должны быть на плате.
Или в таком случае я должен покрыть компонент двумя шейпами, один в разъемной (свешиваемой) части, а второй в оставшейся на плате; потом первому шейпу установить свойство NODRC_COMPONENT_BOARD_OVERLAP, так? И тогда получится, что вот эту первую часть можно свешивать с платы сколько угодно, но если ее часть все же на плату попадает, то она блокирует там размещение других компонентов. Правильно? Если выводы этого компонента вылезут за route_keepin появится ошибка, свойство NODRC_COMPONENT_BOARD_OVERLAP "отключает" проверку только на вылеты контура компонента за пределы платы, все остальные правила остаются в силе...
|
|
|
|
|
Nov 3 2010, 19:26
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
Практическим путем удалось проверить данный способ. Свойство NODRC_COMPONENT_BOARD_OVERLAP может быть задано на один из двух шейпов. При этом оно работает применительно к вылезанию за контур, описанный шейпом Package Keep-In (как и сказано в документации), а не просто board outline. Таким образом данный способ Old1 лучше, чем оба способа, предложенных Uree. Свойство можно записать в библиотеку, и оно будет гарантировать отсутствие ошибки потом всегда при использовании этого компонента. Делать Package keep-in за пределы платы некрасиво, поскольку тогда туда формально можно втыкать прочие элементы, которые там на самом деле ставить нельзя. Единственное, что я не совсем понял, почему данное свойство рекомендовано делать в конце цикла проектирования. Видимо, они его задумывали в основном для какого-то другого случая.
|
|
|
|
|
Nov 3 2010, 20:53
|

Знающий
   
Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095

|
Цитата(Hoodwin @ Nov 3 2010, 21:26)  Практическим путем удалось проверить данный способ. Свойство NODRC_COMPONENT_BOARD_OVERLAP может быть задано на один из двух шейпов. При этом оно работает применительно к вылезанию за контур, описанный шейпом Package Keep-In (как и сказано в документации), а не просто board outline. Таким образом данный способ Old1 лучше, чем оба способа, предложенных Uree. Свойство можно записать в библиотеку, и оно будет гарантировать отсутствие ошибки потом всегда при использовании этого компонента. Делать Package keep-in за пределы платы некрасиво, поскольку тогда туда формально можно втыкать прочие элементы, которые там на самом деле ставить нельзя. Единственное, что я не совсем понял, почему данное свойство рекомендовано делать в конце цикла проектирования. Видимо, они его задумывали в основном для какого-то другого случая. Видимо хелпописатели Cadence имели в виду вариант когда свойство NODRC_COMPONENT_BOARD_OVERLAP присвоено символу с одним шейпом place_bound_... в этом случае, как Вы верно заметили выше, ошибки DRC не генерятся при любом вылете символа за контур платы, поэтому если присвоить свойство вначале, то есть некоторая доля вероятности что конструктор может прозевать какой-нибудь, mechanical-pin или незанятый электрический пин... а так: расставил, все развел, просмотрел ошибки, проверил расположение свисающих компонентов, отполировал, ну и назначил NODRC_COMPONENT_BOARD_OVERLAP , чтоб ошибки глаза не мозолили... Ну а по поводу способа, то это не мой, а скорее уж Ваш способ, я делаю как описал выше, так на мой взгляд быстрее, и надежнее с компонентами которые могут свисать, а могут и не свисать...
|
|
|
|
|
Feb 24 2011, 14:38
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Есть небольшой вопрос. Никак не могу добиться, чтобы появлялись DRC, если компонент выходит за пределы по высоте. Что обидно, что когда-то давно это использовал, и все работало, а теперь начисто забыл, как это сделать. Нарисовал Package keepout, назначил ему свойство package_height_min. Выставил символ, назначил ему package_height_max и package_height_min, причем max больше, чем позволяет min в keepout. DRC не возникает. И режимы в настройках переключал, и batch update делал, и т.п. Хелп!
|
|
|
|
|
Feb 24 2011, 19:16
|

Знающий
   
Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095

|
Цитата(vitan @ Feb 24 2011, 16:38)  Есть небольшой вопрос. Никак не могу добиться, чтобы появлялись DRC, если компонент выходит за пределы по высоте. Что обидно, что когда-то давно это использовал, и все работало, а теперь начисто забыл, как это сделать. Нарисовал Package keepout, назначил ему свойство package_height_min. Выставил символ, назначил ему package_height_max и package_height_min, причем max больше, чем позволяет min в keepout. DRC не возникает. И режимы в настройках переключал, и batch update делал, и т.п. Хелп!  Какая версия PCB Editor-a? В 16.3s020 упомянутый вид DRC работает без проблем... Цитата И режимы в настройках переключал Т.е. надо полагать в constraint manager режим "Package to place keepout" включен? P.S. Видимость "слоев" DRC Error Class/Package_Top (Package_Bottom) включена?
|
|
|
|
|
Feb 25 2011, 09:18
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Версия 15.5.1 Цитата(Old1 @ Feb 24 2011, 22:16)  Т.е. надо полагать в constraint manager режим "Package to place keepout" включен? Если имеется ввиду это окошко, то да.  Цитата(Old1 @ Feb 24 2011, 22:16)  P.S. Видимость "слоев" DRC Error Class/Package_Top (Package_Bottom) включена? Возможно, в этой версии этого еще нет. Не нашел. Вот картинка из CMGR. Цифры передаются, но DRC не возникает. Как так?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|