Перейти к содержанию
    

Ошибки округления PCB Editor

Собственно кто с этим сталкивался? Или я первый?

В зависимости от от точности заданной в PCB Editor изменяется размер контактных площадок. На глаз примерно на 0,005 мм.

 

Рецепт:

1) Делаем pad с размерами, ну например, 1,05x1,55 мм. Размер не важен, главное чтобы было 2 знака после запятой и 5 в конце(с другими вариантами, например 1,04мм, не проверял) Точность можно задать 3 знака после запятой(по умолчанию), или 2 - это неважно глючит одинаково.

post-29765-1296477356_thumb.png post-29765-1296477364_thumb.png

2) Размещаем площадку на плате в PCB Editor(я делал это заменой падстека в готовом компоненте). На картинке: сетка 0,01мм, площадка зеленого цвета, синие линии board dimension - для наглядности. Точность проекта (accuracy) 2 знака. Как видно из картинки все нормально.

post-29765-1296477371_thumb.png

 

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

post-29765-1296477380_thumb.png

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То, что видно на экране, еще ни о чем не говорит.

Посмотрите на свойства пина после смены точности проекта, точнее на его координаты. Нарисуйте рядом линию и проверьте зазор линия-пин при 2-х и при 3-х знаковой точности. Вот тогда будем обсуждать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собственно кто с этим сталкивался? Или я первый?

В зависимости от от точности заданной в PCB Editor изменяется размер контактных площадок. На глаз примерно на 0,005 мм.

 

Рецепт:

1) Делаем pad с размерами, ну например, 1,05x1,55 мм. Размер не важен, главное чтобы было 2 знака после запятой и 5 в конце(с другими вариантами, например 1,04мм, не проверял) Точность можно задать 3 знака после запятой(по умолчанию), или 2 - это неважно глючит одинаково.

post-29765-1296477356_thumb.png post-29765-1296477364_thumb.png

2) Размещаем площадку на плате в PCB Editor(я делал это заменой падстека в готовом компоненте). На картинке: сетка 0,01мм, площадка зеленого цвета, синие линии board dimension - для наглядности. Точность проекта (accuracy) 2 знака. Как видно из картинки все нормально.

post-29765-1296477371_thumb.png

 

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

post-29765-1296477380_thumb.png

 

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

 

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

Скорее всего это багофича. Предполагаю что PCB Editor изначально заточен под дюймовые единицы длины и при переходе на метрические единицы делается пересчет , точность которого зависит от числа знаков после запятой. Проверил: в милах при переходе с 2-х до 3-х знаков после запятой новых ошибок не появилось...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То, что видно на экране, еще ни о чем не говорит.

Посмотрите на свойства пина после смены точности проекта, точнее на его координаты. Нарисуйте рядом линию и проверьте зазор линия-пин при 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 будет просто потеряна. Что я и наблюдал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Ant_m

 

А поделитесь, пожалуйста, соображением, что Вас толкнуло делать проект с точностью в два знака в миллиметрах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

В общем то, как показало практика для 99% всего точности 0,1 мм достаточно. Но иногда попадается такое что я описывал выше... У меня это первый случай такого рода, хотя компонентов в библиотеке уже больше 500.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Честно говоря, я в этом не уверен. Два знака в точности БД, по-моему, явно маловато, особенно, если учесть, что даже самые короткие вещественные числа (float) обеспечивают точность значительно больше, чем на два знака. Какой тогда смысл так огрублять? Кроме того, есть еще точность при формировании герберов, и она должна быть выше точности БД, причем заметно выше, если на плате есть dynamic shapes. В итоге, единственная внятная логическая цепочка получается такая. Производитель ПП должен указать какова максимально возможная точность герберов. Исходя из этой точности надо выбрать наибольшую точность БД, с учетом желания Allegro держать точность БД на один знак меньше, чем точность шаблонов (для RS-274X). В Вашем случае получается, что точность шаблонов должна быть 3 для оправдания двух знаков точности БД, а это вряд ли связано с ограничением производителей ПП.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столкнулся в похожей проблемой.

В редакторе 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да это просто какая-то подстава!

Оказывается, выбор выходного формата никак не влияет на формат апертур (ну за исключением понятно метрика-империал). При любом раскладе апертуры задаются с 4 знаками после точки.

Точно также как при экспорте из CAM программы апертуры никак не округляются и задаются с максимальной для CAM точностью. Пока вырисовывается толко один путь -- врукопашную редактировать апертуры. Вот гадость какая!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, раскопал я, откуда такая кака произрастает, да только не так уж и легче мне стало от этого. В общем, дело в следующем.

При работе в редакторе площадок (Pad Designer) и редакторе посадочных мест я всегда выбирал и работал микроны в качестве единицы проекта. Это удобно потому что числа получаются целыми их удобно вводить да и система обозначения падов у меня в микронах, например rec1500x1000 или cir1500d900.

Но проекты платы я делаю в миллиметрах, потому что числа получаются уже хоть и целые, но со многими цифрами.

Бог знает, как всё это сделано внутри и что бродило в голове у программистов, когда они создавали этот пакет, но я на эту тему даже не задумывался, предполагая, что внутренняя точность представления в базах данных выбрана заведомо выше той, которую пользователь может выбрать штатным образом.

В результате экспериментов, с переключением юнитов в различной комбинации, было выявлено, что проблема именно в том, что сохранены футпринты в микронах, а потом они используются в плане с миллимитровыми юнитами.

Если проделать следующее:

Открыть в редакторе посадочных мест футпринт, изменить единицы измерения с микрон на миллиметры, сохранить.

В редакторе плат обновить данный футпринт.

Перед созданием новых герберов из платы, пересоздать автоматически апертуры (обязательно).

Возможно, также система попросит перерисовать динамические шейпы.

После этого, все ровные размеры, которые превращались в нечто типа 1.4999 и 1.2001 становятся действительно ровными, 1.5000 и 1.2000

Таким образом, мне предстоит веселое занятие, заключающееся в перелопачивании всей библиотеке футпринтов.

Взываю к мегагуру ткнуть в направлении автоматизации данного процесса ибо как-то невесело имеющийся багаж перебирать в ручную. Возможно это как-то скриптуется через Scill ? Не прощу готового решения, хотя бы скажите да возможно и с чего начать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Муки продолжаются. Попробовал я в PCB Editor подправить апертуры вручную в таблице Edit Aperture Wheel.

Но при создании gerber файлов уже в протоколе я вижу снова появляются апертуры с такими нехорошими циферками, соответственно в списке апертур расширенного gerber и далее также имеются апертуры с размерами +- единица младшего разряда. Почему при создании gerber не учитываются мои хотелки? Зачем тогда есть возможность ручного создания или редактирования апертур, если всё равно создание гербер неподконтрольно мне??

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извиняюсь, это снова я.

Возможно, мои страдания кому-то дадут урок, возможно даже 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 не происходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем нет смысла комбинировать с разными единицами работая в одном маршруте.

Кстати да, припоминаю проекты сделанные в милсах, так всегда был эффект округления при переключении в ММ - возникала куча новых ошибок DRC. Так что никаких внутренних единиц, все в тех, установленных в настройках, и пересчет всего при переключении. Что даже и правильно, я считаю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<поскиплено>

пардон, не понял сразу. вопрос был, видимо, по изначальной теме топика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...