Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибки округления PCB Editor
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Cadence
Ant_m
Собственно кто с этим сталкивался? Или я первый?
В зависимости от от точности заданной в PCB Editor изменяется размер контактных площадок. На глаз примерно на 0,005 мм.

Рецепт:
1) Делаем pad с размерами, ну например, 1,05x1,55 мм. Размер не важен, главное чтобы было 2 знака после запятой и 5 в конце(с другими вариантами, например 1,04мм, не проверял) Точность можно задать 3 знака после запятой(по умолчанию), или 2 - это неважно глючит одинаково.
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файла
2) Размещаем площадку на плате в PCB Editor(я делал это заменой падстека в готовом компоненте). На картинке: сетка 0,01мм, площадка зеленого цвета, синие линии board dimension - для наглядности. Точность проекта (accuracy) 2 знака. Как видно из картинки все нормально.
Нажмите для просмотра прикрепленного файла

3) Меняем точность в проекте с 2-х знаков до 3-х. Площадка увеличилась на 0,5 деления сетки!!! Можно увеличить точность до 4-х знаков после запятой - картина та же. Ошибка обратима - если вернуть все в зад, на точность 2 знака после запятой, площадка станет нормальной.
Нажмите для просмотра прикрепленного файла

В целом это конечно не страшно, величина очень маленькая.... Но проверку DRC это не смущает, о чем она и рапортует, сотней ошибок "из ниоткуда".

З.Ы. Cadence 16.3 hotfix 22. Но также работает в hotfix 6, и в cadence 15.7
Uree
То, что видно на экране, еще ни о чем не говорит.
Посмотрите на свойства пина после смены точности проекта, точнее на его координаты. Нарисуйте рядом линию и проверьте зазор линия-пин при 2-х и при 3-х знаковой точности. Вот тогда будем обсуждать.
Old1
Цитата(Ant_m @ Jan 31 2011, 15:15) *
Собственно кто с этим сталкивался? Или я первый?
В зависимости от от точности заданной в PCB Editor изменяется размер контактных площадок. На глаз примерно на 0,005 мм.

Рецепт:
1) Делаем pad с размерами, ну например, 1,05x1,55 мм. Размер не важен, главное чтобы было 2 знака после запятой и 5 в конце(с другими вариантами, например 1,04мм, не проверял) Точность можно задать 3 знака после запятой(по умолчанию), или 2 - это неважно глючит одинаково.
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файла
2) Размещаем площадку на плате в PCB Editor(я делал это заменой падстека в готовом компоненте). На картинке: сетка 0,01мм, площадка зеленого цвета, синие линии board dimension - для наглядности. Точность проекта (accuracy) 2 знака. Как видно из картинки все нормально.
Нажмите для просмотра прикрепленного файла

3) Меняем точность в проекте с 2-х знаков до 3-х. Площадка увеличилась на 0,5 деления сетки!!! Можно увеличить точность до 4-х знаков после запятой - картина та же. Ошибка обратима - если вернуть все в зад, на точность 2 знака после запятой, площадка станет нормальной.
Нажмите для просмотра прикрепленного файла

В целом это конечно не страшно, величина очень маленькая.... Но проверку DRC это не смущает, о чем она и рапортует, сотней ошибок "из ниоткуда".

З.Ы. Cadence 16.3 hotfix 22. Но также работает в hotfix 6, и в cadence 15.7

Скорее всего это багофича. Предполагаю что PCB Editor изначально заточен под дюймовые единицы длины и при переходе на метрические единицы делается пересчет , точность которого зависит от числа знаков после запятой. Проверил: в милах при переходе с 2-х до 3-х знаков после запятой новых ошибок не появилось...
Ant_m
Цитата(Uree @ Jan 31 2011, 16:24) *
То, что видно на экране, еще ни о чем не говорит.
Посмотрите на свойства пина после смены точности проекта, точнее на его координаты. Нарисуйте рядом линию и проверьте зазор линия-пин при 2-х и при 3-х знаковой точности. Вот тогда будем обсуждать.

Так и сделал. Вот что я понял: В PCB Editor площадка пина размещается, рисуется на экране и обсчитывается для DRC относительно нуля ее координат. Ноль координат площадки в большинстве случаев строго по центру (если не задавать offset).
Дальше применяем это к площадке с размером 1,05x1,55, ее координаты краев будут 0,525:0,775, -0,525:0,775 и т.д. Т.е по своей сути такая площадка требует точности в проекте 3 знака. Если проект 2 знака, то последняя цифра будет "съедена", вместо координат 0,525:0,775 получим 0,52:0,77. А 0,005 будет просто потеряна. Что я и наблюдал.
Hoodwin
2 Ant_m

