Реструктуризация дизайна с помощью рефакторинга
Краткий обзор
- Узнайте, какие команды рефакторинга подходят для конкретных задач реорганизации, включая преобразование компонента в лист или набор портов, листа схемы — в лист устройства, а листа устройства — в лист схемы.
- Посмотрите, как Altium Designer помогает сохранять электрические связи, свойства символов и привязки подсхем при реорганизации иерархии схемы.
- Узнайте, как эти функции помогают повторно использовать схемные решения, создавать их локальные версии и более наглядно организовывать листы по мере развития проекта.
Рефакторинг в традиционном смысле — это изменение структуры существующей разработки (или программного кода) без изменения ее функциональности. При проектировании печатных плат возникают различные ситуации, в которых тот или иной вид рефакторинга позволяет своевременно и эффективно решить задачу:
-
Компонент устарел, и его необходимо заменить функционально эквивалентной подсхемой. (Показать)
-
Электрическую схему необходимо преобразовать в подсхему для использования в составе более крупной разработки. (Показать)
-
Существующий подчиненный лист схемы необходимо преобразовать в лист устройства для повторного использования в будущих разработках. (Показать)
-
Существующий лист устройства необходимо сделать локальным и адаптировать к текущей разработке. (Показать)
-
Часть существующей схемы необходимо перенести на другой лист. (Показать)
Altium Designer предоставляет ряд функций, которые в совокупности образуют набор средств рефакторинга и обеспечивают максимальную гибкость при изменении структуры разработок в соответствии с требованиями.
Преобразование компонента в символ листа
Эта функция преобразует компонент в текущем документе в символ листа. Она идеально подходит для случаев, когда существующий компонент устарел и его необходимо заменить функционально эквивалентной подсхемой, расположенной на отдельном листе.
Щелкните компонент правой кнопкой мыши и выберите команду Part Actions » Convert Part To Sheet Symbol в контекстном меню, чтобы преобразовать символ компонента в символ листа. При этом электрические связи сохраняются: входы листа получают имена исходных выводов, а для I/O Type задается значение, соответствующее электрическому типу исходного вывода.
Для свойства Designator символа листа изначально задается позиционное обозначение исходного компонента, а для свойства File Name is — текст комментария компонента.
Преобразуйте существующий компонент в символ листа.
Если нужный дочерний лист уже существует, измените свойство File Name символа листа так, чтобы оно указывало на этот лист. В противном случае можно быстро создать подчиненный лист, щелкнув символ листа правой кнопкой мыши и выбрав команду Sheet Symbol Actions » Create Sheet From Sheet Symbol. В последнем случае на новом подчиненном листе будут размещены порты, соответствующие входам символа листа, после чего можно создать и подключить заменяющую подсхему.
Перенос компонента на новый подчиненный лист
Другой, возможно более быстрый способ получить аналогичный результат — щелкнуть нужный компонент правой кнопкой мыши и выбрать команду Part Actions » Push Part To Sheet. Эта команда переносит компонент из текущего документа на новый подчиненный лист, заменяя исходный компонент символом листа, который ссылается на этот лист. При этом фактически выполняется следующая последовательность действий:
-
Компонент копируется.
-
Исходный компонент преобразуется в символ листа, для свойства Designator задается позиционное обозначение исходного компонента, а для свойства File Name — значение <OriginalPartComment>.SchDoc. Как и в предыдущем случае, электрические связи сохраняются: входы листа получают имена исходных выводов, а для I/O Type задается значение, соответствующее электрическому типу исходного вывода.
-
На основе символа листа создается новый лист схемы, которому присваивается имя из значения свойства File Name символа.
-
Копия исходного компонента вставляется в центр листа; порты, соответствующие входам символа листа, размещаются и соединяются с выводами компонента.
Затем при необходимости можно удалить компонент и заменить его функционально эквивалентной схемой.
С помощью команды Push Part To Sheet исходный компонент быстро преобразуется в символ листа, а его копия вставляется на вновь созданный лист,
на который ссылается этот символ.
Преобразование компонента в порты
Эта функция преобразует компонент в текущем документе в набор портов. Она идеально подходит для существующей самостоятельной разработки, например источника питания или вспомогательной платы, которую необходимо превратить в подсхему для использования в составе более крупной одноплатной разработки — например, чтобы снизить затраты на производство. Это действие обратно описанному в предыдущем разделе, где компонент заменялся подсхемой нижнего уровня. Здесь же подсхема включается в разработку верхнего уровня, что позволяет подключать ее на более высоком уровне иерархии.
Щелкните компонент правой кнопкой мыши и выберите команду Part Actions » Convert Part To Ports в контекстном меню, чтобы преобразовать символ компонента в набор портов. При этом электрические связи сохраняются: порты получают имена исходных выводов, а для I/O Type задается значение, соответствующее электрическому типу исходного вывода.
Используйте команду Convert Part To Ports, чтобы быстро заменить компонент портами, через которые подсхема подключается к разработке верхнего уровня.
Чтобы завершить включение подсхемы в иерархию, добавьте символ листа на соответствующий родительский лист верхнего уровня. Для этого:
-
Сделайте нужный родительский лист активным.
-
Выполните команду Design » Create Sheet Symbol From Sheet.
-
Выберите документ, содержащий порты, созданные из компонента, в диалоговом окне Choose Document to Place.
-
На курсоре появится символ листа; переместите его в нужное место на листе и щелкните для размещения.
Символ листа ссылается на подчиненный лист через свойство File Name и содержит входы листа, соответствующие портам на дочернем листе.

