реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> О генерации отчета pick & place после трансляции Layout -> Allegro, или как получить правильные координаты точки установки
Hoodwin
сообщение Mar 23 2012, 08:02
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



В процессе общения с монтажниками осознал еще одну беду, которая появилась после перевода проекта из layout в pcb editor. А именно: точки установки некоторых SMD компонентов попали на первый пин и поэтому в установщике оказались сдвинутыми. Исходно у layout каждый компонент имеет для каждого футпринта точку захвата его в питателе, причем эта точка задается в локальной системе координат компонента. В дальнейшем, при формировании файла pick and place это смещение учитывается при вычислении истинной координаты точки установки относительно глобальной системы координат всей платы. Но вот непонятно, есть ли такое понятие в pcb editor? В итоге в отчет о компонентах попадают не точки установки, а точки вставки, а они частенько у старых компонентов расположены в центре первого вывода.

Собственно, вопрос заключается в том, что делать в подобной ситуации? Можно ли как-нибудь сформировать отчет с правильными точками установки в центре симметрии компонентов? Пока что я занимался обновлением футпринтов и ручным сдвигом и ориентацией, но это увлекательное занятие почти на весь день может растянуться.

Сообщение отредактировал Hoodwin - Mar 23 2012, 08:08
Go to the top of the page
 
+Quote Post
Uree
сообщение Mar 23 2012, 08:25
Сообщение #2


Знающий
******

Группа: Свой
Сообщений: 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. Если шейпа там нет - учитываются все составляющие.
В общем мы переделали библиотеки футпринтов. Старые проекты не трогали, а в новых уже все хорошо.
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Mar 23 2012, 08:52
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Цитата(Uree @ Mar 23 2012, 11:25) *
... через них можно попробвать вычислить центр.


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

Я тоже еще в layout начал делать компоненты с центром симметрии в начале координат, но до сих пор приходится поддерживать старые проекты, в которых компоненты делались по образцам родных библиотек layout, и вот до сих пор аукается sm.gif
Go to the top of the page
 
+Quote Post
Uree
сообщение Mar 23 2012, 09:23
Сообщение #4


Знающий
******

Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480



Волшебных инструментов в Аллегро нет и это хорошоsm.gif
Видимо каким-то скриптом было бы проще всего обработать сгенерированный отчет и из координат бокса компонента определить центр симметрии. Наверно даже втянув в какой-нить Excel/OO этот отчет можно такое сделать, по координатам двух углов определить центр.
Другое дело, что я точно не знаю, что такое:
SYM_BOX_X1 - symbol bounding box low left-X
SYM_CENTER_X - symbol body center x-coordinate
Возможно второе есть уже вычисленный результат первого. Не знаю, не проверял. Точно знаю, что только правка библиотек решает эту проблему полностью и предотвращает ошибки в будущем.
Go to the top of the page
 
+Quote Post
vitan
сообщение Mar 23 2012, 09:26
Сообщение #5


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(Uree @ Mar 23 2012, 12:25) *
Все оказалось достаточно просто - Аллегро корректно считает центр при наличии у футпринта шейпа на Place_Boundary. Если шейпа там нет - учитываются все составляющие.

Жесть.
Спасибо, проверим либы.
Я тоже генерю по центру симметрии. Проблем пока не возникало...
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Mar 23 2012, 10:03
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Не совсем понял, вот все эти SYM_BOX_X1 - это вообще что? и откуда оно берется? Это какой-то отчет их делает?

Проблема с библиотеками собственно в том, что переделав компонент в библиотеке мы автоматом получаем сдвиг оных на плате, которая получена транслятором. Именно этим я и занимался вначале. И думал, что есть более культурный способ, какой был у layout.
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Mar 23 2012, 10:13
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 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).
Go to the top of the page
 
+Quote Post
Uree
сообщение Mar 23 2012, 10:37
Сообщение #8


Знающий
******

Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480



Цитата(vitan @ Mar 23 2012, 10:26) *
Я тоже генерю по центру симметрии. Проблем пока не возникало...


Вот у нас их тоже не возникало, пока в процессе редактирования платы не пришлось удалить некоторые шейпы PLACE_BOUNDARY, а некоторые срастить(Merge). Тут-то все и завертелось...
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Mar 27 2012, 08:22
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



А что означает выражение "adding a text point at that location"?
Это надо в слое BODY_CENTER добавить произвольный текст и поместить точку его привязки в месте вставки? или не текст? или текст, но не произвольный? Я не очень понимаю, при чем тут вообще текст, вроде бы речь о точке установки. Или это так проще было писать утилиту по добыванию точки вставки из компонента, чтобы ее можно было подвинуть руками на уровне всей платы?
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Mar 27 2012, 12:17
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765



Цитата(Hoodwin @ Mar 27 2012, 12:22) *
А что означает выражение "adding a text point at that location"?

Сам не знаю, за что купил, за то и продал laughing.gif Надо пробовать, а сейчас некогда...
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Mar 27 2012, 19:12
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



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

Проблема однако в том, что для получения этих координат нужно запускать утилиту C:\Cadence\SPB_16.x\tools\pcb\bin\plctxt.exe с ключом -c, все попытки выдать рапорт вроде Placed Components или Comonents приводят к выдаче координат точки вставки, а не установки.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 17:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016