Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Копирование разводки
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Altium Designer, DXP, Protel
Gennaj
Здравствуйте.
Допустим, есть некая схема, состоящая из множества почти одинаковых ячеек. То есть, параметры элементов у всех ячеек разные, но расположение на ПП соответствующих компонентов многократно повторяется. Есть ли в Альтиуме какая-нибудь функция, которая способна автоматизировать разводку таких ячеек? То есть, вроде как создать некий шаблон разводки, и автоматически подставлять в него соответствующие компоненты и имена цепей?
Владимир
Цитата(Gennaj @ Jun 5 2007, 11:45) *
Здравствуйте.
Допустим, есть некая схема, состоящая из множества почти одинаковых ячеек. То есть, параметры элементов у всех ячеек разные, но расположение на ПП соответствующих компонентов многократно повторяется. Есть ли в Альтиуме какая-нибудь функция, которая способна автоматизировать разводку таких ячеек? То есть, вроде как создать некий шаблон разводки, и автоматически подставлять в него соответствующие компоненты и имена цепей?

Если элементы уже раставлены
Выделяешь разводку копируешь с точкой привизки и все. Имена цепей разводки сами изменятся как нужно . Не забыть и VIA при копировании отметить
Gennaj
Цитата(Владимир @ Jun 5 2007, 13:36) *

Выделяешь разводку копируешь с точкой привизки и все. Имена цепей разводки сами изменятся как нужно . Не забыть и VIA при копировании отметить

Чуть по-подробнее, пожалуйста. А именно: "Если элементы уже раставлены" - это про элементы первой ("образцовой ячейки") ? Или про элементы других ячеек, которые я еще только собираюсь разводить?
Ведь если просто скопировать разводку, все цепи станут "NoNet"?
Владимир
Цитата(Gennaj @ Jun 5 2007, 14:07) *
Выделяешь разводку копируешь с точкой привизки и все. Имена цепей разводки сами изменятся как нужно . Не забыть и VIA при копировании отметить

Чуть по-подробнее, пожалуйста. А именно: "Если элементы уже раставлены" - это про элементы первой ("образцовой ячейки") ? Или про элементы других ячеек, которые я еще только собираюсь разводить?
Ведь если просто скопировать разводку, все цепи станут "NoNet"?

Сначала.
Если уВас блоки полностью одинакова сточки зрения PCB н разные с сточки зрения номиналов то это оформляется по другому и делается через Paste Format

Так как у вас они "почти" одинаковы, то уж раставлть элементы нужно самому. Причем одиноково для всех бдлоков
2Потом разводите общую часть у одного из блоков
3. выделяете дорожки и Via одинаковой частьи, делаете Copy с точкой привязки на на характерном Pad одного из элементов3. потом вставляете скопированное на другой блок с точкой привязки на соответствующем Pad/
4/ Если компоненты действительно были расставлены как и в первом блоке, все уже готово.
Gennaj
Понял. Скопированные на новое место цепи приобретают соответствующие имена от расставленных на новом месте компонентов. По аналогии с Via, если его поставить прямо на контактную площадку.

