Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подскажите программу (более навороченную чем Specctra) для автоматического размещения ЭРЭ на плате
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Работаем с трассировкой
Укушенный воблой
Что нужно.
1) Описывать стратегию размещению с помощью скриптов
2) Поддержка параметризации, математических формул и уравнений для задания законов размещения
3) Поддержка функции "относительная фиксация" когда выбранные компоненты и дорожки воспринимаются как единое целое. И ротэйт и драг анд дроп над такой группой ЭРЭ выполняются так, как будто это единой целое
4) Поддержка "многоканальной параметризации". Когда я меняю растояние между двумя ЭРЭ, то автоматом ТАКЖЕ меняются расстояния во всех узлах данного типа
Uree
Ватман, без вариантов. Его кстати и под рыбу подкладывать удобно...
Укушенный воблой
Я серьёзно
Vadim
Если нужно скриптование, ватман не подойдёт. Попробуйте миллиметровку.
Укушенный воблой
Хотя бы просто "относительная фиксация" (когда положение выбранных элементов и уже разведенные дорожки между ними фиксируются относительно друг друга и ротейт, флип и драг анд дроп их выполняется так, как будто они одно целое) в каких программах трассировки плат есть?

Чтобы можно было разбить сложную плату с полтыщей компонентов на "островки" - т.е. группы элементов которые перемещаются, двигаются и вращаются вместе со своими дорожками как одно целое.

Ну т.е. как в автокаде ты выделяешь ряд объектов а потом выбираешь "создать блок".
Но только автокад не является программой для трассировки плат.
А в PCAD нет функции "создать блок" из выбранных компонентов

К тому же хотелось бы что внешние дорожки и линии Connection "островков" тянулись бы за ними как они тянутся в pCAD когда двигаешь элемент
Corvus
В Altium для этого есть union. Есть snippets для повторного использования одинаковых фрагментов.
Укушенный воблой
Цитата(Corvus @ Jul 9 2016, 09:14) *
В Altium для этого есть union. Есть snippets для повторного использования одинаковых фрагментов.

Хотелось бы уточнить прежде чем качать несколько гигов Алтиум по диалапу (у меня нет инета. Связь только через 3G-модем):
1) Union - это временная группа (аналог hihglighted в пикад) или она сохраняется и после закрытия и открытия программы
2) Каким способом создаются Union? Можно ли задать правила, по которым Union будут создаваться автоматически?
3) При дрэйг энд дропе группы как единого целого за ней тянутся конекшоны и уже проведенные дорожки?
3) Чем Union отличается от Snippet?

И есть ли там команды "разместить рядом" так или иначе отфильтрованные компоненты так, чтобы манхэтэновская длина соединений между этими компонентами была минимальна?
Uree
Не могу я серьезно говорить с бешеным крабом, ну никак...
Укушенный воблой
Я извиняюсь.
Никто не знает что ли таких программ для проектирования печатных плат?
Smoky
Цитата(Укушенный воблой @ Jul 10 2016, 02:50) *
Я извиняюсь.
Никто не знает что ли таких программ для проектирования печатных плат?


Это было давно, но помнится такая программа как EDWin и EDWinXP. В них была возможность размещения компонентов текстовым описанием.
Alex11
Забудьте Вы это навсегда. Все программы анонсируют автоматическую расстановку, но ни одна не делает это разумно и правильно. Только ручками. Даже фильтровые конденсаторы на автомате не расставить правильно.
ViKo
Помню, когда дипломный проект в институте делал много лет назад, решил попробовать автоматическую расстановку микросхем. С помощью институтской ЭВМ. Как это происходило, точно не вспомню. Должно быть, задавал задание на карточках, а результат получал на распечатках. Ничего она не расставила с нескольких попыток, все ERROR выдавала. Но объем распечатки с ERROR уже демонстрировал серьезность работы. Я, правда, подстраховался, еще АЧХ одного каскада посчитал. В-общем, проканало отлично.
Это была моя единственная попытка пользоваться автоматическим расстановщиком. Молодой был, самонадеянный.
Тогда, когда схема состояла из десятков однотипных по корпусу микросхем, еще можно было
рассчитывать расставить элементы автоматически, рядами и колоннами, поротно... равнение направо...
Сейчас же никакой регулярности в принципе не бывает, все внутри ПЛИС, МК.
fill
Цитата(Укушенный воблой @ Jul 8 2016, 18:41) *
Что нужно.
1) Описывать стратегию размещению с помощью скриптов
2) Поддержка параметризации, математических формул и уравнений для задания законов размещения
3) Поддержка функции "относительная фиксация" когда выбранные компоненты и дорожки воспринимаются как единое целое. И ротэйт и драг анд дроп над такой группой ЭРЭ выполняются так, как будто это единой целое
4) Поддержка "многоканальной параметризации". Когда я меняю растояние между двумя ЭРЭ, то автоматом ТАКЖЕ меняются расстояния во всех узлах данного типа