А поделитесь, пожалуйста, соображением, что Вас толкнуло делать проект с точностью в два знака в миллиметрах?
Ant_m
Это требование, взятое с потолка, нашим начальством - якобы точности 2 знака на плате всегда достаточно. В символах допускается и 3 знака, но не приветствуется... cranky.gif

В общем то, как показало практика для 99% всего точности 0,1 мм достаточно. Но иногда попадается такое что я описывал выше... У меня это первый случай такого рода, хотя компонентов в библиотеке уже больше 500.
Hoodwin
Честно говоря, я в этом не уверен. Два знака в точности БД, по-моему, явно маловато, особенно, если учесть, что даже самые короткие вещественные числа (float) обеспечивают точность значительно больше, чем на два знака. Какой тогда смысл так огрублять? Кроме того, есть еще точность при формировании герберов, и она должна быть выше точности БД, причем заметно выше, если на плате есть dynamic shapes. В итоге, единственная внятная логическая цепочка получается такая. Производитель ПП должен указать какова максимально возможная точность герберов. Исходя из этой точности надо выбрать наибольшую точность БД, с учетом желания Allegro держать точность БД на один знак меньше, чем точность шаблонов (для RS-274X). В Вашем случае получается, что точность шаблонов должна быть 3 для оправдания двух знаков точности БД, а это вряд ли связано с ограничением производителей ПП.
BlackPrapor
Столкнулся в похожей проблемой.
В редакторе Gerber запустил DRC.Вывалилась куча ошибок по зазору медь-маска. Задано 0,1 мм, на выдаче DRC 0,099. Начал разбираться, выяснилось, что ноги растут ещё из allegro. В списке аппертур allegro присутствует куча перлов типа 1,499 мм (реально это должно быть 1,5). Точность проекта 4 знака. Миллиметры. Экспорт Gerber 2.5.
Почему это важно для меня. Дело в том, что минимальные значения зазоров в том числе определяют и тариф у изготовителя ПП. И вот зазор 0,1 мм это один (более дешевый и быстрый тариф), а 0,099 -- уже по другим расценкам. Это касается, в принципе, любых зазоров и ширин.
И вот какие варианты:
1. Все размеры (падов и т.п.) и зазоры делать на ничтожно малую величину больше (типа добавлять сотку или тысячную)
2. На выходе из редактора gerber, получая окончательные файлы, делать так, что б всё округлялось (например, выбрать меньшую точность, наверное, должно sdct правильно округлиться в боьшую сторону).
3. Заставить allegro изначально все цыфири проставлять корректно.

Варианты 1. и 2. мне не нравятся тем, что я не уверен, что где-то в другом месте, не вылезет нарушение, да и переделывать пады вовсе не хочется.
вариант 3 возможен?

Вот, пример аппертур gerber файла на выходе allegro

Код
%ADD18R,1.8999X1.8999*%
%ADD15R,1.2499X1.5999*%
%ADD17R,.8001X1.7501*%
%ADD19R,.5499X1.7*%
%ADD21R,1.7X.5499*%
%ADD13R,.8001X1.1999*%
%ADD22R,1.1001X1.3*%
%ADD10C,3.2*%
%ADD12C,1.95*%
%ADD20R,1.1999X1.1501*%
%ADD16R,1.1999X1.1501*%
%ADD14R,1.1501X1.1999*%
%ADD11C,1.8999*%