А про Paste Format можно чуть поподробнее?
Интересует как раз тот случай, когда структура ячеек одинаковая, но разные номиналы компонентов (наверное, я не вполне четко сформулировал первый вопрос).
Владимир
http://electronix.ru/forum/index.php?showt...st&p=257042
Там есть и про ЕТО. и ссылки на родные PDF
(Вложение в моем сообщенни)
Gennaj
Изучил. Попробовал. В принципе, работает.
К сожалению, вариант, описанный в статье нам не подходит, так как у нас компоненты имеют большое количество присоединенных полей свойств (для резистора, например: BCPId, Rem, Manufacturer, ManufacturerPartNumber, Value, Power/Voltage, Tolerance, Корпус) и передавать каждое из этих свойств с помощью параметров иерархического блока очень проблематично...
Более-менее приемлем вариант с блокировкой компонентов исходного размещения, размещения поверх них других компонентов, относ их в сторону и копирование дорожек с переходными отверстиями, но это тоже не идеал, так как хотелось бы именно автоматической расстановки компонентов, а не только копирования дорожек...
Я попробовал сгенерировать румы со схемы без иерархии, присвоив элементам групп некие классы. При этом на печатной плате тоже получается набор ячеек, но Альтиум теряет взаимосвязь между идентичными элементами разных румов (то есть отказывается автоматически размещать компоненты, так как не знает, что резистор R1 из ROOM1 соответствует резистору R19 из ROOM2).
Соответственно, созрел вопрос: можно ли каким-то способом прописать такое соответствие идентичных элементов разных групп? То есть, каким-то образом указать Альтиуму, что размещать транзистор VT25 следует так же, как и транзистор VT15 и т.д?
Владимир
Цитата(Gennaj @ Jun 5 2007, 17:19) *
Изучил. Попробовал. В принципе, работает.
К сожалению, вариант, описанный в статье нам не подходит, так как у нас компоненты имеют большое количество присоединенных полей свойств (для резистора, например: BCPId, Rem, Manufacturer, ManufacturerPartNumber, Value, Power/Voltage, Tolerance, Корпус) и передавать каждое из этих свойств с помощью параметров иерархического блока очень проблематично...
Более-менее приемлем вариант с блокировкой компонентов исходного размещения, размещения поверх них других компонентов, относ их в сторону и копирование дорожек с переходными отверстиями, но это тоже не идеал, так как хотелось бы именно автоматической расстановки компонентов, а не только копирования дорожек...
Я попробовал сгенерировать румы со схемы без иерархии, присвоив элементам групп некие классы. При этом на печатной плате тоже получается набор ячеек, но Альтиум теряет взаимосвязь между идентичными элементами разных румов (то есть отказывается автоматически размещать компоненты, так как не знает, что резистор R1 из ROOM1 соответствует резистору R19 из ROOM2).
Соответственно, созрел вопрос: можно ли каким-то способом прописать такое соответствие идентичных элементов разных групп? То есть, каким-то образом указать Альтиуму, что размещать транзистор VT25 следует так же, как и транзистор VT15 и т.д?

Это тоже просто.
Передается только один Link
А далее вес берется из базы данных.
В последнем номере кратко об этом сказано.
Может рожу и напишу подробней.
Вообше нет необходимости хранить это множество параметров, все равно в PCB они не передаются.
Достаточно толко те, что отображаются на самой схеме + LINK
Остальное напиримеер в обыкновенном EXELL файле.
Кстати править, вносить изменение и все прочее значительно проще удобней оперативней и тюпю
Zeroom
Почитайте AR0112 в помощи, возможно это то, что Вам нужно. Сам я с такими проектами почти не работал, но по крайней мере желаемое соответствие компонентов в разных Room и их автоматическая идентичная расстановка будут присутствовать точно.
Gennaj
В явном виде я там этого не нашел, но кое-что все-таки получилось yeah.gif
Рассказываю по-порядку (может, еще кому-нибудь пригодится):
1. На принципиальной схеме всем компонентам одной ячейки присваиваем одно и то же имя класса (например, "Ячейка1", "Ячейка2" и т.д.).
2. В "Project Options" на закладке "Class Generation" снимаем галку там, где указана генерация рума с листа схемы, и ставим галочки в "генерировать классы компонентов" и "генерировать румы для классов компонентов".
3. Обновляем печатную плату, при этом каждая ячейка оказывается в своем руме.
4. На печатной плате выделяем эквивалентные по размещению элементы в разных румах и присваиваем каждой такой группе эквивалентных элементов один и тот же параметр Channel Offset. Это (в смысле, выделение эквивалентных элементов) можно сделать и путем выделения элементов на принципиальной схеме с последующим выделением этих элементов на ПП (правый щелчок-Part Action-Select PCB Component).
5. Разводим первую ячейку.
6. Копируем формат румов командой Design-Rooms-Copy Room Formats.
Все smile.gif

