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