Несколько лет назад перед автором этих строк ребром встал вопрос о переходе с первоклассной, но уже устаревшей на тот момент САПР P-CAD 2006 на нечто более современное. Практическим шагам предшествовал анализ большинства существовавших на тот момент аналогичных программных продуктов, завершившийся выбором в пользу Altium Designer. Одним из ключевых аспектов, повлиявших на выбор именно этой САПР, была полноценная поддержка трехмерного режима проектирования, когда у конструктора практически нет никаких ограничений на применение объемных моделей. То есть имеется возможность в любой момент подключать и использовать в процессе проектирования печатной платы любые 3D-модели — от корпусов электронных компонентов и элементов крепления до корпусов приборов, в которые будет вставлена разрабатываемая печатная плата. Такой подход к разработке электронных устройств позволяет не только свести практически к нулю количество ошибок при размещении компонентов, но и выполнить такое размещение наиболее эффективно. Более того, использующаяся в Altium Designer система правил содержит и правила размещения компонентов с учетом объема, что позволяет автоматизировать процесс обнаружения ошибок. Еще один плюс трехмерного режима — повышение комфортности работы. Ну, и, наверное, самое главное преимущество трехмерного режима Altium Designer — полноценный обмен данными с такими САПР машиностроительного направления, как Autodesk Inventor (рис. 1).
Обмен данными с Autodesk Inventor (далее — Inventor) базируется в первую очередь на формате STEP — универсальном формате обмена данными между САПР различного направления. Обмен является двусторонним. С одной стороны, к проекту печатной платы или библиотечному элементу Altium Designer (далее — AD) можно подключать любые компоненты, созданные в Inventor. С другой — трехмерную модель печатной платы можно передавать в Inventor для дальнейшей разработки устройства и оформления конструкторской документации как на все устройство, так и на электронный модуль печатной платы (рис. 2).
Стоит обратить особое внимание на функцию AD, позволяющую формировать контур печатной платы на основе трехмерной детали. Благодаря этой функции процесс формирования контура печатной платы сложнейшей формы сводится буквально к десятку щелчков мышью.
В общем случае обмен данными между AD и Inventor предполагает следующие операции:
Естественно, данная последовательность является весьма условной, так как подключать, отключать или изменять объемные модели можно практически в любой момент.
Рассмотрим каждую операцию на примере реальных разработок.
Процесс формирования контура печатной платы сложной формы проследим на примере платы для основания корпуса, изображенного на рис. 3. Корпус разработан в Inventor и представляет собой деталь.
По сути, формирование контура печатной платы в нашем случае состоит из двух основных этапов: первый — формирование «заготовки» платы в Inventor, второй — формирование на ее основе контура платы в AD. Оптимальный способ создания «заготовки» платы — формирование ее в контексте сборки.
Первым делом создадим в Inventor новую сборку и вставим туда основание. Для этого последовательно выполним команды Создать → Сборка и Сборка → Компонент → Вставить, а затем, выбрав нужный файл, расположим его в рабочем пространстве. После этого желательно развернуть сборку таким образом, чтобы плоскость, в которой будет располагаться плата, была параллельна плоскости экрана, как это показано на рис. 4.
Для создания новой детали в контексте сборки выполним следующие действия:
Теперь необходимо сформировать эскиз нашей будущей «детали-заготовки». На рис. 3 голубой линией выделена грань корпуса, которая и будет определять форму платы. Выполним следующие действия:
Как видно из рисунков, каждая опора имеет крепежное отверстие. Воспользуемся имеющейся геометрией корпуса и на его основе сформируем также и крепежные отверстия платы. Для этого выполним следующие действия:
Для AD толщина «заготовки» значения не имеет, но данная деталь вполне может пригодиться для дальнейшего проектирования в Inventor. В подавляющем большинстве случаев платы выпускают толщиной 1,5 мм, поэтому с помощью команды Модель → Создать → Выдавливание выполним выдавливание на 1,5 мм. Результат всех вышеописанных действий представлен на рис. 7.
«Заготовка» платы готова. Сохраним деталь по команде Сохранить и экспортируем ее в файл формата STEP с помощью команды Сохранить как… → Сохранить копию как… В результате выполнения последней откроется окно Сохранить копию как, внизу которого расположено выпадающее меню Тип файла, где необходимо выбрать пункт Файлы STEP (*.stp, *.ste, *.step) и нажать кнопку ОК. Далее требуется только выйти из режима редактирования детали в контексте сборки (команда Модель → Возврат → Возврат) и, при необходимости, сохранить сборку. На этом первый этап формирования контура печатной платы — формирование «заготовки» платы — завершен. Переходим к действиям в AD.
Чтобы сформировать контур печатной платы в AD, нашу «заготовку» требуется подключить к PCB-документу. Для этого нужно его открыть или создать и перевести в трехмерный режим путем нажатия клавиши «3» на клавиатуре.
Необходимо пояснить, что существует два типа подключения трехмерной графики в AD: встраивание всей информации о трехмерном объекте (Embed STEP Model) или указание ссылки на внешний файл (Link To STEP Model).
Преимущество подключения трехмерной модели в виде ссылки заключено в том, что AD отслеживает состояние внешнего файла. Если внешний файл был изменен, то при перезагрузке PCB-документа AD выдаст сообщение о наличии изменений и предложит обновить графику в PCB-документе. Недостаток проявляется в том, что при переносе PCB-документа на другой компьютер придется переносить и внешний STEP-файл, проследив при этом, чтобы после переноса он располагался по прежнему пути.
При встраивании трехмерной модели она полностью записывается в PCB-документ и больше не зависит от внешнего файла. Но с этим связан и недостаток метода: состояние внешнего файла AD никоим образом не отслеживает.
На примере нашей «заготовки» покажем подключение трехмерной графики к PCB-документу в виде ссылки на внешний файл. Для этого выполним команду Place → 3D Body (горячие клавиши PB), после чего откроется окно 3D Body (рис. 8).
В верхней части этого окна расположена область 3D Model Type, где необходимо указать тип подключаемой трехмерной модели. В нашем случае это Generic STEP Model. Ниже расположена область Properties, в которой указывается, с какой стороны платы следует располагать подключаемую модель и в каком слое она будет отображаться в двумерном режиме. В нашем случае это соответственно Top Side и Mechanical1. Если выбрать Bottom Side, «заготовка» будет перевернута. Самая главная для нас область — Generic STEP Model. Снизу данной области расположены две кнопки; нажимаем правую — Link To STEP Model. По ее нажатию откроется окно Choose Model, в котором необходимо выбрать интересующий нас STEP-файл (рис. 9).
Возможно, нашей модели в нем не будет, так как AD в данном случае не «знает», в какой папке эта модель находится. Чтобы «подсказать» ему эту информацию, необходимо в том же окне нажать кнопку Add Directories, в результате чего откроется новое окно Preferences с открытой вкладкой PCB Editor/Models (рис. 10).
На этой вкладке в области Model Search Path отображаются пути, по которым AD может найти трехмерные модели. Чтобы указать новую папку, путь к ней следует прописать в окошке, расположенном под данной областью, и нажать кнопку Add. Путь прописывается вручную или выбирается в окне Обзор папок, которое открывается по нажатию стандартной кнопки, расположенной справа. После указания нового пути необходимо поочередно нажать кнопки Apply и ОК. Окно Properties закроется, а система вернется к окну Choose Model, в котором отобразится наш STEP-файл «заготовки». Теперь нужно выбрать его в окне и нажать OK. Окно Choose Model также закроется, а система вернется к окну 3D Body. В верхней части области Generic STEP Model в строке Filename отобразятся имя подключаемого файла и путь к нему. Теперь нужно нажать кнопку OK, окно 3D Body временно скроется. Нам необходимо расположить нашу трехмерную модель в любом удобном месте — щелчком левой клавишей мыши. В результате наша модель появится в выбранном месте, а система вернется к окну 3D Body. Поскольку ничего более нам располагать не нужно, закроем это окно по кнопке Cancel.
Важно заметить, что в любой момент мы можем сменить тип подключения трехмерной модели. Для переключения ссылки на встроенную модель в окне свойств модели (то же самое окно 3D Body, но вызывается двойным щелчком по трехмерной модели) в области Generic STEP Model нужно нажать кнопку Change to Embedded. Переключение же со встроенной модели на ссылку происходит в том же окне свойств таким же образом, что и подключение новой модели: по кнопке Link To STEP Model.
Теперь выполняем команду Design → Board Shape → Define from 3D body (горячие клавиши DSD). Система перейдет в режим выбора трехмерного объекта, при этом курсор примет вид креста. Остается сделать два щелчка мышью. Первый — по нашей трехмерной модели. Это укажет системе, что именно данная модель будет использована для формирования контура платы. Теперь при наведении курсора на любую грань трехмерного объекта она будет подсвечиваться и выделяться синей окантовкой (рис. 11).
Второй щелчок выполняется по той грани, которая и определит контур печатной платы. В результате этого действия откроется окно Board Out line Creation Successful. В нем необходимо выбрать, каким образом расположить трехмерную модель после формирования контура:
После нажатия в этом окне кнопки Close система сформирует печатную плату с требуемым контуром (рис. 12).
Заметим, что при создании «заготовки» платы мы не зря сформировали не только контур, но и крепежные отверстия. AD достаточно умная система, чтобы «понять», что эти отверстия — именно отверстия (то есть pad), а не вырезы в плате (то есть не Board Cutout). Более того, AD правильно «подхватывает» из STEP-файлов диаметры таких отверстий. По умолчанию система формирует такие отверстия металлизированными. Очевидно, что не составляет труда превратить их в неметаллизированные — достаточно лишь снять в их свойствах галочку Plated.
Как уже оговаривалось выше, системе безразлично, какую толщину имеет подключаемая «заготовка» платы. И толщина платы, и стек слоев формируются соответствующими средствами самого AD.
Конечно, по объему представленного текста может сложиться впечатление, что данный способ формирования контура печатной платы весьма трудоемок. На самом деле достаточно проделать вышеописанные операции два-три раза, чтобы набить руку и убедиться, что этот метод гораздо эффективнее и проще рисования контура средствами AD. Ведь очевидно, что количество производимых операций практически не зависит от сложности контура платы. Следовательно, чем контур сложнее, тем более эффективен рассмотренный нами способ. Еще одно его достоинство в том, что сводится к нулю риск ошибки при формировании контура платы. А такие ошибки чаще всего обнаруживаются уже после того как с производства приходит готовая плата. С учетом вышесказанного ясно, что этот способ имеет свои преимущества даже при формировании контуров простых прямоугольных плат.
Тему создания трехмерной модели в Inventor и библиотечного посадочного места в AD мы оставим за рамками статьи. Покажем лишь, как подключается трехмерная модель, — на примере довольно распространенного корпуса SOIC-14.
Первым делом необходимо преобразовать трехмерную модель корпуса SOIC-14 в формат STEP. Эта операция полностью аналогична описанному выше процессу экспорта «заготовки» платы в тот же формат.
Далее следует процесс подключения STEP-файла к посадочному месту. Как говорилось выше, существует два типа подключения трехмерной геометрии: в виде ссылки на внешний файл и путем интеграции трехмерной графики в PCB-документ или в библиотеку посадочных мест. При подключении трехмерной графики к PCB-документу у разработчика есть выбор способа. Подключение же STEP-файла к библиотечному посадочному месту возможно только путем интеграции.
Первым делом откроем в AD нужное посадочное место и нажатием на клавиатуре клавиши «3» переведем его в трехмерный режим. После этого выполним уже знакомую команду Place → 3D Body. Откроется окно 3D Body. Описание окна и выполняемых процедур дано выше. Отличие состоит только в том, что на этот раз в области Generic STEP Model нужно выбрать кнопку Embed STEP Model. Откроется стандартное окно выбора файлов Choose Model, в котором следует выбрать STEP-файл нужной модели. После этого действия строка Filename области Generic STEP Model отобразит имя подключаемого файла. После нажатия кнопки OK в рабочей области отобразится курсор с «приклеенной» к нему трехмерной моделью (рис. 13).
Выбрав подходящее место и щелкнув по нему левой клавишей мыши, мы установим модель корпуса, а система вернется к окну 3D Body. Поскольку подключать модели больше не требуется, закроем это окно кнопкой Cancel.
Следующим действием необходимо выровнять подключенную модель корпуса таким образом, чтобы она «стояла» точно на поверхности платы. Для этого сначала, с помощью зажатой на клавиатуре клавиши SHIFT, повернем посадочное место таким образом, чтобы была доступна нижняя плоскость выводов корпуса, как это изображено на рис. 14. После этого выполним команду Tools → 3D Body Placement → Align Face With Board (горячие клавиши TBF). Программа перейдет в режим выравнивания модели по поверхности платы, а курсор примет вид креста. Первым щелчком левой клавиши мыши мы укажем системе модель, которую необходимо выровнять. При этом сама модель станет полупрозрачной. Теперь наведем курсор на нижнюю плоскость любого из выводов. Эта плоскость выделится и подсветится синей окантовкой (рис. 14). Выполним по плоскости второй щелчок левой клавишей мыши, и наша трехмерная модель выровняется точно по поверхности платы.
Теперь повернем посадочное место в исходное положение. Если необходимо, повернем модель корпуса вокруг оси Z — для этого зажмем на корпусе левую клавишу мыши и необходимое количество раз нажмем на клавиатуре «Пробел» (рис. 15).
Остается выровнять модель корпуса относительно посадочного места. В нашем случае эту процедуру желательно выполнять в двумерном режиме, перейдя в него нажатием клавиши «2» на клавиатуре (рис. 16).
В данном режиме трехмерная модель отображается как заштрихованный прямоугольник в слое Mechanical 1. Нам нужно выровнять модель корпуса относительно горизонтальной и вертикальной осей посадочного места. Если присмотреться к рис. 16, можно заметить, что верхняя и нижняя линии в слое Top Overlay расположены своими центрами как раз на вертикальной оси посадочного места. А на горизонтальной оси расположены две контактные площадки. Для выравнивания модели корпуса по горизонтальной оси выберем с помощью зажатой клавиши SHIFT модель и одну из контактных площадок, расположенных на нужной оси. Теперь щелкнем правой клавишей мыши и из выпадающего меню выберем пункт Align → Align Vertical Centers (рис. 16). После этого щелкнем курсором на выбранной контактной площадке. Сама контактная площадка останется на месте, модель корпуса выровняется своей горизонтальной осью по горизонтальной оси площадки, а значит и по горизонтальной оси посадочного места. Для выравнивания модели корпуса по вертикальной оси посадочного места нужно сделать все то же самое, только вместо площадки выбрать одну из линий из слоя Top Overlay, а в меню выбрать пункт Align → Align Horizontal Centers.
Посадочное место с подключенной моделью корпуса готово (рис. 17). Теперь можно сохранять и, при необходимости, перекомпилировать библиотеку. При каждом использовании данного посадочного места модель корпуса будет оставаться подключенной и неизменной даже если ее внешний STEP-файл будет удален с диска.
Передача платы из AD в Inventor также происходит через промежуточный STEP-файл. Данная процедура осуществляется в два этапа: первый — экспорт платы из AD в STEP-файл, второй — импорт платы из STEP-файла и ее преобразование в сборку формата Inventor.
При экспорте платы из AD в STEP-файл необходимо для предварительно открытого PCB-документа выполнить команду File → Save Copy As и в открывшемся окне Save a copy of выбрать имя сохраняемого STEP-файла, путь его расположения и тип сохраняемого файла. Последний выбирается из выпадающего меню Тип файла, расположенного внизу окна. После нажатия клавиши Сохранить откроется окно STEP Export Options (рис. 18).
В этом окне выбираются опции экспортируемых STEP-файлов. В области Components With 3D Bodies можно указать, следует ли сохранять все модели электронных компонентов (Export All) либо только выбранные (Export Selected). Область 3D Bodies Export Options предназначена для случаев, когда на плате имеются компоненты, к которым подключены и STEP-модели, и простейшие модели, выполненные средствами AD. Соответственно, выбор здесь следующий:
Область Pad Holes касается экспорта отверстий посадочных мест: Export All — экспортировать все отверстия, Export Selected — экспортировать отверстия только выбранных компонентов. В области Component Suffix можно выбрать суффикс, который будет добавлен к наименованию электронного компонента:
После нажатия кнопки OK AD экспортирует плату в STEP-файл.
Теперь импортируем полученный STEP-файл в Inventor. Для этого выполним в Inventor команду Открыть. Откроется стандартное окно выбора файлов Открыть. Для упрощения поиска нужного файла выберем тип файла Файлы STEP (*.stp, *.ste, *.step) из выпадающего меню Тип файлов, которое расположено внизу окна.
После открытия нашего STEP-файла необходимо преобразовать его в сборку Inventor. Для этого выполним команду Сохранить как и в открывшемся одноименном окне выберем место, куда будет записан файл сборки. Как уже упоминалось в начале статьи, из AD в Inventor плата передается не в виде детали, а в виде сборочного узла. Поэтому после нажатия кнопки Сохранить откроется окно Сохранение, в котором можно выбрать, какие файлы деталей и сборок сохранять, а какие — нет. Поскольку текущая сборка сохраняется впервые, сохранять нужно файлы всех входящих в нее деталей и сборок. После нажатия кнопки ОК программа сохранит сборочный узел печатной платы в соответствующем формате. Данную сборку можно теперь использовать как для дальнейших разработок, так и для оформления соответствующей конструкторской документации.
Большинство электронных компонентов конструктивно просты (стандартизированные корпуса микросхем, резисторы, чип-конденсаторы и другие) и на разработку в Inventor их 3D-моделей затрачиваются сравнительно небольшие ресурсы. В то же время существует достаточно большой класс конструктивно сложных элементов, таких как, например, USB-разъемы, держатели SIM-карт, разъемы типа D-SUB
Кроме того, в сети Интернет можно найти достаточно большое количество сайтов, безвозмездно предоставляющих доступ к уже готовым любительским (и не только) 3D-моделям корпусов электронных компонентов. Теоретически там можно найти модели всех необходимых типов и наименований. К сожалению, подобные модели не всегда достоверны.
В этой статье представлена, так сказать, «примитивная» интеграция, не требующая никаких дополнительных настроек: как только установлены обе программы, можно спокойно начинать работу.
Однако и Autodesk Inventor, и Altium Designer поддерживают создание, редактирование и выполнение скриптов. При этом, если для написания скриптов в Inventor предназначен язык Visual Basic, то в AD пользователю предоставлен выбор из целого ряда языков: Delphi Script, Enable Basic, VB Script и Java Script. Естественно, с применением скриптов возможности интеграции двух САПР значительно возрастают.