Важное замечание: идентификация эквивалентных элементов происходит ТОЛЬКО по параметру Channel Offset. Поэтому, никто не запрещает, при необходимости, например, вместо резистора в одном из румов установить индуктивность или емкость smile.gif У нас потребовалось чередовать пару емкость-индуктивность smile.gif Даже корпуса могут быть разными! Правда, в этом случае, какая-нибудь из дорожек можт не попасть на соответствующий вывод smile.gif
Владимир
Цитата
Правда, в этом случае, какая-нибудь из дорожек можт не попасть на соответствующий вывод

И COPY format тоже криво работать будет.
Даже при идентичных элементах, но по пробуйте у одного из них в одном блоке что либо сдвинуть в корпусе или надписи (кроме designator и comment) и посмотирте что оно натворит. Команда сработает, но точка привязки измененного компонента может сдвинуться!!!
Короче еще сыровато там. Есть над чем работать
Gennaj
Цитата(Владимир @ Jun 6 2007, 14:17) *
Даже при идентичных элементах, но по пробуйте у одного из них в одном блоке что либо сдвинуть в корпусе или надписи (кроме designator и comment)

Не понял, что именно можно еще (кроме десигнатора и коммента) сдвинуть в корпусе или надписи у одного из них. По-подробнее, плиз wink.gif
Владимир
Цитата
Не понял, что именно можно еще (кроме десигнатора и коммента) сдвинуть в корпусе или надписи у одного из них. По-подробнее, плиз

1 Подпись контакта на шелкографии
2 один из PAD
3 Контур компонета
4 ...
Gennaj
Ясно.
То есть речь о внесении "местных" изменений в библиотечный компонент. Мне кажется, что при таких изменениях достаточно сложно программно предусмотреть все возможные виражи полета мыслей разработчика ПП. Тем более, что копирование формата, вроде как, предусматривалось для идентичных по разводке ячеек wink.gif
Владимир
Цитата(Gennaj @ Jun 6 2007, 14:53) *
Ясно.
То есть речь о внесении "местных" изменений в библиотечный компонент. Мне кажется, что при таких изменениях достаточно сложно программно предусмотреть все возможные виражи полета мыслей разработчика ПП. Тем более, что копирование формата, вроде как, предусматривалось для идентичных по разводке ячеек wink.gif

Да не все так просто.
первый контакт надо обозначать на шелкогравии. А место обозначение может попаст на Pad чужого элемента
Теже трасформаторы со свобобнами выводами обмоток,или динамики, у которых есть свобода установки и перемешения pAD Для подпайки- имх и маркировать нужно все и двигаь тоже можно и нужно. Да и сами элементы разные могут быть.
так что даже при ограниченном полете фантазии вариантов- до безобразия много
Vokchap
Для разводки аналогичных каналов сниппетами пользоваться не пробовали?
Gennaj
Про сниппеты, пожалуйста, по-подробнее smile.gif
Владимир
Цитата(Gennaj @ Jun 7 2007, 12:05) *
Про сниппеты, пожалуйста, по-подробнее smile.gif

Это практически тоже, что и копировать блоками.
Сделано для использования ранее сделанный и опробованных блокой для встраивания в новый схемы
Просто интерфейс проще
Гяук
Цитата(Gennaj @ Jun 6 2007, 15:01) *
1. На принципиальной схеме всем компонентам одной ячейки присваиваем одно и то же имя класса (например, "Ячейка1", "Ячейка2" и т.д.).
Вот все понятно, окромя этого места. Так и не нашел на принципиальной схеме ничего связанного с классами... Может сначала нужно где-нибудь галочку поставить?
Галку ставить не надо - надо для соответствующих компонентов создать параметр ClassName (без пробела!) и классы сгенерятся. Удобно делать это с помощью Parameter Manager'a в меню Tools.