Как видно, размеры вычисляются довольно непредсказуемым образом. Все апертуры, отличающие единичками в младших разрядах, понятно, изначально были круглыми числами.
Что характерно, почему-то знаков после точки 4, а не 5, хотя gerber установлен в формат 2.5
BlackPrapor
Да это просто какая-то подстава!
Оказывается, выбор выходного формата никак не влияет на формат апертур (ну за исключением понятно метрика-империал). При любом раскладе апертуры задаются с 4 знаками после точки.
Точно также как при экспорте из CAM программы апертуры никак не округляются и задаются с максимальной для CAM точностью. Пока вырисовывается толко один путь -- врукопашную редактировать апертуры. Вот гадость какая!
BlackPrapor
В общем, раскопал я, откуда такая кака произрастает, да только не так уж и легче мне стало от этого. В общем, дело в следующем.
При работе в редакторе площадок (Pad Designer) и редакторе посадочных мест я всегда выбирал и работал микроны в качестве единицы проекта. Это удобно потому что числа получаются целыми их удобно вводить да и система обозначения падов у меня в микронах, например rec1500x1000 или cir1500d900.
Но проекты платы я делаю в миллиметрах, потому что числа получаются уже хоть и целые, но со многими цифрами.
Бог знает, как всё это сделано внутри и что бродило в голове у программистов, когда они создавали этот пакет, но я на эту тему даже не задумывался, предполагая, что внутренняя точность представления в базах данных выбрана заведомо выше той, которую пользователь может выбрать штатным образом.
В результате экспериментов, с переключением юнитов в различной комбинации, было выявлено, что проблема именно в том, что сохранены футпринты в микронах, а потом они используются в плане с миллимитровыми юнитами.
Если проделать следующее:
Открыть в редакторе посадочных мест футпринт, изменить единицы измерения с микрон на миллиметры, сохранить.
В редакторе плат обновить данный футпринт.
Перед созданием новых герберов из платы, пересоздать автоматически апертуры (обязательно).
Возможно, также система попросит перерисовать динамические шейпы.
После этого, все ровные размеры, которые превращались в нечто типа 1.4999 и 1.2001 становятся действительно ровными, 1.5000 и 1.2000
Таким образом, мне предстоит веселое занятие, заключающееся в перелопачивании всей библиотеке футпринтов.
Взываю к мегагуру ткнуть в направлении автоматизации данного процесса ибо как-то невесело имеющийся багаж перебирать в ручную. Возможно это как-то скриптуется через Scill ? Не прощу готового решения, хотя бы скажите да возможно и с чего начать.
BlackPrapor
Муки продолжаются. Попробовал я в PCB Editor подправить апертуры вручную в таблице Edit Aperture Wheel.
Но при создании gerber файлов уже в протоколе я вижу снова появляются апертуры с такими нехорошими циферками, соответственно в списке апертур расширенного gerber и далее также имеются апертуры с размерами +- единица младшего разряда. Почему при создании gerber не учитываются мои хотелки? Зачем тогда есть возможность ручного создания или редактирования апертур, если всё равно создание гербер неподконтрольно мне??
BlackPrapor
Извиняюсь, это снова я.
Возможно, мои страдания кому-то дадут урок, возможно даже CADENCE удосужится изменит это в будущих патчах (что вряд ли, ну да и ладно).
В общем, не смог я никак перебороть эту невзгоду, пришлось мне перелопачивать всю библиотеку футпринтов, практически вручную. Тут нужно сказать, что пришлось копнуть немного этот "язык программирования" SKILL и API Allegro. В частности, использовалась функция
Код
axlDBChangeDesignUnits("mm"    3)
, которая позволяла не лазить каждый раз в меню, а менять единицы измерения из командной строки внутри Allegro. если кто не понял первый аргумент это единицы измерения миллиметры, а 3 количество знаков после запятой.
Тут собственно собака и порылась, дело в том что на миллиметрах в allegro можно использовать максимальную точность 4 знака после запятой, а в микронах 2. Таким образом, в микронах суммарная точность получается на один знак выше и вот где-то внутри этих процедур преобразования происходит такое хитрое округление, которое из ровных 1500,00 микрон дает 1,4999 миллиметров. Я-то своим скудным инженерным умишком предполагал, что внутри базы данных используются некие внутренние единицы с точностью заведомо превышающую любую точность, которую может использовать юзер в пакете, чтобы не происходило всяких неприятных вещей при преобразовании, но прогарммисты Cadence, видимо решили иначе. Таким образом, при работе, нужно внимательно следить за единицами и их точностью.
Наверное, можно было бы полностью автоматизировать это дело, написав на SKILL скрипт, но, начав разбираться, я понял, что погружаюсь и меня затягивает, я потрачу слишком много времени, поэтому решил в полуавтомате все это сделать. Благо горячие клавиши и вышеуказанная функция помогли.
Итак, футпринты преобразованы в миллиметровую систему. В плате обновлены футпринты, при экспорте все апертуры уходят в gerber именно такие, как задано изначально и никаких сюрпризов с переходом 1,5 в 1,4999 или 2.1 в 2.1001 не происходит.
Uree
В общем нет смысла комбинировать с разными единицами работая в одном маршруте.
Кстати да, припоминаю проекты сделанные в милсах, так всегда был эффект округления при переключении в ММ - возникала куча новых ошибок DRC. Так что никаких внутренних единиц, все в тех, установленных в настройках, и пересчет всего при переключении. Что даже и правильно, я считаю...
xCooLLer
А в гербер файлах как отображается?
BlackPrapor
<поскиплено>
пардон, не понял сразу. вопрос был, видимо, по изначальной теме топика.
Major
Столкнулся с проблемой округления.
Все пады и плата в миллиметрах, 4 знака.
Есть Pin с диаметрами отверстий 1.5000 и 1.6000 мм. Через Show Element так и есть.
Строю Drill таблицу или создаю файл сверловки, получаю 1.500100 и 1.599900 соответственно.
Файл сверловки в формате 2.5.
На производстве округлят конечно, но осадок остается. Есть ли способ побороть это?


Major
Для частного случая нашел решение. Установил точность на печатной плате 3 знака (1мкм). Пады так и остались 4 знака.
Теперь таблица сверловки не режет глаз.
Есть ли волшебное правило, как гарантированно получать строгие размеры, установленные при создании pad/via?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.