Используйте команду Create Sheet Symbol From Sheet, чтобы быстро добавить символ листа и тем самым включить подсхему в иерархию разработки.
Преобразование листа схемы в лист устройства
На определенном этапе подход к проектированию с расчетом на повторное использование должен перейти на более высокий уровень абстракции. Если ограничиться уровнем компонентов, то в каждой разработке с похожими функциональными узлами, например USB-интерфейсом или стабилизатором напряжения, придется, по сути, «изобретать велосипед». Именно здесь на помощь приходят листы устройств — листы схем, реализующие определенные схемотехнические функции. Их использование устраняет риски, связанные с традиционным копированием и вставкой. Они избавляют от повторного выполнения одной и той же проектной работы и расширяют набор проектных решений, которые можно повторно использовать в будущих разработках.
В рамках набора средств рефакторинга редактор схем позволяет быстро преобразовать существующий обычный лист схемы в лист устройства для повторного использования в других разработках.
Чтобы преобразовать существующий лист схемы в лист устройства:
-
На соответствующем родительском листе в иерархии разработки найдите символ листа, ссылающийся на нужный лист.
-
Выберите символ листа и выполните команду Edit » Refactor » Convert Selected Schematic Sheet To Device Sheet в главном меню. Откроется диалоговое окно Convert Schematic Sheet to Device Sheet. Выберите папку для сохранения создаваемого листа устройства и область действия преобразования: обновить только текущий символ листа или все соответствующие символы листов в рабочей области либо активном проекте. Последний вариант особенно полезен для многоканальных проектов, в которых одна подсхема используется в нескольких экземплярах.
Задайте параметры преобразования в диалоговом окне Convert Schematic Sheet to Device Sheet.
-
Нажмите OK. Символ листа будет преобразован в символ листа устройства, а схема будет перемещена в указанную папку листов устройств.
Символ листа устройства унаследует свойства исходного символа листа.
Преобразование листа устройства в лист схемы
Листы устройств позволяют оформлять функциональные подсхемы для повторного использования в разных проектах. Однако иногда существующую подсхему необходимо изменить для конкретного проекта. Вместо изменения самого листа устройства редактор схем позволяет создать его копию, разместив содержащуюся в нем схему на обычном листе схемы. Так вы сможете изменить локальную копию в соответствии с требованиями текущего проекта, не затрагивая исходный лист устройства.
Чтобы «преобразовать» существующий лист устройства в лист схемы:
-
Найдите символ листа устройства, ссылающийся на нужный лист устройства.
-
Выберите символ листа устройства и выполните команду Edit » Refactor » Convert Device Sheet To Schematic Sheet в главном меню. Откроется диалоговое окно Convert Device Sheet to Schematic Sheet . Выберите папку для сохранения создаваемого листа схемы и область действия преобразования: обновить только текущий символ листа устройства или все соответствующие символы листов устройств в активном проекте.
Задайте параметры преобразования в диалоговом окне Convert Device Sheet to Schematic Sheet.
-
Нажмите OK. Символ листа устройства будет преобразован в символ листа, а копия листа устройства будет сохранена локально в указанной папке как обычный (незащищенный) лист. Символ листа будет ссылаться на этот локальный лист.
После преобразования локальный лист схемы заменит прежний лист устройства на панели Projects .
Символ листа унаследует свойства исходного символа листа устройства.
Перемещение выбранной части схемы на другой лист
По мере развития проекта может потребоваться перераспределить содержимое входящих в него исходных листов схемы: например, определенную часть схемы удобнее читать на отдельном листе либо лист становится перегруженным (и нечитаемым!), и часть схемы стоит перенести на дополнительный или другой лист.
Еще одна возможность рефакторинга — выбор одного или нескольких объектов на листе и их перемещение на другой лист. Для этого:
-
Сначала выделите часть схемы, которую требуется переместить.
-
Щелкните правой кнопкой мыши и выберите команду Edit » Refactor » Move Selected Subcircuit to Different Sheet в контекстном меню. Откроется диалоговое окно Choose Destination Document, в котором можно указать целевой лист схемы.
Перемещение части проекта на другой лист схемы.
-
Нажмите OK. Выбранный лист станет активным, а выделенная подсхема будет привязана к курсору.
-
Расположите схему в нужном месте листа и щелкните для размещения. После размещения эта часть схемы будет удалена с исходного листа.
-
Если перемещаемая часть схемы содержит один или несколько существующих символов листов, дочерние листы схемы, на которые ссылаются эти символы, будут перемещены в иерархии проекта под лист, на который перенесены символы. Эта иерархия отображается на панели Projects. При перемещении на новый лист добавьте символ листа на соответствующий родительский лист, чтобы правильно включить новый лист в иерархию проекта.