Теперь, переходя к п. 4.
Цитата(Gennaj @ Jun 6 2007, 15:01) *
4. На печатной плате выделяем эквивалентные по размещению элементы в разных румах и присваиваем каждой такой группе эквивалентных элементов один и тот же параметр Channel Offset. Это (в смысле, выделение эквивалентных элементов) можно сделать и путем выделения элементов на принципиальной схеме с последующим выделением этих элементов на ПП (правый щелчок-Part Action-Select PCB Component).
понимаем, что ручками тырцать в PCB на каждый компонент с попыткой поправить этот Channel Offset при большом количестве элементов в канале - эанятие не для слабонервных. За сим вопрос - нельзя ли этот процесс хоть как-то ускорить - например редактировать этот список Channel Offset'ов в табличке...
Владимир
Цитата(Гяук @ May 19 2009, 08:17) *
Галку ставить не надо - надо для соответствующих компонентов создать параметр ClassName (без пробела!) и классы сгенерятся. Удобно делать это с помощью Parameter Manager'a в меню Tools.

Теперь, переходя к п. 4.понимаем, что ручками тырцать в PCB на каждый компонент с попыткой поправить этот Channel Offset при большом количестве элементов в канале - эанятие не для слабонервных. За сим вопрос - нельзя ли этот процесс хоть как-то ускорить - например редактировать этот список Channel Offset'ов в табличке...


1. Ох сгенерятся. Однако гибкости при создании правил и классов в PCBDOC значительно больше
2. Зачем ускорять. При правильной организации схемы они автоматически генерятся
Гяук
Цитата(Владимир @ May 20 2009, 21:43) *
1. Ох сгенерятся. Однако гибкости при создании правил и классов в PCBDOC значительно больше
Владимир, не держите это в себе - в чем гибкость?  biggrin.gif Хотя-бы ткните носом где глянуть.
Цитата(Владимир @ May 20 2009, 21:43) *
2. Зачем ускорять. При правильной организации схемы они автоматически генерятся
Под эвфемизмом "правильная организация схемы", я так понимаю кроется предложение использовать Multi-Sheet and Multi-Channel Design?

Что-то мне подсказывает, что приведенный выше рисунок далек от требований ЕСКД.

Кроме того не всегда имеет смысл влазить в дебри multichannel... Самый простецкий пример. Есть на плате два преобразователя напряжения - DC-DC c adjustable выходом. Один на 1,8В, другой на 3,3. Отличаются парой резисторов, смещающих sence-вход... С одной стороны - обвязки с десяток элементов, с другой стороны для каждого "канала" расставлять элементы ручками лень. 

За сим было бы здорово увидеть трансляцию параметра ChannelOffset из SchDoc в PcbDoc...  crying.gif

Цитата(Владимир)
Сделано для использования ранее сделанный и опробованных блокой для встраивания в новый схемы
Есть у меня стандартная заморочка - расстановка конденсаторов под ПЛИС, да желательно так чтобы побольше IO можно было использовать, т.е. чтобы кондесаторы не мешались. Нашел одно хорошее решение. Оно мне понравилось. Задумал его "засниппить". Вставляю в новый проект и... Designator'ы каждому конденсатору выставляю руками?  maniac.gif Извиняюсь, если вопрос глупый, но методом НТ до "автоматического подхватывания" десигнаторов из текущего проекта дойти так и не смог, а в документации про сниппеты так куцо написано...
Владимир
Цитата(Гяук @ Jun 10 2009, 22:26) *
Владимир, не держите это в себе - в чем гибкость? biggrin.gif Хотя-бы ткните носом где глянуть. Под эвфемизмом "правильная организация схемы", я так понимаю кроется предложение использовать Multi-Sheet and Multi-Channel Design?

Что-то мне подсказывает, что приведенный выше рисунок далек от требований ЕСКД.

