Цитата(Alex Ko @ Oct 2 2007, 09:16)

Может, лучше сюда? Или мне тоже..
Хм... А это действительно кому-то интересно???
Дело в том, что программа получилась не короткая, и выполняет кучу разных процедур, обеспечивая трансляцию файлов текущего проекта в формат Protel99.
При этом проверяются некоторые типичные ошибки, препятствующие корректной передаче. Здесь важное уточнение: программа ориентирована на работу с нашей библиотекой. Например, по ГОСТ требуется разрывы линий электрической связи завершать стрелками, простое указание NetLabel не катит. Ну, мы и сделали графический компонент типа "Обрыв связи", который проставляем на концах линий. В Альтиуме все в порядке, а вот в Протеле возникает проблема - там нет типа graphical. Соответственно все эти графические символы должны быть пронумерованы уникальными десигнаторами. С помощью команды Annotate этого не сделать, так как графика на автомате не нумеруется. Значит, либо Find Symilar - смена типа - нумерация - смена типа, либо писать программу.
Аналогично, Протел не понимает полигонов типа Solid, а мы в Альтиуме работаем именно с такими.
Вот программа и производит кучу проверок и преобразований, после чего сохраняет набор файлов.
Короче, сейчас скопирую из руководства, которое я для наших написал:
Ошибки, которые обнаруживаются программой и приводят к ее останову:
- наличие многоконтактных разъемов («Цепь-Контакт»), нарисованных на схеме зеркально относительно библиотечного компонента (имеющиеся в библиотеке многоконтактные разъемы имеют два варианта начертания, что позволяет не использовать атрибут Mirror – «отразить»);
- наличие компонентов, расположенных вне сетки – ошибка типа «Off grid»;
- наличие символов «Sheet Entry», расположенных не в сетке с шагом 10.
Все эти ошибки должны быть вручную исправлены пользователем.
Кроме того, программа автоматически осуществляет ряд подготовительных действий, которые призваны обеспечить правильную передачу в Protel99 проекта. А именно:
- в папке текущего проекта создается папка для сохранения файлов по принципу: <Имя проекта>\Protel99 (например: AV221_V6\Protel99);
- если такая папка ранее существовала, то все файлы, которые были в ней до начала работы скрипта, удаляются;
- автоматически нумеруются все символы «Обрыв связи»;
- корректируются ссылки в элементах SheetSymbol (символ листа);
- изменяется тип всех полигонов на печатной плате с Solid на 45DegreeHatch и осуществляется их перестройка;
- обнаруживаются и корректируются правила для Clearance<=0.
Все корректировки, проводимые автоматически, не сохраняются в исходных файлах Альтиума и попадают только в файлы формата Protel99.
Вот, собственно, такая программа :-)
Могу, в принципе, поделится, если это кому-то нужно.