Рассматривается повышение производительности САПР Altium Designer 18 в сравнении с предыдущей версией системы, достигнутое, в частности, благодаря переходу системы на 64-битную архитектуру. Описываются изменения пользовательского интерфейса, а также новые возможности Altium Designer 18, связанные с проектированием многоплатных изделий и трехмерным моделированием конструкций.
УДК 004.94:621.3.049.75 | ВАК 05.13.12
DOI: 10.22184/1992-4178.2018.176.5.170.176
УДК 004.94:621.3.049.75 | ВАК 05.13.12
DOI: 10.22184/1992-4178.2018.176.5.170.176
Теги: 3d simulation cad multi-board electronic devices pcb design конструирование печатных плат многоплатные электронные изделия сапр трехмерное моделирование
ОСНОВНЫЕ НОВОВВЕДЕНИЯ ALTIUM DESIGNER 18[1]
С появлением 18-й версии в Altium Designer кардинально изменился интерфейс, цветовая схема перешла из «светлой» в «темную». В первых минорных версиях не было возможности поставить «светлую» схему, но с появлением последней версии привыкшим работать со «светлым» интерфейсом пользователям эту возможность вернули (рис. 1).
Изменения пользовательского интерфейса Altium Designer 18 коснулись не только цветовой схемы. Появились новые панели, переконфигурированы уже существующие, от некоторых редко используемых панелей отказались вовсе. Например:
• новая панель Properties (Свойства) устраняет потребность в диалоговых окнах для объектов, что значительно ускоряет и упрощает их размещение и редактирование. В этой панели собираются все родительские и дочерние свойства, что делает ее оптимальной точкой доступа к этим свойствам. Также в панель добавлена возможность изменять строки данных с помощью формул и пакетной замены;
• на новой панели инструментов Active Bar упорядочены элементы управления размещением объектов в редакторе платы, редакторе схемы, инструменте Draftsman и документах библиотек.
Обновления затронули механизм задания дифференциальных пар, классы которых теперь можно задавать на уровне схемы через добавление типа классов Diff.PairNetClass к директиве дифференциальной пары.
Полностью переработана архитектура приложения. Был произведен процесс перехода от 32-битной к 64-битной архитектуре с усовершенствованным кодом, переписанным на языке C#. Благодаря этому удалось существенно оптимизировать использование памяти и более эффективно задействовать многопоточное исполнение процессов вычисления. Это новшество позволяет 18-й версии Altium Designer задействовать больший объем оперативной памяти компьютера для быстрой и эффективной обработки сверхплотных печатных плат, а также иерархических проектов. Повышение скорости работы положительно сказалось на времени загрузки и открытия проектов по сравнению с Altium Designer 17 (AD17) (рис. 2). Оптимизированы процессы внесения изменений в проект и перемещения элементов на плате. Увеличена скорость интерактивной трассировки. Использование оптимизированных алгоритмов многопоточности позволило сократить время, затрачиваемое на компиляцию проектов, перезаливку полигонов, проверку выполнения правил конструирования (DRC) (рис. 3), создание выходной документации (файлов BOM, Gerber, чертежей печатных плат).
МНОГОМОДУЛЬНЫЕ ПРОЕКТЫ
Отдельно стоит рассмотреть совершенно новый инструмент, появившийся в 18-й версии Altium Designer, открывающий возможность проектирования многомодульных электронных изделий. Разработка даже одной печатной платы – достаточно трудоемкий процесс, но современные электронные устройства в подавляющем большинстве случаев состоят из нескольких плат. Создание таких многоплатных устройств в разы увеличивает время проектирования электронного изделия, ведь при этом необходимо учитывать множество аспектов от выбора вариантов выполнения соединений между платами (например, соединения с помощью разъемов, жгутов или шлейфов) до взаимного расположения печатных плат в составе корпуса. Для проектировщиков таких изделий важно иметь под рукой инструмент, который позволит комплексно решить данные задачи. Таким инструментом в Altium Designer 18 стал новый тип проектов под названием Multi-board Design. Работа с несколькими платами в одной среде позволяет разработчикам управлять соединениями, синхронизировать изменения межмодульных контактов, а также выполнять трехмерное моделирование конструкций. Все платы, входящие в состав устройства, имеют четкую иерархическую структуру. Самый верхний уровень представлен структурной схемой устройства, в которой отображены все модули и соединения между ними. Уровнем ниже расположены знакомые пользователям по предыдущим версиям проекты печатных плат, каждый из которых содержит необходимый набор данных, а именно электрическую принципиальную схему и связанную с ней топологию печатной платы.
Рассмотрим применение функционала Multi-board Design для реального проекта. Возьмем блок питания, состоящий из двух связанных между собой печатных плат (рис. 4). Первая плата является понижающим DC-DC преобразователем напряжения, вторая плата представляет собой модуль с мультифункциональным монохромным LCD-дисплеем.
Обе платы являются отдельными самостоятельными проектами Altium Designer. На обе платы созданы электрические принципиальные схемы. По этим схемам проведено топологическое проектирование печатных плат. В то же время эти два проекта являются дочерними проектами электронного устройства. Для создания его структурной схемы необходимо создать многоплатный проект Multi-board Design Project и внести в его состав существующие проекты печатных плат. В каждой из этих печатных плат должен содержаться хотя бы один разъем для их соединения между собой. Для того чтобы система понимала, что разъем отвечает за межплатное соединение, в его свойствах необходимо создать системный параметр и присвоить ему значение Connector, и тогда система будет использовать контакты данного разъема для межплатного соединения. После того как на печатных платах заданы разъемы для соединений внутри устройства, на его структурную схему необходимо добавить условное графическое обозначение (далее УГО) каждого модуля. Для этого необходимо воспользоваться командой Insert Module, обозначить графические границы модуля и в его свойствах указать, какой дочерний проект печатной платы данный модуль описывает. Затем необходимо передать в проект устройства информацию о разъемах, используемых на печатных платах дочерних проектов. Эту информацию можно считать автоматически, используя инструмент Multi-board, а именно команду Import From Child Projects. На каждом модуле автоматически появятся разъемы, которые будут использоваться для межплатного соединения. Для корректного отображения на структурной схеме устройства для каждого разъема модуля необходимо дополнительно указать его тип – штырь (male) или гнездо (female). После того как все используемые печатные платы прибора отображены в виде УГО, и на каждом УГО показаны разъемы и указаны их типы, необходимо создать межплатные соединения (рис. 5).
В инструменте Multi-board Design также имеется возможность отслеживания изменений в разъемах дочерних проектов, что в свою очередь позволяет принимать решения и оперативно вносить изменения, работая со структурной схемой устройства. Благодаря инструменту Connection Manager можно просмотреть всю информацию о существующих межплатных соединениях проекта в табличной форме и отследить конфликтные связи (рис. 5 в). Если в межплатные соединения внести изменения на уровне структурной схемы устройства (например, поменять местами контакты в разъеме), то впоследствии эти изменения можно транслировать в дочерние проекты. Тем самым реализуется двусторонний обмен данными между структурной схемой устройства и дочерними проектами, входящими в его состав. Более того, инструмент Connection Manager позволяет вывести информацию о межмодульных соединениях в формате Microsoft Excel. Данные этой таблицы могут быть использованы при проектировании электрических жгутов устройства в соответствующих специализированных САПР, например в модуле SWR-Электрика.
Когда создана структурная схема устройства можно приступить к этапу компоновки печатных плат внутри прибора. Для этого необходимо в дерево проекта Altium Designer добавить новый файл Multi-board Assembly, в который необходимо загрузить 3D-модели печатных плат, входящих в состав устройства. Каждая такая модель содержит 3D-модели электронных компонентов при условии, что для каждого компонента на плате в топологическое посадочное место на уровне библиотеки включена его объемная геометрия. Дополнительно в файл сборки электронного модуля можно добавить отдельные сборки других модулей в родном формате Altium Designer. Кроме того, есть возможность добавлять модели частей корпуса прибора и других его элементов в нейтральном формате STEP, созданные в механических САПР, например SolidWorks (рис. 6).
В модуле Multi-board Assembly имеются инструменты, которые позволяют выполнить позиционирование объектов друг относительно друга. Первый инструмент под названием Object Gizmo позволяет изменять ориентацию объекта сборки в рабочем пространстве. При выборе объекта в сборке он выделяется цветом (по умолчанию – зеленым), а также отображаются цветные оси и дуги для ориентирования объекта. Выбрав определенную ось, можно сместить объект вдоль нее. Изменение координат объекта по оси возможно как в положительном направлении, так и в отрицательном. Для вращения объекта вокруг его осей используются дуги. Если оси объекта приблизить к осям рабочего пространства, то они станут коллинеарными и сонаправлеными. Вторым инструментом является возможность выравнивания объектов между собой. На момент написания статьи имеется только два варианта выравнивания: совмещение плоскостей и совмещение осей. Инструмент совмещения плоскостей позволяет сориентировать второй объект в плоскости первого, а совмещения осей позволяет осуществить ориентацию оси второго объекта относительно оси первого (доступные оси: ось контактной площадки, ось отверстия, ребро или ось STEP-модели). Приведенных средств позиционирования объектов друг относительно друга достаточно для большинства проектов, но в будущем набор вариантов позиционирования объектов в сборке будет расширяться.
После завершения компоновки печатных плат внутри корпуса устройства необходимо выполнить проверку на коллизии. Это можно сделать визуально, используя инструмент разреза сборки. С его помощью можно отобразить детали, скрытые другими элементами сборки, указав плоскости разреза. Редактор сборки Multi-board Assembly позволяет задать одну, две или три плоскости разреза вдоль каждой из осей координат. Каждая плоскость разреза отображается своим цветом, а ее положение можно изменить, нажав и переместив соответствующее ей изображение стрелки (рис. 7).
Но более правильным подходом является автоматическое выявление коллизий. Для этого в редакторе сборки Multi-board Assembly имеется инструмент Check Collisions. При использовании данной функции проверка на коллизии выполняется как между установленными на печатной плате компонентами, так и между печатными платами и другими частями электронного изделия. Все найденные пересечения выделяются цветом на изображении сборки. Кроме того, в панели сообщений Messages для каждого конфликта будет приведено текстовое описание.
Пересечения, найденные между компонентами на плате либо между компонентами разных плат, можно устранить непосредственно в редакторе сборки, при этом нет необходимости переходить в редактор топологии печатной платы. Для этого следует выделить модуль, на котором требуется переместить компоненты, и активировать команду Edit Selected Part. После этого появится возможность перемещать компоненты на выбранном модуле в плоскости XY. Когда позиционирование компонентов будет выполнено и все коллизии будут устранены, необходимо завершить редактирование компоновки печатной платы командой Cancel Part Editing. Изменение положения электронных компонентов будет не только отображено в составе сборки прибора, но и передано в дочерний проект печатной платы.
Кроме коллизий между компонентами, иногда возникают пересечения электронных компонентов либо основания печатной платы с частями корпуса и другими механическими элементами прибора, возможность редактирования которых в САПР Altium Designer на данный момент отсутствует. Такие коллизии устраняются либо использованием другой компонентной базы, либо изменением габаритов основания печатной платы, либо редактированием частей корпуса прибора в специализированных механических САПР, например SolidWorks.
ЗАКЛЮЧЕНИЕ
Altium Designer 18 представляет собой комплексную систему проектирования печатных плат. В новой версии произошли кардинальные изменения в архитектуре самого ядра. Поддержка 64-разрядной архитектуры и многопоточных вычислений позволила увеличить быстродействие при работе с большими и сложными проектами печатных плат. Изменения в интерфейсе положительно сказались на удобстве работы с программой. Необходимые инструменты упорядочены логически по разделам меню Active Bar, что позволило получить более быстрый доступ к наиболее часто используемым функциям. Новая панель Properties объединила в себе диалоговые окна свойств различных объектов и панели Inspector, что, в свою очередь, упростило доступ к атрибутам и параметрам любых объектов проекта. Благодаря новому модулю по работе с многоплатными проектами Multi-board Design появилась возможность создания формализованных структурных схем прибора. Данный модуль позволяет управлять электрическими соединениями, обеспечивая возможность задания связей между дочерними печатными платами и, в случае необходимости, их изменения как на уровне структурной схемы устройства, так и на уровне проекта дочерней печатной платы. Применение улучшенного 3D-ядра не только ускорило переключение из 2D- в 3D-представление печатной платы, но и предоставило возможность визуализации конструкции электронного прибора в процессе его компоновки с функцией автоматической проверки на коллизии.
Группа компаний SWR (ранее SolidWorks Russia) продолжает работу по обеспечению взаимодействия механических и электронных САПР (MCAD-ECAD). Технология сквозной интеграции программного комплекса SolidWorks и Altium Designer обеспечивает разработку изделия конструкторами-механиками, схемотехниками и топологами в едином информационном пространстве предприятия, в котором электронные компоненты и проекты Altium Designer хранятся и управляются в SolidWorks Enterprise PDM с учетом версионности, разграничения пользовательских прав и доступа к единым библиотекам проектирования. ●
С появлением 18-й версии в Altium Designer кардинально изменился интерфейс, цветовая схема перешла из «светлой» в «темную». В первых минорных версиях не было возможности поставить «светлую» схему, но с появлением последней версии привыкшим работать со «светлым» интерфейсом пользователям эту возможность вернули (рис. 1).
Изменения пользовательского интерфейса Altium Designer 18 коснулись не только цветовой схемы. Появились новые панели, переконфигурированы уже существующие, от некоторых редко используемых панелей отказались вовсе. Например:
• новая панель Properties (Свойства) устраняет потребность в диалоговых окнах для объектов, что значительно ускоряет и упрощает их размещение и редактирование. В этой панели собираются все родительские и дочерние свойства, что делает ее оптимальной точкой доступа к этим свойствам. Также в панель добавлена возможность изменять строки данных с помощью формул и пакетной замены;
• на новой панели инструментов Active Bar упорядочены элементы управления размещением объектов в редакторе платы, редакторе схемы, инструменте Draftsman и документах библиотек.
Обновления затронули механизм задания дифференциальных пар, классы которых теперь можно задавать на уровне схемы через добавление типа классов Diff.PairNetClass к директиве дифференциальной пары.
Полностью переработана архитектура приложения. Был произведен процесс перехода от 32-битной к 64-битной архитектуре с усовершенствованным кодом, переписанным на языке C#. Благодаря этому удалось существенно оптимизировать использование памяти и более эффективно задействовать многопоточное исполнение процессов вычисления. Это новшество позволяет 18-й версии Altium Designer задействовать больший объем оперативной памяти компьютера для быстрой и эффективной обработки сверхплотных печатных плат, а также иерархических проектов. Повышение скорости работы положительно сказалось на времени загрузки и открытия проектов по сравнению с Altium Designer 17 (AD17) (рис. 2). Оптимизированы процессы внесения изменений в проект и перемещения элементов на плате. Увеличена скорость интерактивной трассировки. Использование оптимизированных алгоритмов многопоточности позволило сократить время, затрачиваемое на компиляцию проектов, перезаливку полигонов, проверку выполнения правил конструирования (DRC) (рис. 3), создание выходной документации (файлов BOM, Gerber, чертежей печатных плат).
МНОГОМОДУЛЬНЫЕ ПРОЕКТЫ
Отдельно стоит рассмотреть совершенно новый инструмент, появившийся в 18-й версии Altium Designer, открывающий возможность проектирования многомодульных электронных изделий. Разработка даже одной печатной платы – достаточно трудоемкий процесс, но современные электронные устройства в подавляющем большинстве случаев состоят из нескольких плат. Создание таких многоплатных устройств в разы увеличивает время проектирования электронного изделия, ведь при этом необходимо учитывать множество аспектов от выбора вариантов выполнения соединений между платами (например, соединения с помощью разъемов, жгутов или шлейфов) до взаимного расположения печатных плат в составе корпуса. Для проектировщиков таких изделий важно иметь под рукой инструмент, который позволит комплексно решить данные задачи. Таким инструментом в Altium Designer 18 стал новый тип проектов под названием Multi-board Design. Работа с несколькими платами в одной среде позволяет разработчикам управлять соединениями, синхронизировать изменения межмодульных контактов, а также выполнять трехмерное моделирование конструкций. Все платы, входящие в состав устройства, имеют четкую иерархическую структуру. Самый верхний уровень представлен структурной схемой устройства, в которой отображены все модули и соединения между ними. Уровнем ниже расположены знакомые пользователям по предыдущим версиям проекты печатных плат, каждый из которых содержит необходимый набор данных, а именно электрическую принципиальную схему и связанную с ней топологию печатной платы.
Рассмотрим применение функционала Multi-board Design для реального проекта. Возьмем блок питания, состоящий из двух связанных между собой печатных плат (рис. 4). Первая плата является понижающим DC-DC преобразователем напряжения, вторая плата представляет собой модуль с мультифункциональным монохромным LCD-дисплеем.
Обе платы являются отдельными самостоятельными проектами Altium Designer. На обе платы созданы электрические принципиальные схемы. По этим схемам проведено топологическое проектирование печатных плат. В то же время эти два проекта являются дочерними проектами электронного устройства. Для создания его структурной схемы необходимо создать многоплатный проект Multi-board Design Project и внести в его состав существующие проекты печатных плат. В каждой из этих печатных плат должен содержаться хотя бы один разъем для их соединения между собой. Для того чтобы система понимала, что разъем отвечает за межплатное соединение, в его свойствах необходимо создать системный параметр и присвоить ему значение Connector, и тогда система будет использовать контакты данного разъема для межплатного соединения. После того как на печатных платах заданы разъемы для соединений внутри устройства, на его структурную схему необходимо добавить условное графическое обозначение (далее УГО) каждого модуля. Для этого необходимо воспользоваться командой Insert Module, обозначить графические границы модуля и в его свойствах указать, какой дочерний проект печатной платы данный модуль описывает. Затем необходимо передать в проект устройства информацию о разъемах, используемых на печатных платах дочерних проектов. Эту информацию можно считать автоматически, используя инструмент Multi-board, а именно команду Import From Child Projects. На каждом модуле автоматически появятся разъемы, которые будут использоваться для межплатного соединения. Для корректного отображения на структурной схеме устройства для каждого разъема модуля необходимо дополнительно указать его тип – штырь (male) или гнездо (female). После того как все используемые печатные платы прибора отображены в виде УГО, и на каждом УГО показаны разъемы и указаны их типы, необходимо создать межплатные соединения (рис. 5).
В инструменте Multi-board Design также имеется возможность отслеживания изменений в разъемах дочерних проектов, что в свою очередь позволяет принимать решения и оперативно вносить изменения, работая со структурной схемой устройства. Благодаря инструменту Connection Manager можно просмотреть всю информацию о существующих межплатных соединениях проекта в табличной форме и отследить конфликтные связи (рис. 5 в). Если в межплатные соединения внести изменения на уровне структурной схемы устройства (например, поменять местами контакты в разъеме), то впоследствии эти изменения можно транслировать в дочерние проекты. Тем самым реализуется двусторонний обмен данными между структурной схемой устройства и дочерними проектами, входящими в его состав. Более того, инструмент Connection Manager позволяет вывести информацию о межмодульных соединениях в формате Microsoft Excel. Данные этой таблицы могут быть использованы при проектировании электрических жгутов устройства в соответствующих специализированных САПР, например в модуле SWR-Электрика.
Когда создана структурная схема устройства можно приступить к этапу компоновки печатных плат внутри прибора. Для этого необходимо в дерево проекта Altium Designer добавить новый файл Multi-board Assembly, в который необходимо загрузить 3D-модели печатных плат, входящих в состав устройства. Каждая такая модель содержит 3D-модели электронных компонентов при условии, что для каждого компонента на плате в топологическое посадочное место на уровне библиотеки включена его объемная геометрия. Дополнительно в файл сборки электронного модуля можно добавить отдельные сборки других модулей в родном формате Altium Designer. Кроме того, есть возможность добавлять модели частей корпуса прибора и других его элементов в нейтральном формате STEP, созданные в механических САПР, например SolidWorks (рис. 6).
В модуле Multi-board Assembly имеются инструменты, которые позволяют выполнить позиционирование объектов друг относительно друга. Первый инструмент под названием Object Gizmo позволяет изменять ориентацию объекта сборки в рабочем пространстве. При выборе объекта в сборке он выделяется цветом (по умолчанию – зеленым), а также отображаются цветные оси и дуги для ориентирования объекта. Выбрав определенную ось, можно сместить объект вдоль нее. Изменение координат объекта по оси возможно как в положительном направлении, так и в отрицательном. Для вращения объекта вокруг его осей используются дуги. Если оси объекта приблизить к осям рабочего пространства, то они станут коллинеарными и сонаправлеными. Вторым инструментом является возможность выравнивания объектов между собой. На момент написания статьи имеется только два варианта выравнивания: совмещение плоскостей и совмещение осей. Инструмент совмещения плоскостей позволяет сориентировать второй объект в плоскости первого, а совмещения осей позволяет осуществить ориентацию оси второго объекта относительно оси первого (доступные оси: ось контактной площадки, ось отверстия, ребро или ось STEP-модели). Приведенных средств позиционирования объектов друг относительно друга достаточно для большинства проектов, но в будущем набор вариантов позиционирования объектов в сборке будет расширяться.
После завершения компоновки печатных плат внутри корпуса устройства необходимо выполнить проверку на коллизии. Это можно сделать визуально, используя инструмент разреза сборки. С его помощью можно отобразить детали, скрытые другими элементами сборки, указав плоскости разреза. Редактор сборки Multi-board Assembly позволяет задать одну, две или три плоскости разреза вдоль каждой из осей координат. Каждая плоскость разреза отображается своим цветом, а ее положение можно изменить, нажав и переместив соответствующее ей изображение стрелки (рис. 7).
Но более правильным подходом является автоматическое выявление коллизий. Для этого в редакторе сборки Multi-board Assembly имеется инструмент Check Collisions. При использовании данной функции проверка на коллизии выполняется как между установленными на печатной плате компонентами, так и между печатными платами и другими частями электронного изделия. Все найденные пересечения выделяются цветом на изображении сборки. Кроме того, в панели сообщений Messages для каждого конфликта будет приведено текстовое описание.
Пересечения, найденные между компонентами на плате либо между компонентами разных плат, можно устранить непосредственно в редакторе сборки, при этом нет необходимости переходить в редактор топологии печатной платы. Для этого следует выделить модуль, на котором требуется переместить компоненты, и активировать команду Edit Selected Part. После этого появится возможность перемещать компоненты на выбранном модуле в плоскости XY. Когда позиционирование компонентов будет выполнено и все коллизии будут устранены, необходимо завершить редактирование компоновки печатной платы командой Cancel Part Editing. Изменение положения электронных компонентов будет не только отображено в составе сборки прибора, но и передано в дочерний проект печатной платы.
Кроме коллизий между компонентами, иногда возникают пересечения электронных компонентов либо основания печатной платы с частями корпуса и другими механическими элементами прибора, возможность редактирования которых в САПР Altium Designer на данный момент отсутствует. Такие коллизии устраняются либо использованием другой компонентной базы, либо изменением габаритов основания печатной платы, либо редактированием частей корпуса прибора в специализированных механических САПР, например SolidWorks.
ЗАКЛЮЧЕНИЕ
Altium Designer 18 представляет собой комплексную систему проектирования печатных плат. В новой версии произошли кардинальные изменения в архитектуре самого ядра. Поддержка 64-разрядной архитектуры и многопоточных вычислений позволила увеличить быстродействие при работе с большими и сложными проектами печатных плат. Изменения в интерфейсе положительно сказались на удобстве работы с программой. Необходимые инструменты упорядочены логически по разделам меню Active Bar, что позволило получить более быстрый доступ к наиболее часто используемым функциям. Новая панель Properties объединила в себе диалоговые окна свойств различных объектов и панели Inspector, что, в свою очередь, упростило доступ к атрибутам и параметрам любых объектов проекта. Благодаря новому модулю по работе с многоплатными проектами Multi-board Design появилась возможность создания формализованных структурных схем прибора. Данный модуль позволяет управлять электрическими соединениями, обеспечивая возможность задания связей между дочерними печатными платами и, в случае необходимости, их изменения как на уровне структурной схемы устройства, так и на уровне проекта дочерней печатной платы. Применение улучшенного 3D-ядра не только ускорило переключение из 2D- в 3D-представление печатной платы, но и предоставило возможность визуализации конструкции электронного прибора в процессе его компоновки с функцией автоматической проверки на коллизии.
Группа компаний SWR (ранее SolidWorks Russia) продолжает работу по обеспечению взаимодействия механических и электронных САПР (MCAD-ECAD). Технология сквозной интеграции программного комплекса SolidWorks и Altium Designer обеспечивает разработку изделия конструкторами-механиками, схемотехниками и топологами в едином информационном пространстве предприятия, в котором электронные компоненты и проекты Altium Designer хранятся и управляются в SolidWorks Enterprise PDM с учетом версионности, разграничения пользовательских прав и доступа к единым библиотекам проектирования. ●
Отзывы читателей