В Eagle я часто предпочитаю прокладывать некоторые провода самостоятельно (power, xtal, UBS и т. Д.), А остальное оставляю авторутеру. Когда я не доволен результатом, я сам направляю еще один маршрут и позволяю авторутеру попробовать еще раз.
Моя проблема состоит в том, чтобы отменить работу автораутера, не отменив мою собственную работу. Основной способ сделать это - просто не сохранять версию с автоматическим управлением, а затем снова загружать плату. Но как только я совершил ошибку, сохранив версию с автоматическим разрешением (и очистив резервные копии), я все равно захочу вернуться к версии с предварительным разрешением.
Одна попытка сделать это состоит в том, чтобы идентифицировать все авторизованные провода в ULP и создать командную строку для RIPUP этих сегментов. Я могу организовать для ULP идентификацию разрешенных проводов, например, давая им другую ширину. Но команда RIPUP, кажется, разрывает выбранный сегмент провода и сегменты ADJACENT. До сих пор я не нашел команду, которая разрывает только выбранный сегмент провода.
Итак, я думаю, у меня есть два вопроса: - Как вы комбинируете ручную и автоматическую маршрутизацию итеративным способом (методом проб и ошибок)? - Есть ли способ (возможно, с использованием ULP и команд) разорвать подмножество сегментов проводов?
(обновление) Я попробовал противоположный подход: в ULP соберите все сегменты проводов, которые я хочу сохранить, выполните полное копирование, а затем восстановите сегменты проводов (используя команду ROUTE). Безуспешно, сегменты должны быть в определенном порядке для команд маршрута (не в порядке, в котором ULP находит их :(), сначала должны быть сделаны переходы, и некоторые другие проблемы.
GRRRR, должен быть простой способ сделать это, или я слишком оптимистичен?
источник
Ответы:
Я ненавижу отвечать на свой вопрос, но я иду. Надеюсь, я не получу баллы за ответы, это было бы странно, только за принятие ответа? (Кстати, я не получил никакого ответа на форуме Element14.)
Решением является использование команды DRAW, а не ROUTE. DRAW разместит сегмент провода именно там, где вы укажете (в отличие от ROUTE, который пытается подключиться к неизведанному воздушному проводу. ROUTE по сути бесполезен в сценарии.). Следующая проблема - через: я не могу (или не хочу) различать ручное и автоматическое, поэтому я сохраняю все, которые соединяют два (или более) сегмента проводов вручную. Другие переходы удалены.
Итак, что мой последний сценарий делает:
Обратите внимание, что это, вероятно, не будет работать для более чем двух слоев, а также для других вещей, чем сегменты провода на медном слое.
ИМХО вся концепция орла ULP и командных языков хлопотна. ULP работает в среде только для чтения, единственный способ повлиять на схему, плату или библиотеку - создать список команд. Это исключает некоторые полезные методы программирования, но хуже всего то, что команды не были разработаны так, чтобы их можно было легко создавать из ULP. Вам нужны все виды преобразований (в данном случае: координаты, имена фигур) для перевода из мира ULP в мир CMD.
(отредактировать) Перед запуском этого ULP установите выбор «изгиб провода», чтобы разрешить произвольные углы, в противном случае Eagle попытается адаптировать воскрешенные провода к разрешенным углам, что может привести к кровавому беспорядку. ИМХО это еще один пример проблемы с ULP / SCR.
Это код ULP:
источник
Wouter. Я не видел ваш вопрос раньше, потому что я был в Мастерс на прошлой неделе.
Я имею дело с тем, чтобы сохранить копию платы под другим именем прямо перед запуском авторутера. Я всегда называю это SAVE.BRD, который можно безопасно удалить после того, как все сделано.
Мой рабочий процесс маршрутизации очень похож на ваш. Я вручную маршрутизирую критические части, проверяю, правильно ли настроены сетевые классы, затем запускаю авторутер. Затем я ищу проблемы, например, когда авторутер не может найти решение, в итоге он делает что-то неудобное и т. Д. Я возвращаюсь к сохраненной версии (перед автоавто), надеюсь, внесу несколько изменений вручную, чтобы авторутер не получил в беде, попробуйте еще раз. Это может повторяться 5-10 раз, в зависимости от сложности доски. Первые несколько прохождений автотрассы в основном предназначены для поиска решения и грубо для поиска проблемных мест. Для этого я даже не использую проходы оптимизации. Более поздние авторуты с полной оптимизацией, которая для меня обычно составляет 8 проходов с изменением затрат на эти проходы, чтобы получить желаемые характеристики.
Несмотря на то, что я делаю сохранение в SAVE.BRD перед каждым проходом автопутешествия (и затем заново открываю исходный файл, чтобы продолжить это), я стараюсь не сохранять автопортретный результат до тех пор, пока я не доволен всем этим. Сохранение снимка в SAVE.BRD каждый раз является резервной копией безопасности на случай, если мои пальцы случайно сделают сохранение, прежде чем я подумаю об этом.
Было бы неплохо, если бы у Eagle была возможность разрыва для последнего прохода автострады, но такой вещи нет.
источник
Если файл данных Eagle использует тот же подход, что и старые, с которыми я играл (например, у вас есть старый DOS Autotrax), то каждый сегмент дорожки имеет свою линию. Строки являются «автономными» и могут быть отредактированы или удалены без какого-либо влияния на них. Более новые «лучшие» системы могут не обладать такой мощной простотой.
Если дорожки независимы, как указано выше, и если ширина дорожек уникальна, то [tm] должно быть легко идентифицировать сегменты дорожек и удалять соответствующие линии.
Тусклая память говорит мне, что на одном этапе я написал процедуру для идентификации меток компонентов и изменения их размера, поворота и перемещения относительно тела компонента. Идентификация треков звучит легко по сравнению. Сохраните копию перед запуском программы !!! :-).
источник