Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: О генерации отчета pick & place после трансляции Layout -> Allegro
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Cadence
Hoodwin
В процессе общения с монтажниками осознал еще одну беду, которая появилась после перевода проекта из layout в pcb editor. А именно: точки установки некоторых SMD компонентов попали на первый пин и поэтому в установщике оказались сдвинутыми. Исходно у layout каждый компонент имеет для каждого футпринта точку захвата его в питателе, причем эта точка задается в локальной системе координат компонента. В дальнейшем, при формировании файла pick and place это смещение учитывается при вычислении истинной координаты точки установки относительно глобальной системы координат всей платы. Но вот непонятно, есть ли такое понятие в pcb editor? В итоге в отчет о компонентах попадают не точки установки, а точки вставки, а они частенько у старых компонентов расположены в центре первого вывода.

Собственно, вопрос заключается в том, что делать в подобной ситуации? Можно ли как-нибудь сформировать отчет с правильными точками установки в центре симметрии компонентов? Пока что я занимался обновлением футпринтов и ручным сдвигом и ориентацией, но это увлекательное занятие почти на весь день может растянуться.
Uree
Насколько я помню, по нашим исследованиям получилось, что в Аллегро можно вывести две разных координаты - ноль футпринта(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. Если шейпа там нет - учитываются все составляющие.
В общем мы переделали библиотеки футпринтов. Старые проекты не трогали, а в новых уже все хорошо.
Hoodwin
Цитата(Uree @ Mar 23 2012, 11:25) *
... через них можно попробвать вычислить центр.


Вот это место можно подробнее? Это как делать то нужно? Есть какой-то волшебный инструмент, или надо скрипт писать?

Я тоже еще в layout начал делать компоненты с центром симметрии в начале координат, но до сих пор приходится поддерживать старые проекты, в которых компоненты делались по образцам родных библиотек layout, и вот до сих пор аукается sm.gif
Uree
Волшебных инструментов в Аллегро нет и это хорошоsm.gif
Видимо каким-то скриптом было бы проще всего обработать сгенерированный отчет и из координат бокса компонента определить центр симметрии. Наверно даже втянув в какой-нить Excel/OO этот отчет можно такое сделать, по координатам двух углов определить центр.
Другое дело, что я точно не знаю, что такое:
SYM_BOX_X1 - symbol bounding box low left-X
SYM_CENTER_X - symbol body center x-coordinate
Возможно второе есть уже вычисленный результат первого. Не знаю, не проверял. Точно знаю, что только правка библиотек решает эту проблему полностью и предотвращает ошибки в будущем.
vitan
Цитата(Uree @ Mar 23 2012, 12:25) *
Все оказалось достаточно просто - Аллегро корректно считает центр при наличии у футпринта шейпа на Place_Boundary. Если шейпа там нет - учитываются все составляющие.

Жесть.
Спасибо, проверим либы.
Я тоже генерю по центру симметрии. Проблем пока не возникало...
Hoodwin
Не совсем понял, вот все эти SYM_BOX_X1 - это вообще что? и откуда оно берется? Это какой-то отчет их делает?

Проблема с библиотеками собственно в том, что переделав компонент в библиотеке мы автоматом получаем сдвиг оных на плате, которая получена транслятором. Именно этим я и занимался вначале. И думал, что есть более культурный способ, какой был у layout.
Ant_m
Никогда об этом не задумывался... Покопался в 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).
Uree
Цитата(vitan @ Mar 23 2012, 10:26) *
Я тоже генерю по центру симметрии. Проблем пока не возникало...


Вот у нас их тоже не возникало, пока в процессе редактирования платы не пришлось удалить некоторые шейпы PLACE_BOUNDARY, а некоторые срастить(Merge). Тут-то все и завертелось...
Hoodwin
А что означает выражение "adding a text point at that location"?
Это надо в слое BODY_CENTER добавить произвольный текст и поместить точку его привязки в месте вставки? или не текст? или текст, но не произвольный? Я не очень понимаю, при чем тут вообще текст, вроде бы речь о точке установки. Или это так проще было писать утилиту по добыванию точки вставки из компонента, чтобы ее можно было подвинуть руками на уровне всей платы?
Ant_m
Цитата(Hoodwin @ Mar 27 2012, 12:22) *
А что означает выражение "adding a text point at that location"?

Сам не знаю, за что купил, за то и продал laughing.gif Надо пробовать, а сейчас некогда...
Hoodwin
Вот, проверил. Действительно, текст, вставленный в классе PACKAGE_GEOMETRY/BODY_CENTER и привязанный к компоненту приводит к выдаче в файл расстановки координат точки вставки текста в проект. При этом текст на уровне платы можно подвинуть, не требуется вручную редактировать и обновлять компонент. Видимо поэтому и придуман именно текст в качестве объекта указания точки.

Проблема однако в том, что для получения этих координат нужно запускать утилиту C:\Cadence\SPB_16.x\tools\pcb\bin\plctxt.exe с ключом -c, все попытки выдать рапорт вроде Placed Components или Comonents приводят к выдаче координат точки вставки, а не установки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.