Кроме того не всегда имеет смысл влазить в дебри multichannel... Самый простецкий пример. Есть на плате два преобразователя напряжения - DC-DC c adjustable выходом. Один на 1,8В, другой на 3,3. Отличаются парой резисторов, смещающих sence-вход... С одной стороны - обвязки с десяток элементов, с другой стороны для каждого "канала" расставлять элементы ручками лень.

За сим было бы здорово увидеть трансляцию параметра ChannelOffset из SchDoc в PcbDoc... crying.gif

Есть у меня стандартная заморочка - расстановка конденсаторов под ПЛИС, да желательно так чтобы побольше IO можно было использовать, т.е. чтобы кондесаторы не мешались. Нашел одно хорошее решение. Оно мне понравилось. Задумал его "засниппить". Вставляю в новый проект и... Designator'ы каждому конденсатору выставляю руками? maniac.gif Извиняюсь, если вопрос глупый, но методом НТ до "автоматического подхватывания" десигнаторов из текущего проекта дойти так и не смог, а в документации про сниппеты так куцо написано...

1/ а построение правил с длинными формулами, а дать человеческие описания правилам, а учет слоев и прочей
Ух семь поов сойдет. а все в схеме не опишете
2 в частности
Цвет тоже далек от ескд
ну 2 DC/DC проще так, чем в дебрях мультиканалов smile.gif
Сниппеты старье. Давно не пользуюсь
mkshome
Цитата(Владимир @ Jun 11 2009, 00:57) *
Сниппеты старье. Давно не пользуюсь


Допустм имеем набор парных Snippet-ов (Схема=разводка), отображающих некоторые частоиспользуемые узлы
Начинаем лепить необходимую схему: (по началу схема пустая)
1) Бросаем Snippet1_SCH в схему, Snippet1_PCB в плату.
2) Поскольку они идентичны, то сразу идем в ComponentLinks и загоняем всех вправо по refdes
3) Проводим апдэйт платы со схемы - все ОК, иначе и быть не может.

На этом этапе трудностей не должно быть. Те изначально не связанные Snippet-ы сперва определили кто из ху, а потом поимели информация о цепях.

Дальше веселее

4) Добавляем второй Snippet, причем тот же, в схему (ну надо мне так было)
5) Теперь Snippet_PCB в плату лепить не стоит. Надо скопировать первый Snippet1_PCB (Ctrl_C). При его вставке все его элементы получат к каждому рефдесу суффикс _1, _2, _3 итд при каждом копировании. Уточняю - речь о PCB.
6) На схеме выделяем второй Snippet1_SCH, идем в ренамбер и говорим что дело хотим иметь только с выделенными компонентами этой схемы, да добави каждому суффикс _1 (итд толко поочереди). Подтверждаем.
7) Теперь на плате включаем ComponentLinks, сдуваем все справа на лево, а затем все обратно - только по рефдесу.
8) Апдейт со схемы и все сошлось.

Теперь вставляем другой пара снипетов

9) поводу схемы повторяем частичный ренамбер (только новый Snippet7_SCH)
10) С платой же все тоже самое, только вновь вставленный сниппет надо скопировать, вставить один или более раз, и обязатально удалить первый его вариант.

Далее то же самое имеем в плате и в схеме набор компонентов с суффиксами _1 , что позволяет в автомате переназначить им ссылки.

Не забываем производить общий ренамбер перед каждым новым сниппетом.

11) В итоге имеем разведенную схему в компилированном проекте и полную возможность коррекции итд, про ГОСТы вопрос я думаю отпадает.
Владимир
1. делайте иерархический проект
2 Даете в нем 8 кратную ссылку на ваш сниппет
3 Берете или копируете сниппет в PСB и относите его к Первой ROOM
4/ переносите из схемы в Pcb
5 делаете операцию Paste формат ко всем Room и расставляете ваши сниппеты как вам нравится

Вроде короче и быстрее. когда знаешь как.

Но вообще камней подводных и там там хватает
Vokchap
Цитата(Владимир @ Jun 10 2009, 23:57) *
Сниппеты старье. Давно не пользуюсь

