Построение в Pro/E 3D моделей ПП, спроектированных в P-CAD или Altium Designer
Для создания трехмерных моделей плат, в данной статье, рассматривается использование формата IDF. IDF (Intermediate Data Format), предназначен для обмена данными между электрическими и механическими САПР (CAD/CAE systems) для использования в 3D проектах. В настоящее время наиболее распространен формат версии 3.0, описание которого и было использовано конструкторами сектора печатных плат НПО «Мир» для разработки методики построения моделей плат.
Прежде всего, пару слов о самом формате. Как и большинство остальных форматов обмена данными (например, DXF формат), IDF файлы записываются в текстовом виде. Далее идет примерный перевод основных правил формата:
- Файлы состоят из секций.
- Секции начинаются и заканчиваются ключевым словом с точкой «.» перед ним.
- Записи секции прописываются одной строкой, и оканчиваются управляющим символом перевода каретки.
- Поля записи разделены пробелами.
- Записи и поля могут быть любой длины.
- Поддерживаются три типа данных: строка (string), вещественные числа (float) и целые числа (integer).
- Строки, содержащие пробелы должны быть заключены в двойные кавычки (“”).
- Ключевые строки не чувствительны к регистру символов. Как правило, они записаны в верхнем регистре для повышения - добочитаемости.
- Регистр строковых значений определяется посылающей и получающей системами. Поэтому, лучше всего придерживаться верхнего регистра.
- Комментарий представляет собой отдельную строку и начинается с символа решетки (#). Большие комментарии необходимо разбивать на несколько строк, и каждую начинать с символа решетки. Сами комментарии не могут находиться в пределах секции, а располагаются только между ними.
Теперь немного об основных (не всех) секциях файлов IDF:
- Header – информация о плате. Согласно описанию формата это: ключевое слово (например, BOARD_FILE), версия IDF, система проектирования платы, дата, версия платы, имя файла платы и единицы измерения.
- Board Outline – контур, вырезы и толщина платы. В первой записи указывается ключевое слово начала секции и ключевое слово, определяющее возможность редактирования контура (выреза) только в CAD, только в CAE или в обоих системах. Во второй записи указана толщина платы. В последующих записях описывается геометрия компонента: направление по часовой или против часовой стрелки, координаты точки по X и Y, угол поворота. Угол поворота может иметь значение 0 или -0, тогда описывается линия. Если же указано значение в диапазоне 0<α<360, то описывается дуга. И линия, и дуга описывается двумя записями. Поскольку описывается замкнутый контур компонента, то координаты в последней записи должны совпадать с координатами в первой. Последняя запись – ключевое слово конца секции.
- Drilled Holes – описание отверстий платы. Первая и последняя запись – ключевые слова начала и конца секции. Вторая запись указывает диаметр отверстия, координаты по X и Y, наличие или отсутствие металлизации, принадлежность отверстия (например, отдельное отверстие или в составе компонента), тип отверстия (например, монтажное, вывод, переходное или др.), возможность редактирования (только в CAD, только в CAE или в обоих системах).
- Placement – определяет координаты расположения компонентов на плате. Первая и последняя записи – ключевые слова начала и конца секции. Поля второй записи содержат имя геометрии компонента (посадочного места), имя самого компонента и его позиционное обозначение. Третья запись содержит координаты по X и Y, высоту над платой (чаще всего это значение 0, но может быть и любым в диапазоне > или = 0), угол поворота, сторону установки на плате и статус размещения. Статус размещения обычно имеет значение PLACED. Но может быть и ECAD или MCAD. В первом случае, компонент зафиксирован в системе проектирования печатных плат и может быть изменен только в ней же. Второй случай аналогичен первому, но применительно к системе трехмерного моделирования. Вторая и третья записи всегда использованы парами. Количество пар соответствует числу компонентов.
- Electrical – задает параметры радио компонентов. В первой записи указываются имя посадочного места, имя компонента, единицы измерения и высота. Далее идут записи, аналогичные описанию геометрии в секции Board Outline. Возможна вставка необязательных записей с указанием номинала компонента.
- Mechanical – задает параметры механических компонентов. Формат секции аналогичен секции Electrical.
Приведенное описание секций сокращено, поэтому читателям не стоит полностью на него полагаться. Неуказанные значения параметров имеются в описании формата IDF (Intermediate Data Format Specification).
Для создания модели платы в Pro/E обычно требуется два файла. Первый, с расширением emn, описание платы (Board File). Второй, с расширением emp, содержит описание графики компонентов (Library File). Emp файл может также содержать номинал и некоторые другие параметры. Эти файлы и создаются при экспорте из CAE систем. Расширение файлов, создаваемых при экспорте, может не совпадать с указанными выше. Например, в системе P-CAD это расширения brd для файла платы, и pro для файла библиотеки компонентов. Для создания полноценной модели файл описания платы, как минимум, должен содержать следующие секции:
- Header;
- Board Outline;
- Drilled Holes;
- Placement.
У файла библиотеки компонентов это секции:
- Header;
- Electrical (количество секций по числу экспортируемых компонентов).
Манипулируя настройками в диалоге экспорта CAE системы, число секций может быть увеличено. Также возможно настраивать содержимое указанных выше секций. К примеру, в секцию описания отверстий (Drilled Holes) можно включить все отверстия, все отверстия до указанного минимального диаметра, либо только монтажные отверстия. Возможно экспортировать все компоненты, либо компоненты имущие атрибут IDF_COMP. Это относится к секции расположения компонентов (Placement) файла описания платы (Board File), и влияет на количество секций радиокомпонентов (Electrical) файла библиотеки (Library File).
Поскольку CAE система проектирования печатных плат работает только с двумя плоскостями, то и геометрия экспортируемых компонентов не содержит трехмерного описания. Компонент представляет собой упрощенный замкнутый контур с указанием его высоты в виде значения специального атрибута. Полученную таким образом плату можно увидеть на примере трехфазного счетчика электрической энергии С-03, спроектированного в НПО “Мир”, на рис.1. Упрощенная геометрия, конечно не впечатляет. Также накладываются ошибки алгоритма выделения замкнутого контура компонента. По крайней мере P-CAD во время экспорта хватает произвольный замкнутый контур. Например, если некий компонент, изображенный в самом P-CAD как прямоугольник с окружностью внутри, то после экспорта он может оказаться как параллепипедом, так и цилиндром заданной высоты. Тем не менее, работать можно и с такой платой.
Рис.1 – Модель платы с упрощенной геометрией компонентов.
Однако, возможно вместо упрощенной геометрии компонентов указать их трехмерные аналоги из библиотеки Pro/E. Естественно, такую библиотеку нужно создавать отдельно средствами самого Pro/E. Решение проблемы подстановки трехмерной модели компонента, вместо его описания в файле библиотеки IDF, сводится ко вводу соответствующих ссылок. Далее рассматриваются два варианта подстановки моделей из библиотеки Pro/E в создаваемую модель печатной платы.
Первый вариант состоит в создании файла mapfile.map, содержащий следующие строки:
map_objects_by_name->
ECAD_NAME "AM1D-SNZ"
ECAD_ALT_NAME "AM1D-0505SH60-NZ"
ECAD_TYPE ""
MCAD_NAME "DC_DC"
MCAD_TYPE "part"
END
Где:
- ECAD_NAME - component name CAE системы;
- ECAD_ALT_NAME - component type CAE системы;
- MCAD_NAME – имя компонента из библиотеки Pro/E;
- MCAD_TYPE - Assembly (в случае если компонент сборный, например, транзистор на радиаторе), либо Part.
Компоненты подставляются в соответствии с заложенной в них системы координат, ориентация которой должна совпадать с ориентацией точки вставки CAE системы (например, для пикада это Reference Point).
Указанный выше способ обладает некоторыми недостатками:
- Несоответствие имени посадочного места, имени компонента в библиотеке Pro/E. На начальном этапе освоения трехмерного построения печатных плат, в практике автора это вызывало путаницу.
- Подразумевается, что посадочное место имеет один вариант установки.
Рассмотрим последний пункт более подробно. Например, любой резистор можно установить горизонтально с зазором в 1+0,5мм над платой, либо без зазора. Или необходима вертикальная установка резистора (см. рис.2 и 3).
Рис.2 – Варианты установки резисторов в P-CAD.
Рис.3 – Варианты установки резисторов в Pro/E.
Получается, что в печатной плате должны присутствовать отдельные посадочные места на каждый из вариантов установки. Данный подход весьма неудобен, т.к. совершенно одинаковые резисторы на одной плате, могут иметь разную установку. Т.е. это приводит к конфликту в библиотеке CAE системы, когда компоненты с одинаковыми именами должны иметь разные посадочные места. Иногда проблему можно обойти, разбив начальную библиотеку на несколько отдельных библиотек. В современных САПР, для проектирования печатных плат, в посадочное место можно заложить несколько вариантов установки. К примеру, в системе P-CAD посадочное место обозначается как Pattern, а вариант установки как Pattern Graphics. Таким образом при создании библиотеки компонентов для печатных плат не возникает никаких конфликтов. Более того, теперь возможно вместо нескольких библиотек с дублирующимися именами компонентов, но с разными посадочными местами, использовать одну общую для всех печатных плат и принципиальных схем в организации.
В НПО "Мир" официально утвержденные библиотеки располагаются на специальном сетевом ресурсе, доступном всем схемотехникам и конструкторам. Согласно стандарту предприятия, администрирование и редактирование библиотек производится определенной группой сотрудников. Все остальные сотрудники имеют доступ только для чтения.
Итак, рассмотрим второй вариант. Поскольку IDF формат не предусматривает наличие ссылки на вариант установки в посадочном месте, то решить проблему можно только обходным путем. После анализа возможностей системы проектирования Pro/E выясняем, что при загрузке модели, Pro/E ищет модели отдельных компонентов и сборок в текущем каталоге, в специально указанном каталоге библиотек, и в списке каталогов в файле search.pro текущего каталога. Список каталогов из файла search.pro подгружается только в момент старта самого Pro/E из рабочего каталога.
Далее, в процессе работы удалось выяснить, что после указания и загрузки экспортированного файла платы, файл с описанием геометрии компонентов загружается автоматически. Единственным требованием для этого является идентичность имени файла библиотеки, имени файла платы (разумеется, за исключением расширения). В случае отсутствия файла библиотеки, Pro/E запрашивает его у пользователя. В случае же отмены пользователем выбора файла, построение модели полностью прерывается. Логично предположить, что загрузка компонентов модели может сработать и при импорте файла платы. Что и подтвердилось после ручного редактирования emn файла. Для проверки предположения редактировался произвольный компонент из секции Placement, точнее было отредактировано поле Package Name. Ниже показана часть секции Placement.
.PLACEMENT
…
144.5 155.5 0.0 180.0 BOTTOM PLACED
#Вместо KNP-100 подставляем имя компонента Pro/E
KNP-100 "KNP-100-12 Ом±5%" R4
...
.END_PLACEMENT
После экспериментов над файлом платы с небольшим числом компонентов, оказалось, что в случае нахождения Pro/E всех моделей компонентов, файл библиотеки emp не подгружается. Однако отказываться от него полностью не стоит, т.к. в случае отсутствия какого-либо компонента, его геометрия может быть взята из emp. В противном же случае, как указывалось выше, пользователь не сможет получить модель платы (запрос на загрузку emp). На рис.4 показана плата модуля GSM счетчика С-03.
Рис.4 – Модуль GSM с малым количеством компонентов.
Теперь можно приступать к решению проблемы с вариантами установки отдельного посадочного места. Наиболее оптимальным выходом стало объединение имени посадочного места с именем варианта установки, и соответственно, присвоения идентичного имени модели компонента. Причем вовсе необязательно плодить множество отдельных файлов моделей, по одной на каждый вариант установки. Использование таблицы семейств (Family Table) в Pro/E позволяет создавать компоненты аналогично системе проектирования печатных плат. В таблице семейств создаются необходимые варианты (Instance) основной модели, которые можно соотнести с вариантом установки. Т.е. имени варианта модели (Instance Name) присваиваем имя, полученное объединением имен посадочного места с вариантом установки.
Обобщая выше сказанное, можно сделать вывод об устранении недостатков, описанных в первом методе. Тем не менее, был приобретен другой, довольно серьезный недостаток. Это ручное редактирование файла emn. Как быть, если плата содержит около тысячи компонентов? К примеру, плата счетчика С-03 изображенная на рис.5.
Рис.5 – Самые мелкие элементы сливаются с платой.
Даже при числе компонентов около сотни, работа получается нудная и продолжительная. К тому же вариант установки на печатной плате явно не указывается, необходимо выводить свойство каждого компонента.
Для преодоления описанных трудностей, автором было написано небольшое исполняемое приложение. Поскольку показанные на рисунках печатные платы разработаны в системе P-CAD, удалось задействовать встроенный в него интерфейс взаимодействия со сторонними программами – DBX. Подобный же интерфейс DXP имеется и у Altium Designer. Суть работы написанной программы заключается в загрузке свойств компонентов печатной платы непосредственно из P-CAD после установления с ним связи. После выделения из полученных свойств компонентов необходимой информации, происходит разрыв взаимодействия программы с P-CAD. Далее загружаются файлы brd и pro, экспортированные системой P-CAD, и происходит их анализ. Во время анализа выполняются необходимые замены в полях записей формата IDF. В конце работы программа сохраняет файлы, но уже с расширениями emn и emp. Ниже приведены фрагменты экспортированного файла платы до, и после обработки.
Фрагмент файла brd (до обработки):
.PLACEMENT
SOT23-5L LP2981IM5-5,0 DA5
109.0 179.5 0.0 180.0 BOTTOM PLACED
0805 "0805 X7R-1мкФ±10%" C25
111.0 184.75 0.0 90.0 BOTTOM PLACED
CR_1206 "CR 1206-1кОм±5%" R114
108.25 184.25 0.0 90.0 BOTTOM PLACED
CR_0805 "CR 0805-1кОм±5%" R49
110.8 257.0 0.0 270.0 BOTTOM PLACED
CR_1206 "CR 1206-1 Ом±5%" R37
117.0 177.75 0.0 180.0 BOTTOM PLACED
...
.END_PLACEMENT
Фрагмент файла emn (после обработки), изменения выделены цветом:
.PLACEMENT
SOT23-5LIIIRD "LP2981IM5-5,0" DA5
109.0 179.5 0.0 180.0 BOTTOM PLACED
0805IRD "0805 X7R-1мкФ±10%" C25
111.0 184.75 0.0 90.0 BOTTOM PLACED
CR_1206IRD "CR 1206-1кОм±5%" R114
108.25 184.25 0.0 90.0 BOTTOM PLACED
CR_0805IRD "CR 0805-1кОм±5%" R49
110.8 257.0 0.0 270.0 BOTTOM PLACED
CR_1206IRD "CR 1206-1 Ом±5%" R37
117.0 177.75 0.0 180.0 BOTTOM PLACED
...
.END_PLACEMENT
Рассмотрим вкратце модели устройства, использованные в качестве примеров. Полная модель счетчика С-03 показана на рис.6
Рис.6 – Полная модель.
Рис.7 – Модель со снятой крышкой.
При создании моделей печатных плат данного устройства пришлось выводить все элементы. Сделано это было из-за сложности устройства по части зазоров между различными компонентами конструктива и печатных плат. Малейшее нарушение требований к зазорам могло привести (и на стадии опытных образцов пару раз приводило) к уменьшению электрической прочности и появлению пробоев во время испытаний. Конструктору, пытающемуся построить модель своей платы, может быть достаточно вывести только некоторые габаритные компоненты. Для этого в системе проектирования платы достаточно ввести атрибут IDF_COMP (о чем уже упоминалось в статье). Множество поверхностных компонентов существенно увеличили нагрузку на имеющиеся ресурсы компьютера (см. фрагмент основной платы счетчика на рис.8).
Рис.8 – Мелкие компоненты раздувают размер модели.
Чтобы несколько разгрузить модель, пришлось отказаться от вывода отверстий. Точнее, были выведены только монтажные отверстия. Отсутствие отверстий в плате под штыревые элементы автоматически увеличило количество ошибок во время проверки модели на наличие пересечений между компонентами. Но с этим пришлось смириться. Все-таки лучше проанализировать список пересечений, чем мучиться с постоянным подвисанием, во время которого программа просчитывает модель.
В заключение, хотелось бы предупредить, что освоение построения трехмерных моделей печатных плат, поначалу существенно тормозится необходимостью создания библиотеки моделей компонентов в Pro/E. Однако возможности предоставляемые таблицей семейств помогут облегчить этот этап. С каждой последующей моделью, процесс построения ускоряется. При накоплении достаточного количества компонентов в библиотеках Pro/E, становятся очевидными преимущества моделирования плат. Если раньше конструктору печатной платы приходилось держать в уме значения высоты каких-либо компонентов, или прорисовывать отдельные проекции устройства, то теперь необходимость в этом практически отпала. Основное достоинство трехмерного проектирования, это наглядность и простота контроля размеров между компонентами конструктива и платы.
Источник: www.mir-omsk.ru