This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
pcb-projects.ru [2013/01/28 14:44] vzh pcb-projects translation into Russian |
pcb-projects.ru [2014/04/22 13:02] (current) vzh Fix quotes and spaces |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | //Эта страница доступна также на следующих языках:// | ||
+ | [[pcb-projects|English]] | ||
+ | |||
==== Редактор топологии печатной платы ==== | ==== Редактор топологии печатной платы ==== | ||
- | == Возможность "раздвижки" == | + | == Возможность «раздвижки» == |
- | Возможность "раздвижки" ("plow" feature) --- когда при проведении линии с | + | Возможность «раздвижки» («plow» feature) --- когда при проведении линии с |
помощью инструмента **LINE** она раздвигает существующие дорожки в стороны, | помощью инструмента **LINE** она раздвигает существующие дорожки в стороны, | ||
стараясь сохранить, где это возможно, соответствие нормам проектирования. | стараясь сохранить, где это возможно, соответствие нормам проектирования. | ||
- | Сложность = 4-5 | + | ''Сложность = 4-5'' |
== Алгоритм быстрого округления точек привязки == | == Алгоритм быстрого округления точек привязки == | ||
Line 14: | Line 17: | ||
случай, когда вставка точки приводит к самопересечению. | случай, когда вставка точки приводит к самопересечению. | ||
- | В **pcb** для всех объектов используется целочисленная координатная система. | + | В **pcb** для всех объектов используется целочисленная координатная |
- | В коде обрезки полигонов рассчитываются все точки пересечений между двумя | + | система. В коде обрезки полигонов рассчитываются все точки пересечений |
- | несамопересекающимися контурами (помимо прочего, что там делается), но | + | между двумя несамопересекающимися контурами (помимо прочего, что там |
- | координаты этих точек пересечения тоже должны быть целыми числами. | + | делается), но координаты этих точек пересечения тоже должны быть целыми |
+ | числами. | ||
Алгоритм быстрого округления точек привязки замещает два сегмента, | Алгоритм быстрого округления точек привязки замещает два сегмента, | ||
пересекающихся не в точках их концов, четырьмя сегментами с координатами, | пересекающихся не в точках их концов, четырьмя сегментами с координатами, | ||
- | являющимися целыми числами и близкими к исходной точке пересечения (координаты | + | являющимися целыми числами и близкими к исходной точке пересечения |
- | которой не целые числа). Так как такая операция округления в точке пересечения | + | (координаты которой не целые числа). Так как такая операция округления в |
- | может изменить наклон каждого из четырёх сегментов в сравнении с исходными | + | точке пересечения может изменить наклон каждого из четырёх сегментов в |
- | двумя, она вызывает возможность возникновения новых пересечений между | + | сравнении с исходными двумя, она вызывает возможность возникновения новых |
- | сегментами, замещающими прежние, и другими сегментами контура, не | + | пересечений между сегментами, замещающими прежние, и другими сегментами |
- | существовавших для первоначальных сегментов. Алгоритм округления точек | + | контура, не существовавших для первоначальных сегментов. Алгоритм округления |
- | привязки должен произвести такой набор сегментов, все пересечения которых | + | точек привязки должен произвести такой набор сегментов, все пересечения |
- | находятся в конечных точках сегментов с целыми координатами. В существующем | + | которых находятся в конечных точках сегментов с целыми координатами. В |
- | коде **pcb** это уже делается, но там используется алгоритм, в теории более | + | существующем коде **pcb** это уже делается, но там используется алгоритм, в |
- | медленный по сравнению с другими известными, такими как: | + | теории более медленный по сравнению с другими известными, такими как: |
- | "Improved output-sensitive snap rounding," John Hershberger, Proceedings of | + | "Improved output-sensitive snap rounding," John Hershberger, Proceedings of |
the 22nd annual symposium on Computational geomerty, 2006, pp 357-366. | the 22nd annual symposium on Computational geomerty, 2006, pp 357-366. | ||
- | http://doi.acm.org/10.1145/1137856.1137909 | + | http://doi.acm.org/10.1145/1137856.1137909 |
Алгоритмы, написанные такими авторами, как //de Berg//, //Goodrich//, | Алгоритмы, написанные такими авторами, как //de Berg//, //Goodrich//, | ||
Line 40: | Line 44: | ||
настоящее время. | настоящее время. | ||
- | Кроме того, существуют редкие, но реальные ситуации ухудшения, когда результаты | + | Кроме того, существуют редкие, но реальные ситуации ухудшения, когда |
- | округления точек привязки в одном (или обоих) контурах имеют самопересечения, | + | результаты округления точек привязки в одном (или обоих) контурах имеют |
- | которых не было ранее. Эти самопересечения фатальны для нашего кода обрезки | + | самопересечения, которых не было ранее. Эти самопересечения фатальны для |
- | полигонов. Мы не знаем, решают ли эту проблему алгоритмы округления точек | + | нашего кода обрезки полигонов. Мы не знаем, решают ли эту проблему алгоритмы |
- | привязки, приведённые в этой литературе, или нет, но если нет, нам нужно | + | округления точек привязки, приведённые в этой литературе, или нет, но если |
- | разработать иной алгоритм, который её решит, с помощью ли умного выбора | + | нет, нам нужно разработать иной алгоритм, который её решит, с помощью ли |
- | создаваемых точек округления, или на этапе пост-обработки, на котором | + | умного выбора создаваемых точек округления, или на этапе пост-обработки, на |
- | самопересечения будут удаляться с минимальным искажением геометрии | + | котором самопересечения будут удаляться с минимальным искажением геометрии |
оригинальных контуров. | оригинальных контуров. | ||
- | Сложность = 4-5 | + | ''Сложность = 4-5'' |
== Инструмент черчения с автотрассировкой == | == Инструмент черчения с автотрассировкой == | ||
+ | |||
По существу с помощью этого инструмента вы могли бы щёлкнуть в начальной | По существу с помощью этого инструмента вы могли бы щёлкнуть в начальной | ||
точке, переместить перекрестие курсора в какую-то другую (обычно | точке, переместить перекрестие курсора в какую-то другую (обычно | ||
Line 61: | Line 66: | ||
какую-то другую клавишу, чтобы откатиться к менее дорогому варианту. | какую-то другую клавишу, чтобы откатиться к менее дорогому варианту. | ||
Предполагаемый маршрут мог бы динамически изменяться при перемещении | Предполагаемый маршрут мог бы динамически изменяться при перемещении | ||
- | перекрестия курсора для достижения указанной им точки. Если бы было невозможно | + | перекрестия курсора для достижения указанной им точки. Если бы было |
- | найти путь, дорожка бы пропадала. Щелчок мышью приводил бы к добавлению | + | невозможно найти путь, дорожка бы пропадала. Щелчок мышью приводил бы к |
- | предложенной дорожки и к переходу инструмента в новую начальную точку (таким | + | добавлению предложенной дорожки и к переходу инструмента в новую начальную |
- | же образом, как это делается сейчас для инструмента **LINE**). | + | точку (таким же образом, как это делается сейчас для инструмента **LINE**). |
- | Сложность = 5 | + | ''Сложность = 5'' |
== Калькулятор посадочных мест IPC == | == Калькулятор посадочных мест IPC == | ||
+ | |||
Создать калькулятор посадочных мест, который принимал бы правила IPC и | Создать калькулятор посадочных мест, который принимал бы правила IPC и | ||
производил посадочное место для **pcb**. Предпочтительно написать его таким | производил посадочное место для **pcb**. Предпочтительно написать его таким | ||
образом, чтобы ядро программы не зависело от графического интерфейса, с тем | образом, чтобы ядро программы не зависело от графического интерфейса, с тем | ||
чтобы программу можно было использовать в скриптах для создания больших | чтобы программу можно было использовать в скриптах для создания больших | ||
- | семейств посадочных мест или привязать её к выбранному графическому интерфейсу | + | семейств посадочных мест или привязать её к выбранному графическому |
- | (lesstif, gtk, может даже cgi). Может быть потребуется купить IPC-7351 | + | интерфейсу (lesstif, gtk, может даже cgi). Может быть потребуется купить |
- | (приблизительно в $100 США) и проверить, что кому-нибудь разрешается | + | IPC-7351 (приблизительно в $100 США) и проверить, что кому-нибудь |
- | произвести такой калькулятор. | + | разрешается произвести такой калькулятор. |
- | Сложность = 2 | + | ''Сложность = 2'' |
== Экспорт IPC-356 == | == Экспорт IPC-356 == | ||
- | IPC-D-356 --- спецификация выходного формата списка соединений, используемого | + | IPC-D-356 --- спецификация выходного формата списка соединений, |
- | для производственной проверки печатных плат. Она определяет информацию и о | + | используемого для производственной проверки печатных плат. Она определяет |
- | соединениях, и о положении контактных площадок, облегчая, таким образом, | + | информацию и о соединениях, и о положении контактных площадок, облегчая, |
- | использование автоматического тестирования после производства печатной платы. | + | таким образом, использование автоматического тестирования после производства |
- | В данном проекте вам надо реализовать программу экспорта, которая бы писала | + | печатной платы. В данном проекте вам надо реализовать программу экспорта, |
- | IPC-D-356-совместимый файл из **pcb**. Спецификация IPC-D-356 доступна по | + | которая бы писала IPC-D-356-совместимый файл из **pcb**. Спецификация |
- | адресу: [[http://www.solidigm.com/downloads/ipc356.pdf]]. | + | IPC-D-356 доступна по адресу: |
+ | [[http://www.solidigm.com/downloads/ipc356.pdf]]. | ||
- | Сложность = 3 | + | ''Сложность = 3'' |
== Перечень последних загруженных файлов == | == Перечень последних загруженных файлов == | ||
Line 99: | Line 106: | ||
возможность в других программах. | возможность в других программах. | ||
- | Сложность = 1 | + | ''Сложность = 1'' |