Тыц
MapPoo
Цитата(ViKo @ Jul 11 2016, 09:25) *
Помню, когда дипломный проект в институте делал много лет назад, решил попробовать автоматическую расстановку микросхем.


Я вам больше скажу, в институтах и сейчас этим занимаются rolleyes.gif Сам этим во время учебы грешил maniac.gif
Некоторые по этой теме даже докторские пишут... Но вот сильно дальше этого особо сильно не пошло... Объединение в группы/размещение по подобию еще ничего... А вот чисто автоматизированное не очень...
А в институтах занимаются, да rolleyes.gif
Укушенный воблой
Цитата(Alex11 @ Jul 10 2016, 23:04) *
Забудьте Вы это навсегда. Все программы анонсируют автоматическую расстановку, но ни одна не делает это разумно и правильно. Только ручками. Даже фильтровые конденсаторы на автомате не расставить правильно.

Ну а ПОЛУавтоматически?
Т.е. автоматизировать не весь процесс, а отдельные ТРУДОЕМКИЕ операции?

Очень была бы полезна операция "разместить рядом" выбранные компоненты.
А то я вручную дрэйг анд дроплю

Просто наблюдая за собой, как я осуществляю расстановку, я вижу, что действую по простейшим алгоритмам.

А раз есть алгоритмы - значит можно это дело поручить машине

fill
Спасибо за ссылку. Буду изучать.
Правда я в английском не очень силен.
Но тем не менее.
Спасибо

Цитата(Alex11 @ Jul 10 2016, 23:04) *
Забудьте Вы это навсегда.

Не могу.
Когда на плате 514 компонентов то расстановка очень много времени занимает.
До недели бывает вошкаешься.
Хотя, повторюсь, то что я делаю при этом подчиняется простейшим алгоритмам.
А значит машина это может сделать в тысячи раз быстрей меня и безошибочней


Я постоянно вижу, что размещение компонентов на плате подчиняется вполне конкретным и очень простым правилам.
Возникает вопрос: тогда почему бы его не поручить машине?
Задаешь эти правила, а машина за доли секунды расставляет как надо
Alex11
Тут еще большой вопрос - сколько у Вас есть места на эти 514 компонентов. У меня вот на примерно 500 компонентов 100х150 мм. Автомат туда просто ничего не запихнет. Я по молодости пытался баловаться всякими автоматическими расстановщиками. По факту после них времени на коррекцию уходит больше, чем руками с нуля расставить. Если есть повторяющиеся куски, тогда - да. Есть нормальные автоматы, которым можно объяснить, что должно быть так же, он все повторяет вместе с разводкой - это удобно и работает.
Владимир
Цитата(Укушенный воблой @ Jul 11 2016, 19:43) *
Когда на плате 514 компонентов то расстановка очень много времени занимает.
До недели бывает вошкаешься.

Если руками неделя-- с авторастановщиком семь.

По существу это вообще не цифра, чтоб так заморачиваться.
Цитата
операция "разместить рядом" выбранные компоненты.

Она есть во всех средних и крутых кадах
pcbdesigner
В Allegro есть импорт placement файлов. В Altium тоже есть что-то подобное. Вы можете писать свои скрипты для расстановки компонентов в чем угодно, сохранять координаты компонентов в текстовый файл и импортировать в указанные САПРы. Но имхо, это больше для любителей программировать, чем для конструкторов плат.
Укушенный воблой
Цитата(Владимир @ Jul 11 2016, 18:05) *
По существу это вообще не цифра, чтоб так заморачиваться.

Вы шутите что ли?
Или Вы думаете что у меня на плате только 1000 ногая плисина и 500 резюков и кондеров?

Это не так. У меня сотня корпусов микросхем "логики средней интеграции" (И, ИЛИ, И-НЕ, НЕ) в каждой из которых от 4 до 6 вентилей.
70 реле в каждом из которых 2 вентиля.

А чисто "рассыпухи" почти нет.
Падов более 4-х тысяч

Уже 2-я неделя заканчивается как я пытаюсь найти удачное размещение.

При том что я не новичок.

Трассировкой плат занимаюсь более 30 лет

Всю жизнь вручную размещал и дороги разводил.
Но достало.
Ведь я же все делаю по вполне формализуемому и простому алгоритму.
Ничего мистического, сверхестественного и ТВОРЧЕСКОГО в расстановке компонентов нет .
ОБЫЧНАЯ РУТИНА,
Все поддается простейшему описанию.
Неужели это дело тогда нельзя поручить машине?

Цитата(pcbdesigner @ Jul 12 2016, 11:07) *
Вы можете писать свои скрипты для расстановки компонентов в чем угодно, сохранять координаты компонентов в текстовый файл и импортировать в указанные САПРы.

