Кроме вышеперечисленных классов базовый класс PCB содержит векторные массивы элементов, электрических цепей и посадочных мест.
Роль конвертора при преобразовании данных полученных из САПР KiCAD во внутреннее представление данных УИ САПР служат функция чтения данных «READ» и функция записи в файл «OUT».
Особое внимание следует уделить классу POS_PLACE, описывающего понятие посадочного места. В структуре данных KiCAD отсутствует разбиение печатной платы на посадочные места. Автоматическое размещение производиться непрерывном методом по принципу группировки однотипных элементов на минимально близкое расстояние друг от друга. Однако, в ходе разработки ПО, более удобном и эффективным способом размещения элементов на плате был принят способ деления коммутационного поля (т.е. площади печатной платы) на четко определенные участки (посадочные места). Причем количество посадочных мест должно быть больше или равно количеству элементов на плате. За разбиение печатной платы на посадочные места и формирование списка этих мест с указанием координат центра и отвечают функции класса POS_PLACE.
Библиотека алгоритмов размещения включает в себя последовательный эвристический алгоритм; вероятностный алгоритм; генетический алгоритм; итерационный алгоритм парных перстановок. Алгоритмы размещения элементов реализова-
(DLL).
использования библиотеки программных модулей алгоритмов размещения частично рассмотрены в [4, 5].
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. http://ru.wikipedia.org/wiki/Kicad.
2. http://www.lis.inpg.fr/realise au lis/kicad.
3. http://www.pcad.ru/.
4. Литвиненко В.А., Рябов О.В. Программная среда визуальной разработки программного
// . «
САПР». - Таганрог: Изд-во ТРТУ, 2006, № 8(63). - С. 127-131. "
5. . ., . . -
KiCAD // - -
ций «Интеллектуальные системы» (AIS’06) и «Интеллектуальные САПР» (CAD-2006). Научное издание в 3-х томах. - M.: Физматлит, 2006, Т.2. - С. 103-110.
УДК 681.3.06
В.В. Лисяк, М.В. Лисяк МЕТОД ПОИСКА РЕЗУЛЬТИРУЮЩЕЙ МАТРИЦЫ КОМПОЗИЦИИ ИНТЕРАКТИВНЫХ ГЕОМЕТРИЧЕСКИХ ПРЕОБРАЗОВАНИЙ В САПР*
, , следующей формулировке. Даны два объекта, причём известно, что один из объектов получен путём применения к другому объекту композиции аффинных преобразований. Требуется вычислить матрицу преобразования, которая трансформировала один объект в другой [1-4]. Ниже иллюстрируется постановка такой задачи:
Работа выполнена при поддержке: РФФИ (грант № 08-01-00473), РНП 2.1.2.3193, РНП 2.1.2.2238, г/б № Т.12.8.08.
Известны матрицы: Р1 , Р2 и их взаимосвязь Р1 *Т = Р2. Неизвестна матрица Т. Решение этой задачи сводится к по иску обратной матрицы к матрице Р1 и у множення её на матрицу Р2 [1].
■*1 Л г, 1 н и х': УІ г', 1
Уі *2 1 х 11?И = *2 .їі г’2 1
хп у„ гп 1 Яп Уп 2п 1
Рис. 1. Постановка задачи вычисления матрицы преобразования
Задачи, в сформулированной постановке, возникают при редактировании или преобразовании в диалоговом режиме объектов геометрического моделирования в САПР. При этом обе модели представляются в матричной форме в виде векторов-строк положения характерных точек, заданных в однородных координатах. Задача решается путём вычисления матрицы преобразований, трансформирующей исходный объект посредством цепочки аффинных преобразований. Однако известно, что обратную матрицу имеет только квадратная матрица. В связи с этим возникает , , .
Цели работы:
1. Разработать алгоритм решения задачи для матриц, содержащих произвольное число точек координат.
2. Разработать программу со средствами интерактивной и автоматизированной экспериментальной проверки предлагаемого алгоритма.
3. Предусмотреть экспорт найденной матрицы преобразования в программные продукты пользователей.
Исходные данные и требования к решению поставленной задачи:
1. .
2. Размерность матрицы описания изображений Ых4.
3.
.
4. Преобразования изображений должны выполняться в классе аффинных
.
Теоретическое обоснование работы базируется на аппарате матричной алгебры и аппарате аффинной геометрии с использованием однородного координатного .
Аффинное преобразование - геометрическое преобразование плоскости или пространства, которое можно получить, комбинируя движения, зеркальные отображения и гомотетии в направлениях координатных осей. Гомотетия - преобра-.
Структурная схема алгоритма, удовлетворяющая перечисленным целям и , . 2.
Основной процедурой в решении указанной задачи является вычисление об. ,
трёхмерного объекта, достаточно выделить в матрице одного объекта любую подматрицу 4x4, найти к ней обратную подматрицу и умножить её на аналогичную по месту положения подматрицу 4x4 в матрице, описывающей второй объект.
Рис. 2. Структурная схема алгоритма вычисления матрицы преобразования
Координаты точек в матрицах Рг и Р2 представлены в однородных координатах. Представление двумерного вектора трёхмерным или в общем случае я-мерного вектора (П+1)-мерным вектором называется однородным координатным преобразованием, которое выполняется в (Я+1)-мерном пространстве, а конечные результаты в и-мерном пространстве получаются с помощью обратного преобразования - операции нормализации, т.е. деления координат на значение однородной координаты [5]. При выполнении геометрических преобразований в двумерном пространстве операция деления не требуется, так как однородная координата равна 1.
Однородное координатное преобразование приводит к матрице преобразования размера 4x4, что позволяет выполнить все базовые операции для трёхмерной области:
1. .
2. Все виды отображений.
3. Произвольный перенос объекта.
4. Все виды сдвиговых операций.
5. Все виды вращений.
Преобразования в перспективе.
Блок формирования изображения 2 (см. рис. 2) предназначен для получения изображения в классе аффинных преобразований. Для этого задание цепочки преобразований выполняется в соответствии с аффинными, базовыми преобразованиями, обобщённая матрица которых имеет вид:
а x С І С 2 p
С4 а у СЗ q
С 5 Сб а z r
tx ty tz s
З x З З x І
І x З І X І
Матрица 3x3 осуществляет все виды масштабирования, сдвига, отображения и вращения. Матрица-с^ока 1x3 выполняет любые комбинации переносов изображения, матрица-столбец 3x1 все возможные фокусные преобразования в перспективе, а скалярный элемент s выполняет общее пропорциональное изменение масштаба. В соответствии с этим в таблице приведены аффинные базовые преобразования, используемые в процессе построения композиции преобразований.
На выходе блока формирования изображения гарантировано, что изображение 2 получено из изображения 1 в классе аффинных преобразований. Одновременно с заданием цепочки преобразований формируется результирующая матрица преобра-, -цей преобразования Т*.
В блоке вычисления обратной матрицы выбор подматрицы 4x4 из матрицы Р; изображения 1, может выполняться случайным образом, что полезно в режиме исследования программы, а также задаваться интерактивно или в режиме шаблона. Ре-
4 4, , -
рицы Pj. После всестороннего исследования программы, режим случайного выбора 4 4 .
Проверка правильности вычисления матрицы преобразования Т* выполняется сравнением её с матрицей Т, либо вычислением P2 = Р; *Т и сравнением Р2 с сфор-
2.
Рассмотренный алгоритм вычисления матрицы преобразования справедлив, если преобразование одного объекта в другой выполняется в рамках аффинной геометрии, т.е. когда свойства объектов сохраняются при любых аффинных преобразованиях. Преобразование плоскости или пространства является аффинным, если его можно получить, комбинируя движения, зеркальные отображения и гомотетии (преобразования подобия) в направлении координатных осей. В связи с этим операции редактирования, связанные с добавлением или удалением точек объекта, недопустимы, так как приводят к совершенно другому объекту. Основные базовые операции преобра-( )
,
подсистемах машинной графики и геометрического моделирования.
Программа реализации предлагаемого алгоритма написана в среде программирования Borland C++ Builder 6.0. и позволяет использовать следующие режимы работы:
1. .
2. -.
3. Интерактивный и случайный выбор подматриц исходной матрицы для вычисления обратной матрицы.
4. Выполнение проверки правильности вычисления обратной матрицы и ви-
.
Таблица
Аффинные базовые преобразования
Масштабирование
масштабирование по оси X ех= М(Е) = гх 0 0 0 0 еу 0 0 0 0 ег 0 0 0 0 1
масштабирование по оси У еу=
масштабирование по оси Ъ ez=
Переносы
перенос по оси X 1х= М(Т) = 1 0 0 0~ 0 10 0 0 0 10 tx 1, *г 1.
перенос по оси У 1у=
перенос по оси Ъ ^=
Перспективные преобразования
однофокусное с сходом на оси X Рх= М( Пер .) = "1 0 0 Рх" 0 10 р, 0 0 1 рг 0 0 0 1
однофокусное с сходом на оси У Ру=
однофокусное с сходом на оси Ъ Рz=
Отображения
относительно плоскости Х=0 Ьх= М(От.) = Ъх 0 0 0" 0 -Ьу 0 0 0 0 - Ъ2 0 0 0 0 1
относительно плоскости У =0 Ьу=
относительно плоскости Ъ =0 bz=
относительно начала координат
Вращения
Вращение вокруг оси X а= М(Я^ а)) = '1 0 0 ео8 а зш а 0 - зш а соз а 0 0 0
Вращение вокруг оси У а= М(И(У, а)) = соз а зш а 0 - зш а соз а 0 0 0 1 0 0 0
Вращение вокруг оси Ъ а= М(ЩЪ, а)) = сое а 0 - вт а 0 1 0 - зт а 0 соз а 000
Вращение вокруг оси, проходящей через начало координат а= есть
Вращение вокруг произвольной оси а= есть
Отличительной особенностью программы является слабая зависимость времени работы программы от размерности исходного изображения, т.к. основная процедура нахождения матрицы преобразования выполняется для подматрицы 4x4 с последующим умножением на матрицу №4. Поэтому можно считать, что трудоёмкость программы пропорциональна времени перемножения двух матриц размерностью №4.
Программа может использоваться в геометрическом процессоре САПР для создания макросов типовых геометрических преобразований моделей проектируе-.
БИБЛИОГРДФИЧЕСКИЙ СПИСОК
1. Никулин Е.А. Компьютерная геометрия и алгоритмы машинной графики. - СПб.: БХВ-Петербург, 2003. - 560 с.
2. Роджерс Д., Адамс Дж. Математические основы машинной графики. - М.: Мир, 2001. - 604 с.
3. Ласло Майкл. Вычислительная геометрия и компьютерная графика на С++: Пер. с англ. -М.: Бином, 1997. - 304 с.
4. П орев В.Н. Компьютер пая графика. - СПб.: БХВ-Петербург, 2002. - 432 с.
5. Лисяк Н.К.,Лисяк В.В. Геометрическое моделирование в САПР: Учебное пособие. -Таганрог: Изд-во ТРТУ, 2005. - 82 с.
УДК 681.3
Н.Н. Орлов ПОСТРОЕНИЕ СВЯЗЫВАЮЩИХ ДЕРЕВЬЕВ С РАЗНОЙ ШИРИНОЙ ФРАГМЕНТОВ СОЕДИНЕНИЙ*
Введение. Технология производства интегральных схем (ИС) продолжает своё стремительное развитие и в ближайшие годы размер минимального топологи-
30 ., -
( ) 107.
размеры элементов ИС приводят к уменьшению мощности каждого активного компонента в отдельности и увеличению потребляемой мощности ИС в целом, за счет увеличения количества этих компонентов на кристалле. Это привело к тому, что задержки сигналов на межсоединениях доминируют над задержками на транзисторах, а рассеиваемая мощность становится определяющим фактором.
,
их топологии на этапе глобальной трассировки путём построения кратчайших покрывающих деревьев или деревьев Штейнера. Если ширина всех соединений одинакова, то их суммарная длина и занимаемая ими площадь, как критерии качества, являются идентичными и отличаются только умножением на константу -ширину проводника. Однако, как известно, ёмкость плоского конденсатора определяется как
С = е • е0 • $ / d , (1)
* Работа выполнена при поддержке: РФФИ (гранты № 07-01-00174, № 06-01-00272), РНП 2.1.2.3193, РНП 2.1.2.2238.