|
|
  |
О генерации отчета pick & place после трансляции Layout -> Allegro, или как получить правильные координаты точки установки |
|
|
|
Mar 23 2012, 08:02
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
В процессе общения с монтажниками осознал еще одну беду, которая появилась после перевода проекта из layout в pcb editor. А именно: точки установки некоторых SMD компонентов попали на первый пин и поэтому в установщике оказались сдвинутыми. Исходно у layout каждый компонент имеет для каждого футпринта точку захвата его в питателе, причем эта точка задается в локальной системе координат компонента. В дальнейшем, при формировании файла pick and place это смещение учитывается при вычислении истинной координаты точки установки относительно глобальной системы координат всей платы. Но вот непонятно, есть ли такое понятие в pcb editor? В итоге в отчет о компонентах попадают не точки установки, а точки вставки, а они частенько у старых компонентов расположены в центре первого вывода.
Собственно, вопрос заключается в том, что делать в подобной ситуации? Можно ли как-нибудь сформировать отчет с правильными точками установки в центре симметрии компонентов? Пока что я занимался обновлением футпринтов и ручным сдвигом и ориентацией, но это увлекательное занятие почти на весь день может растянуться.
Сообщение отредактировал Hoodwin - Mar 23 2012, 08:08
|
|
|
|
|
Mar 23 2012, 08:25
|
Знающий
     
Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480

|
Насколько я помню, по нашим исследованиям получилось, что в Аллегро можно вывести две разных координаты - ноль футпринта(SYM_X/Y) и центр симметрии футпринта(SYM_CENTER_X/Y). Остальные тоже координаты, но только не единичные(SYM_BOX_X1/Y1 и SYM_BOX_X2/Y2, а также SYM_EXTENTS_X1/Y1 и SYM_EXTENTS_X2/Y2), через них можно попробвать вычислить центр. Вот изначально мы так и генерили P&P, через центр симметрии, пока не оказалось, что иногда он вычисляется по всем составляющим этого футпринта, включая например сдвинутый на пару сантиметров в сторону рефдез... Вот тут стало весело. Все оказалось достаточно просто - Аллегро корректно считает центр при наличии у футпринта шейпа на Place_Boundary. Если шейпа там нет - учитываются все составляющие. В общем мы переделали библиотеки футпринтов. Старые проекты не трогали, а в новых уже все хорошо.
|
|
|
|
|
Mar 23 2012, 09:23
|
Знающий
     
Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480

|
Волшебных инструментов в Аллегро нет и это хорошо  Видимо каким-то скриптом было бы проще всего обработать сгенерированный отчет и из координат бокса компонента определить центр симметрии. Наверно даже втянув в какой-нить Excel/OO этот отчет можно такое сделать, по координатам двух углов определить центр. Другое дело, что я точно не знаю, что такое: SYM_BOX_X1 - symbol bounding box low left-X SYM_CENTER_X - symbol body center x-coordinate Возможно второе есть уже вычисленный результат первого. Не знаю, не проверял. Точно знаю, что только правка библиотек решает эту проблему полностью и предотвращает ошибки в будущем.
|
|
|
|
|
Mar 23 2012, 10:13
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Никогда об этом не задумывался... Покопался в help Есть такой слой BODY_CENTER, кажется он как раз для этих вещей и сделан. Цитата Origin Specifies the point on each component to use for the anchor point. When you choose a component for placement, the program looks at the possible grid choices, selects the most appropriate, and aligns the specified origin with the intersection. Choose from the following component origins: Body Center Defines the component center by adding a text point at that location. The text point must be of class PACKAGE GEOMETRY/PART GEOMETRY, subclass BODY_CENTER. If you do not define the component center on the symbol drawing, the system automatically uses PLACE_BOUND_TOP to calculate the body center and uses that point for placement. Symbol Origin Indicates that the origin of the component is (0,0) on the symbol drawing. Pin 1 Indicates the pin that is defined as Pin 1 in the symbol drawing is positioned on a placement grid point. If no pin is defined as Pin 1, the component is placed on the symbol origin. Цитата SYM_CENTER_X SYM_CENTER_Y The X (Y) coordinate, in user units, of the symbol’s body center. These fields are taken from the text point of text attached to the symbol with subclass BODY_CENTER. If that text does not exist, it is calculated from the PLACE_BOUND_TOP rectangle(s).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|