Вы предлагает мне разработать свой алтиум или свой ментор экспедишн? wacko.gif
maple
На данный момент то, что Вы хотите, не реализовано ни в одной программе в полностью автоматическом виде. Если же рассматривать полуавтоматический вид, по одной задаче отдельно, то получается следующая картина.

В Топоре на сегодняшний день есть автоматическое размещение компонентов в заданной области по критерию минимума суммарной длины соединений. Это может быть размещение всех компонентов или какой-либо группы, соответственно, на всей плате, на произвольном участке платы или вне платы.
Авторазмещение пока одностороннее, точнее проецируется на одну плоскость, даже если компоненты назначены на разные стороны платы. Область размещения – прямоугольная. При размещении не учитываются запреты и зафиксированные компоненты.

Вы считаете, что все это можно легко алгоритмизировать и превратить рутинную работу в полностью автоматическое действие. К сожалению, это не совсем так, иначе такого рода программы были бы уже сделаны. Вот примерная прикидка, что было бы можно еще сделать в программе:
1. Автоматическая группировка компонентов,например, микросхема и ее обвязка.
2. Размещение группы компонентов в прямоугольнике минимальной площади.
3. Оптимизация размещения компонентов группы.
4. Имитация трассировки (виртуальные контакты на границе области для внешних цепей).
5. Объединение группы компонентов в блок (создание виртуального компонента с фиксированным относительным положением компонентов группы, перемещаемого, вращаемого и флипуемого как один компонент).

Может быть, Вы попробуете описать свои рутинные действия? А мы попробуем представить как это можно объяснить машине.

P.S. На Радиокоте тоже от Вас был вопрос?
Владимир
Цитата(maple @ Jul 13 2016, 11:21) *
Вы попробуете описать свои рутинные действия? А мы попробуем представить как это можно объяснить машине.

Вот, единственно правильный вопрос.
Главной не нужны всякие авто. Посли них разгребать дольше.
А вот упрощать работу с "рутиной" - это было бы не плохо.
К сожалению, разработчики (программисты), разгребают рутину с их стороны, или с их точки зрения.
Но никак со стороны пользователей и удобства для них.
Хотя, надо отметить, что и среди пользователей нет единодушного мнения, что есть "удобно"
krux
Цитата(Укушенный воблой @ Jul 12 2016, 21:04) *
Падов более 4-х тысяч
Уже 2-я неделя заканчивается как я пытаюсь найти удачное размещение.
При том что я не новичок.
Трассировкой плат занимаюсь более 30 лет
Всю жизнь вручную размещал и дороги разводил.
Но достало.

опишите свой рутинный процесс в виде алгоритма.
по какому критерию вы ставите компонент именно туда, куда ставите.
тогда может быть это можно будет формализовать и вместе с нетлистом и pick-and-place файлом скормить в качестве некоего эталона программистам.
если попробуете, то я думаю у вас ничего не получится, поскольку при размещении всегда имеет место быть нечеткая логика, - вы заранее прикидываете, разведется ли при такой расстановке или нет.

как реализовать такой алгоритм расстановки без попыток сразу развести смежные компоненты на каждую итерацию расстановки очередного компонента? алгоритмическая сложность такова, что вы руками быстрее сделаете.

имхо, единственный способ сделать некую полезную автокомпоновку - при помощи нейросети. Но прежде чем её можно будет использовать, её придётся тренировать сотней нетлистов и полностью расставленных плат, от простых до сложных.
у вас найдётся сотня плат для скармливания САПРу в качестве обучающих? причем так, чтобы плохому не научить? =)
Укушенный воблой
Цитата(krux @ Jul 13 2016, 08:41) *
опишите свой рутинный процесс в виде алгоритма.

Хорошо.
Просто возникла другая срочная работа на 1-2 недели.
Загрузили по полной. Даже дома корпею.
Трассировку платы пока сказали отложить.
Поэтому с головой сейчас ушел совсем в другую тематику.
Но как вернусь к трассировке, то попытаюсь основываясь на своем огромном опыте работы с трассировкой четко и внятно описать свои действия и рутинные операции при размещении и трассировке, которые (на мой взгляд конечно) легко можно было бы автоматизировать.
Я в отчаянии даже сам уже хотел писать на C++ DBX-утилиту (для PCAD PCB) размещения/"оптимизации размещения" и для выполнения групповых операций.
Настолько достало выполнять простые действия, которые тем не менее сжирают много времени при поиске оптимального размещения компонентов (говорил же, что почти 2 недели уже вошкаюсь с размещением и все равно оно результат мне не нравится. 6-м чувством ощущаю, что можно бы и пооптимальней разместить). Потому что они хоть и простые, но выполнять их приходится по миллион раз. Что утомляет.
И начинаешь лепить ошибки. (Потому что человек не машина и 100 раз если и не допустит ошибку при выполнении одной и той же операции, то на 101-й допустит)

Но у меня не хватает свободного времени. Да и квалификации в программировании. И, наверное, решимости ввязаться в такой сложный проект.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.