Команда замены Eagle cad с помощью командной строки

Я использую Eagle Cad и перенес свои библиотеки в другую папку. Мне нужен был более быстрый доступ. Теперь мне нужно обновить компоненты на моей схеме, и я хотел использовать команду замены из командной строки.

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

Ps Также в некоторых моих компонентах есть пробелы и кавычки. Пример неудачных попыток: REPLACE C "BUTTON-CONDUCTIVESMD-0.1" (BUTTON-CONDUCTIVE)@MyLibrary" BUTTON-TRACE@000_Mylib"

Ошибка:Invalid point:(BUTTON-CONDUCTIV...

Pps Также я рассмотрел команду set как возможную альтернативу, но не пробовал ее. Это жизнеспособный вариант? Если да, пожалуйста, предоставьте рабочую ссылку!

Ответы (2)

Учитывая, что файлы brd и sch находятся в формате XML, я хотел бы предложить отредактировать его и изменить напрямую, но, возможно, это не всегда хорошая идея! Вы могли бы попробовать это с копией, если бы у вас хватило смелости!

Похоже, что у замены есть два варианта:

REPLACE device_name[@library_name] •..
REPLACE part_name device_name[@library_name] ..

Сначала вы просто набираете REPLACE «mycomponent@mylibrary» и щелкаете по соответствующим компонентам.

Второй такой же, но сначала вы дали название детали.

Ни один из них не является особенно хорошим вариантом. Я думал, что будет легко, скажем, сгруппировать все компоненты определенного пакета и заменить их, но я не понимаю, как это сделать. Вероятно, вам придется использовать скрипт, чтобы сделать это. Я думаю, это не совсем ответ.

Я изучаю это. Я сделал несколько событий редактирования в xml и хотел бы использовать свой текстовый редактор (N ++) для всего, на что он способен! -- Я отправлю обратно, если это работает, как ожидалось...
Ну, я смог отредактировать библиотечные части в файле xml и загрузить схему - есть несколько разных элементов, которые нужно изменить, чтобы она наконец загрузилась, но затем я получаю сообщение об ошибке «не будет выполняться аннотация вперед/назад». Так что это удержит меня от дальнейшего продвижения, и я отмечу ваш ответ как работающий, потому что он дает лучшую ссылку на то, как использовать команду REPLACE, чем на то, как я ее интерпретировал. Спасибо!
Это тоже не идеально - я полагаю, что файлы .sch и .brd должны точно совпадать. Я просто недостаточно знаком с ULP, чтобы знать, как правильно это сделать в пользовательском интерфейсе. Google нашел тот же вопрос, который вы задавали на других сайтах, но без ответов! Арх! Все, что я использую, это файлы .scr, которые в любом случае представляют собой список команд, которые вы вводите. Как говорит gbulmer, вы можете сгенерировать их очень легко.
Я думаю, что вы правы насчет файлов .sch и .brd. Я читал, что вы должны открывать их одновременно при внесении изменений в один, иначе изменения не будут внесены в другой.

Я делал повторяющиеся вещи в Eagle, создавая сценарий инструкций командной строки. Затем я делаю копии файлов проекта, открываю копии файлов проекта и запускаю скрипт. Обычно в нем есть ошибки, которые нужно исправлять, поэтому я всегда работаю на копиях.

Вы можете создавать сценарии в текстовом редакторе вручную, если это имеет смысл.

Мое использование немного отличается, оно часто повторяется и требует некоторых вычислений. Поэтому я делаю это с помощью программы Python или Go lang. Программа создает сценарии командной строки. Затем я выполняю сценарий, как обычно, в Eagle. (Это очень UNIX-подход :-)

Как указал carveone, файлы sch и brd представляют собой XML в Eagle 6 и выше.

Поэтому, если вы знаете язык программирования с разумными возможностями обработки текста, XSLT или мощный текстовый редактор, вы можете извлечь старые имена всех существующих компонентов в этих файлах Eagle.

Я использую программу, которая вставляет разрывы строк, чтобы упростить чтение и работу с XML. Разбив XML на строки, становится проще манипулировать файлом с помощью текстовых редакторов с мощными возможностями сопоставления регулярных выражений (например, vi, vim, ...)

Так что, если у вас есть знания и навыки, вы можете следовать этому подходу.

Подход :
Скопируйте файлы sch и brd, затем отредактируйте их, пока они не будут содержать достаточно информации, чтобы идентифицировать части старого имени.

Когда у вас есть этот файл, содержащий старые имена компонентов, вы сможете создать файл команд, по одной для каждого компонента, чтобы заменить старые имена частей новыми именами частей.

Мне бы очень хотелось исправить имена в библиотеках, чтобы удалить пробелы из их имен, чтобы упростить весь этот процесс.

Это тоже полезно... больше для ссылки на создание команд в других процессах (в N++ есть NppCalc, который точно не попадает в языковую категорию, но работает...), а затем запускать их в скрипте... Мне все еще нужно разберусь, когда мне понадобится скрипт - это моя первая печатная плата!
Как я уже писал, для вашей проблемы, если это только один или два файла, я мог бы преобразовать файл XML в формат одной строки на выражение xml и использовать некоторые регулярные выражения в текстовом редакторе для создания скрипта . Однако, если бы нужно было обработать много файлов, я бы написал программу, которая копирует каждый файл XML sch и brd и заменяет старое имя части новым, вообще не запуская Eagle. Я был бы разочарован, если бы это не удалось, и я бы не удивился, если бы это сработало идеально. В Eagle встроен язык программирования, но проще написать программу на языке, который я знаю.
+1 Я сделал это на языке обработки текста «gawk», чтобы создать файл .scr. Подойдет любой язык, но gawk проще всего. Будь я проклят, если бы я собирался разместить 200 контактных площадок SMD вручную, когда у меня есть процессор, который сделает это за меня!