Появился другой продвинутый инструментарий? Сниппет cool. cool.gif
Владимир
угу. Place/device sheet symbol

Раз попробовал.

в целом ничего.
но стечением времени device меняется, по крайней мере по номиналам, атрибутам или ссылкам по библам.
Или вообще просто старый, смотреть не хочется smile.gif
Vokchap
snippet ввели кажется ПОСЛЕ device sheet symbol. Предназначение и масштаб охвата у них несопоставим - кусок принципиальной схемы в "принципиальном" виде и законченный девайс в виде условного знака.
Владимир
Цитата(Vokchap @ Jun 18 2009, 21:47) *
snippet ввели кажется ПОСЛЕ device sheet symbol. Предназначение и масштаб охвата у них несопоставим - кусок принципиальной схемы в "принципиальном" виде и законченный девайс в виде условного знака.


Не. snippet я пользовался сколько себя помню smile.gif
Device вроде с год назад появилось.
Vokchap
да в самом деле в 6.8. Но они ведь не заменяют сниппет.... laughing.gif
Владимир
Цитата(Vokchap @ Jun 18 2009, 22:10) *
да в самом деле в 6.8. Но они ведь не заменяют сниппет.... laughing.gif


Ну да совсем даже не заменяют, но приспособить можно.
Зато их 100% заменяет Ctr+C, Ctrl+P
Еще и быстрее получается. берешь самое свежее и проверенное smile.gif
Все равно вспоминать где какой сниппет лежит и как обзывается, или скопировать из предыдущего проекта или апдейта схемы.
Vokchap
Цитата(Владимир @ Jun 18 2009, 22:20) *
Зато их 100% заменяет Ctr+C, Ctrl+P
Еще и быстрее получается. берешь самое свежее и проверенное smile.gif
Все равно вспоминать где какой сниппет лежит и как обзывается, или скопировать из предыдущего проекта или апдейта схемы.

Да, Ctrl+P редкая по силе вещь... biggrin.gif

Везде должен быть порядок, правильная организация - тогда и жить легче. И самому и окружающим. ИМХО, конечно. smile.gif
Владимир
Цитата(Vokchap @ Jun 18 2009, 22:33) *
Да, Ctrl+P редкая по силе вещь... biggrin.gif

Да черт. Промахнулся. smile3009.gif Но смысл понятен biggrin.gif bb-offtopic.gif
mkshome
Цитата(Владимир @ Jun 18 2009, 22:51) *
1. делайте иерархический проект
2 Даете в нем 8 кратную ссылку на ваш сниппет
3 Берете или копируете сниппет в PСB и относите его к Первой ROOM
4/ переносите из схемы в Pcb
5 делаете операцию Paste формат ко всем Room и расставляете ваши сниппеты как вам нравится

Вроде короче и быстрее. когда знаешь как.

Но вообще камней подводных и там там хватает


А как при этом схема выглядит. Мож сниппеты дешевле, чем нормоконтроль бодать.

А по поводу паст и копи - опять же рыть, искать надо, вырывать, синхронизировать. А сниппеты попарно хранишь, да с подписями всякими, выражениями, на мысль наводящими.
Владимир
Цитата(mkshome @ Jun 21 2009, 14:36) *
А как при этом схема выглядит. Мож сниппеты дешевле, чем нормоконтроль бодать.

А по поводу паст и копи - опять же рыть, искать надо, вырывать, синхронизировать. А сниппеты попарно хранишь, да с подписями всякими, выражениями, на мысль наводящими.


А схема и так не по всем буквам госта выглядит
кстати Гост не запрещает рисовать схему одного блока, о остальные либо квадратами либо...
Вообще Гост весьма гибкая вещь, и то что якобы не соответствует госту, у другого "забоданного" нормоконтролера соответствует.
Выражения и подписи тож люблю. Ни кто их не мешает копировать, и подправлять свете "нового мышления". Вот черт. Не нашел как ударение ставить biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.