Интеграция Altium Designer и Autodesk Inventor
Несколько лет назад перед автором этих строк ребром встал вопрос о переходе с первоклассной, но уже устаревшей на тот момент САПР PCAD 2006 на нечто более современное. Практическим шагам предшествовал анализ большинства существовавших на тот момент аналогичных программных продуктов, завершившийся выбором в пользу Altium Designer. Одним из ключевых аспектов, повлиявших на выбор именно этой САПР, была полноценная поддержка трехмерного режима проектирования, когда у конструктора практически нет никаких ограничений на применение объемных моделей. То есть имеется возможность в любой момент подключать и использовать в процессе проектирования печатной платы любые 3Dмодели — от корпусов электронных компонентов и элементов крепления до корпусов приборов, в которые будет вставлена разрабатываемая печатная плата. Такой подход к разработке электронных устройств позволяет не только свести практически к нулю количество ошибок при размещении компонентов, но и выполнить такое размещение наиболее эффективно. Более того, используемая в Altium Designer система правил содержит и правила размещения компонентов с учетом объема, что позволяет автоматизировать процесс обнаружения ошибок. Еще один плюс трехмерного режима — повышение комфортности работы. Ну, и, наверное, самое главное преимущество трехмерного режима Altium Designer — полноценный обмен данными с такими САПР машиностроительного направления, как Autodesk Inventor (рис. 1).
Рис. 1. Пример 3D-модели корпуса электронного компонента в Inventor (слева), и эта же модель, импортированная и подключенная к библиотечному посадочному месту в Altium (справа)
Обмен данными с Autodesk Inventor (далее — Inventor) базируется в первую очередь на формате STEP — универсальном формате обмена данными между САПР различного направления. Обмен является двусторонним. С одной стороны, к проекту печатной платы или библиотечному элементу Altium Designer (далее — AD) можно подключать любые компоненты, созданные в Inventor. С другой — трехмерную модель печатной платы можно передавать в Inventor для дальнейшей разработки устройства и оформления конструкторской документации как на все устройство, так и на электронный модуль печатной платы (рис. 2).
Рис. 2. Пример платы в Altium (слева), и та же плата после ее передачи в Inventor (справа)
Стоит обратить особое внимание на функцию AD, позволяющую формировать контур печатной платы на основе трехмерной детали. Благодаря этой функции процесс формирования контура печатной платы сложнейшей формы сводится буквально к десятку щелчков мышью.
В общем случае обмен данными между AD и Inventor предполагает следующие операции:
- В Inventor формируется трехмерный компонент сколь угодно сложной формы и определенной толщины. Можно сказать, что данный компонент является «электронной заготовкой» печатной платы (далее — «заготовка» платы). Он экспортируется в файл STEPформата, который, в свою очередь, импортируется в AD, где на его основе уже буквально несколькими щелчками мышью формируется контур печатной платы.
- В Inventor проектируются трехмерные модели электронных компонентов, элементов корпуса будущего устройства, монтажных и иных элементов, влияющих на расположение компонентов на плате. Также через промежуточный формат STEP данные модели передаются в AD, где уже в зависимости от назначения подключаются либо к библиотечному посадочному месту, либо к PCBдокументу.
- Разведенная печатная плата через промежуточный формат STEP передается в Inventor. Примечательно, что этот формат позволяет передавать печатную плату не в виде единой детали, а как сборочный узел. При этом передается и информация о позиционных обозначениях электронных компонентов, что значительно облегчает процесс формирования конструкторской документации.
Естественно, данная последовательность является весьма условной, так как подключать, отключать или изменять объемные модели можно практически в любой момент.
Рассмотрим каждую операцию на примере реальных разработок.
Формирование контура печатной платы
Процесс формирования контура печатной платы сложной формы проследим на примере платы для основания корпуса, изображенного на рис. 3. Корпус разработан в Inventor и представляет собой деталь.
По сути, формирование контура печатной платы в нашем случае состоит из двух основных этапов: первый — формирование «заготовки» платы в Inventor, второй — формирование на ее основе контура платы в AD. Оптимальный способ создания «заготовки» платы — формирование ее в контексте сборки.
Рис. 3. Пример основания корпуса со сложной геометрией. Голубым цветом выделены площадки, на которые будет опираться плата, и ребро, определяющее контур платы
Первым делом создадим в Inventor новую сборку и вставим туда основание. Для этого последовательно выполним команды Создать -> Сборка и Сборка -> Компонент -> Вставить, а затем, выбрав нужный файл, расположим его в рабочем пространстве. После этого желательно развернуть сборку таким образом, чтобы плоскость, в которой будет располагаться плата, была параллельна плоскости экрана, как это показано на рис. 4.
Рис. 4. Создание новой детали — «заготовки» платы —
в контексте сборки
Рис. 5. Формирование контура «электронной заготовки» печатной платы
Для создания новой детали в контексте сборки выполним следующие действия:
1. Выполним команду Сборка -> Компонент -> Создать (рис. 4.1), после чего откроется окно Создание компонента по месту.
2. В открывшемся окне зададим имя файла нашей «заготовки» платы (рис. 4.2) и папку, где будет сохранен файл детали (рис. 4.3).
3. После нажатия кнопки OK (рис. 4.4) окно Создание компонента по месту закроется и Inventor перейдет в режим выбора базовой плоскости новой детали.
4. Очевидно, что в процессе создания «заготовки» платы ее необходимо формировать в том положении, в котором плата будет расположена в устройстве. Поэтому в качестве базовой плоскости укажем один из четырех опорных выступов (рис. 4.5). Inventor перейдет в режим редактирования эскиза детали в контексте сборки (рис. 4.6).
Теперь необходимо сформировать эскиз нашей будущей «детализаготовки». На рис. 3 голубой линией выделена грань корпуса, которая и будет определять форму платы. Выполним следующие действия:
1. Командой Эскиз -> Рисование -> Проецирование геометрии спроецируем на эскиз интересующую нас грань и получим спроецированный контур (рис. 5.1).
2. Командой Эскиз -> Изменить -> Смещение создадим новый контур и слегка сместим его к центру (рис. 5.2).
3. Командой Эскиз -> Зависимость -> Размеры зададим отступ нового контура от спроецированного на 0,5 мм (рис. 5.3).
Как видно из рисунков, каждая опора имеет крепежное отверстие. Воспользуемся имеющейся геометрией корпуса и на его основе сформируем также и крепежные отверстия платы. Для этого выполним следующие действия:
1. Командой Эскиз -> Рисование -> Проецирование геометрии спроецируем в наш эскиз крепежные отверстия основания корпуса.
2. Крепежные отверстия платы должны быть большего диаметра, чем крепежные отверстия корпуса. Поэтому для формирования крепежных отверстий платы воспользуемся командой Эскиз -> Рисование -> Окружность, центры новых окружностей разместим в центрах спроецированных окружностей.
3. С помощью команды Эскиз -> Зависимость -> Размеры зададим диаметр одной из новых окружностей — например, 2,5 мм.
4. Командой Эскиз -> Зависимость -> Равенство выравняемдиаметры всех четырех окружностей, завершив тем самым формирование эскиза «заготовки» платы. Результат всех наших действий должен выглядеть примерно так, как показано на рис. 6.
5. Выполним команду Эскиз -> Выход -> Принять эскиз.
Рис. 6. Готовый эскиз «заготовки» платы
Рис. 7. Готовая «заготовка» платы в составе сборки
в режиме редактирования детали
Для 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).
Рис. 8. Окно 3D Body
В верхней части этого окна расположена область 3D Model Type, где необходимо указать тип подключаемой трехмерной модели. В нашем случае это Generic STEP Model. Ниже расположена область Properties, в которой указывается, с какой стороны платы следует располагать подключаемую модель и в каком слое она будет отображаться в двумерном режиме. В нашем случае это, соответственно, Top Side и Mechanical1. Если выбрать Bottom Side, «заготовка» будет перевернута. Самая главная для нас область — Generic STEP Model. Снизу данной области расположены две кнопки; нажимаем правую — Link To STEP Model. По ее нажатии откроется окно Choose Model, в котором необходимо выбрать интересующий нас STEPфайл (рис. 9).
Рис. 9. Окно Choose Model
Рис. 10. Окно Preferences
Возможно, нашей модели в нем не будет, так как 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).
Рис. 11. Выбор грани для формирования контура печатной платы
Рис. 12. Плата, сформированная в Altium Designer
Второй щелчок выполняется по той грани, которая и определит контур печатной платы. В результате этого действия откроется окно Board Out line Creation Successful. В нем необходимо выбрать, каким образом расположить трехмерную модель после формирования контура:
- To align face with top PCB board surface — выравнивание выбранной плоскости по верхней стороне платы;
- To align face with bottom PCB board surface — выравнивание выбранной плоскости по нижней стороне платы;
- Do not modify model position — не изменять положение трехмерной модели.
После нажатия в этом окне кнопки Close система сформирует печатную плату с требуемым контуром (рис. 12).
Заметим, что при создании «заготовки» платы мы не зря сформировали не только контур, но и крепежные отверстия. AD достаточно умная система, чтобы «понять», что эти отверстия — именно отверстия (то есть pad), а не вырезы в плате (то есть не Board Cutout). Более того, AD правильно «подхватывает» из STEPфайлов диаметры таких отверстий. По умолчанию система формирует такие отверстия металлизированными. Очевидно, что не составляет труда превратить их в неметаллизированные — достаточно лишь снять в их свойствах галочку Plated.
Как уже оговаривалось выше, системе безразлично, какую толщину имеет подключаемая «заготовка» платы. И толщина платы, и стек слоев формируются соответствующими средствами самого AD.
Конечно, по объему представленного текста может сложиться впечатление, что данный способ формирования контура печатной платы весьма трудоемок. На самом деле достаточно проделать вышеописанные операции дватри раза, чтобы набить руку и убедиться, что этот метод гораздо эффективнее и проще рисования контура средствами AD. Ведь очевидно, что количество производимых операций практически не зависит от сложности контура платы. Следовательно, чем контур сложнее, тем более эффективен рассмотренный нами способ. Еще одно его достоинство в том, что сводится к нулю риск ошибки при формировании контура платы. А такие ошибки чаще всего обнаруживаются уже после того, как с производства приходит готовая плата. С учетом вышесказанного ясно, что этот способ имеет свои преимущества даже при формировании контуров простых прямоугольных плат.
Подключение трехмерной модели электронного компонента к библиотечному посадочному месту
Тему создания трехмерной модели в Inventor и библиотечного посадочного места в AD мы оставим за рамками статьи. Покажем лишь, как подключается трехмерная модель, — на примере довольно распространенного корпуса SOIC14.
Первым делом необходимо преобразовать трехмерную модель корпуса SOIC14 в формат 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).
Рис. 13. Подключение трехмерной модели корпуса к библиотечному посадочному месту
Рис. 14. Выравнивание корпуса по верхней поверхности платы
Выбрав подходящее место и щелкнув по нему левой клавишей мыши, мы установим модель корпуса, а система вернется к окну 3D Body. Поскольку подключать модели больше не требуется, закроем это окно кнопкой Cancel.
Следующим действием необходимо выровнять подключенную модель корпуса таким образом, чтобы он «стояла» точно на поверхности платы. Для этого сначала, с помощью зажатой на клавиатуре клавиши SHIFT, повернем посадочное место таким образом, чтобы была доступна нижняя плоскость выводов корпуса, как это изображено на рис. 14. После этого выполним команду Tools -> 3D Body Placement -> Align Face With Board (горячие клавиши TBF). Программа перейдет в режим выравнивания модели по поверхности платы, а курсор примет вид креста. Первым щелчком левой клавиши мыши мы укажем системе модель, которую необходимо выровнять. При этом сама модель станет полупрозрачной. Теперь наведем курсор на нижнюю плоскость любого из выводов. Эта плоскость выделится и подсветится синей окантовкой (см. рис. 14). Выполним по плоскости второй щелчок левой клавишей мыши, и наша трехмерная модель выровняется точно по поверхности платы.
Теперь повернем посадочное место в исходное положение. Если необходимо, повернем модель корпуса вокруг оси Z — для этого зажмем на корпусе левую клавишу мыши и необходимое количество раз нажмем на клавиатуре «Пробел» (рис. 15).
Рис. 15. Поворот модели корпуса вокруг оси Z
Остается выровнять модель корпуса относительно посадочного места. В нашем случае эту процедуру желательно выполнять в двумерном режиме, перейдя в него нажатием клавиши «2» на клавиатуре (рис. 16).
Рис. 16. Выравнивание корпуса электронного компонента по горизонтальной оси посадочного места
В данном режиме трехмерная модель отображается как заштрихованный прямоугольник в слое Mechanical 1. Нам нужно выровнять модель корпуса относительно горизонтальной и вертикальной осей посадочного места. Если присмотреться к рис. 16, можно заметить, что верхняя и нижняя линии в слое Top Overlay расположены своими центрами как раз на вертикальной оси посадочного места. А на горизонтальной оси расположены две контактные площадки. Для выравнивания модели корпуса по горизонтальной оси выберем с помощью зажатой клавиши SHIFT модель и одну из контактных площадок, расположенных на нужной оси. Теперь щелкнем правой клавишей мыши и из выпадающего меню выберем пункт Align -> Align Vertical Centers (см. рис. 16). После этого щелкнем курсором на выбранной контактной площадке. Сама контактная площадка останется на месте, модель корпуса выровняется своей горизонтальной осью по горизонтальной оси площадки, а значит, и по горизонтальной оси посадочного места. Для выравнивания модели корпуса по вертикальной оси посадочного места нужно сделать все то же самое, только вместо площадки выбрать одну из линий из слоя Top Overlay, а в меню выбрать пункт Align -> Align Horizontal Centers.
Посадочное место с подключенной моделью корпуса готово (рис. 17). Теперь можно сохранять и, при необходимости, перекомпилировать библиотеку. При каждом использовании данного посадочного места модель корпуса будет оставаться подключенной и неизменной даже если ее внешний STEPфайл будет удален с диска.
Рис. 17. Подключенная к библиотечному посадочному месту и выровненная модель корпуса электронного компонента
Передача данных печатной платы из Altium Designer в Autodesk Inventor
Передача платы из AD в Inventor также происходит через промежуточный STEPфайл. Данная процедура осуществляется в два этапа: первый — экспорт платы из AD в STEPфайл, второй — импорт платы из STEPфайла и ее преобразование в сборку формата Inventor.
При экспорте платы из AD в STEPфайл необходимо для предварительно открытого PCBдокумента выполнить команду File -> Save Copy As и в открывшемся окне Save a copy of выбрать имя сохраняемого STEPфайла, путь его расположения и тип сохраняемого файла. Последний выбирается из выпадающего меню Тип файла, расположенного внизу окна. После нажатия клавиши Сохранить откроется окно STEP Export Options (рис. 18).
Рис. 18. Окно STEP Export Options
В этом окне выбираются опции экспортируемых STEPфайлов. В области Components With 3D Bodies можно указать, следует ли сохранять все модели электронных компонентов (Export All) либо только выбранные (Export Selected). Область 3D Bodies Export Options предназначена для случаев, когда на плате имеются компоненты, к которым подключены и STEPмодели, и простейшие модели, выполненные средствами AD. Соответственно, выбор здесь следующий:
- Prefer simple bodies — приоритет за простыми моделями;
- Prefer STEP models — приоритет за STEPмоделями;
- Export both simple bodies & STEP models — экспортировать оба типа моделей.
Область Pad Holes касается экспорта отверстий посадочных мест: Export All — экспортировать все отверстия, Export Selected — экспортировать отверстия только выбранных компонентов. В области Component Suffix можно выбрать суффикс, который будет добавлен к наименованию электронного компонента:
- None — без суффикса;
- STEP Filename — в качестве суффикса будет использовано имя STEPфайла;
- Custom — произвольный суффикс (задается тут же, в расположенном чуть ниже окошке).
После нажатия кнопки OK AD экспортирует плату в STEPфайл.
Теперь импортируем полученный STEPфайл в Inventor. Для этого выполним в Inventor команду Открыть. Откроется стандартное окно выбора файлов Открыть. Для упрощения поиска нужного файла выберем тип файла Файлы STEP (*.stp, *.ste, *.step) из выпадающего меню Тип файлов, которое расположено внизу окна.
После открытия нашего STEPфайла необходимо преобразовать его в сборку Inventor. Для этого выполним команду Сохранить как и в открывшемся одноименном окне выберем место, куда будет записан файл сборки. Как уже упоминалось в начале статьи, из AD в Inventor плата передается не в виде детали, а в виде сборочного узла. Поэтому после нажатия кнопки Сохранить откроется окно Сохранение, в котором можно выбрать, какие файлы деталей и сборок сохранять, а какие — нет. Поскольку текущая сборка сохраняется впервые, сохранять нужно файлы всех входящих в нее деталей и сборок. После нажатия кнопки ОК программа сохранит сборочный узел печатной платы в соответствующем формате. Данную сборку можно теперь использовать как для дальнейших разработок, так и для оформления соответствующей конструкторской документации.
Где взять модели корпусов электронных компонентов
Большинство электронных компонентов конструктивно просты (стандартизированные корпуса микросхем, резисторы, чипконденсаторы и др.) и на разработку в Inventor их 3Dмоделей затрачиваются сравнительно небольшие ресурсы. В то же время существует достаточно большой класс конструктивно сложных элементов, таких, например, как USBразъемы, держатели SIMкарт, разъемы типа DSUB и т.д. Ресурсы, которые необходимо затратить на формирование их 3Dмоделей, уже значительно возрастают, зачастую становясь неадекватными поставленным целям. И это даже при наличии полных конструкторских чертежей на данные компоненты, что бывает весьма редко. Впрочем, большинство производителей подобных компонентов предоставляют свободный доступ к 3Dмоделям продукции на своих сайтах. Такие модели нужно лишь скачать и импортировать в Inventor. Иногда возникает необходимость «раскрасить» скачанные 3Dмодели для придания им достоверного вида, но даже в этом случае затраты ресурсов на получение качественной 3Dмодели корпуса не окажутся чрезмерными.
Кроме того, в Интернете можно найти достаточно большое количество сайтов, безвозмездно предоставляющих доступ к уже готовым любительским (и не только) 3Dмоделям корпусов электронных компонентов. Теоретически там можно найти модели всех необходимых типов и наименований. К сожалению, подобные модели не всегда достоверны.
В качестве заключения
В этой статье представлена, так сказать, «примитивная» интеграция, не требующая никаких дополнительных настроек: как только установлены обе программы, можно спокойно начинать работу.
Однако и Autodesk Inventor, и Altium Designer поддерживают создание, редактирование и выполнение скриптов. При этом, если для написания скриптов в Inventor предназначен язык Visual Basic, то в AD пользователю предоставлен выбор из целого ряда языков: Delphi Script, Enable Basic, VB Script и Java Script. Естественно, с применением скриптов возможности интеграции двух САПР значительно возрастают.