автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Архитектура и базовые алгоритмы инструментального ядра графических САПР общего назначения

кандидата физико-математических наук
Малюх, Владимир Николаевич
город
Новосибирск
год
2005
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Архитектура и базовые алгоритмы инструментального ядра графических САПР общего назначения»

Автореферат диссертации по теме "Архитектура и базовые алгоритмы инструментального ядра графических САПР общего назначения"

Институт Систем Информатики им. А.П. Ершова СО РАН

На правах рукопис

Владимир Николаевич Малюх

Архитектура и базовые алгоритмы инструментального ядра графических САПР общего назначения

Специальность: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей.

Автореферат диссертации на соискание ученой степени кандидата физико-математических наук

Новосибирск-2005

Работа выполнена в Институте систем информатики СО РАН

Научный руководитель: Доктор технических наук, профессор

Балаганский Игорь Андреевич

Официальные оппоненты: Доктор физико-математических наук,

Дебелов Виктор Алексеевич Кандидат физико-математических наук Ушаков Дмитрий Михайлович

Ведущее предприятие: Институт Автоматики и

Электрометрии СО РАН.

Защита состоится 27 декабря 2005 г. в 16 часов на заседании диссертационного совета К003.032.01 в Институте Систем Информатики им. А.П. Ершова Сибирского Отделения РАН по адресу:

630090, пр. ак. Лаврентьева, 6.

С диссертацией можно ознакомиться в читальном зале библиотеки ИСИ СО РАН (пр. ак. Лаврентьева, 6).

Автореферат разослан 23 ноября 2005 г.

Ученый секретарь диссертационного совета К003.032.01

к.ф.-м.н.

Мурзин Ф.А.

2006-А . г глгм"

216^1

Общая характеристика работы

Актуальность темы. Системы автоматизированного проектирования (САПР) - одна из наиболее динамично развивающихся областей применения компьютеров. Непрерывное повышение производительности персональных компьютеров (ПК) сопровождающееся одновременным расширением возможностей средств разработки программного обеспечения являются ключевыми тенденциями, вызывающими практический интерес широкого круга пользователей средствам компьютерной графики и, в частности, системам геометрического моделирования и САПР. К настоящему времени созданы и находятся в эксплуатации десятки профессиональных систем геометрического моделирования, однако, их архитектура, структуры данных и методы организация взаимодействия данных, традиционно применяемые в них имеют ряд узких мест.

Существующие подходы к созданию моделей изделий в САПР требуют большого объема памяти для их хранения и значительны вычислительных затрат на проведение анализа, и решение оптимизационных задач. Каждая новая прикладная задача как правило решается путем разработки специализированных модулей для работы которых требуются структуры данных, не предусмотренные для обработки ядром системы, вследствие чего возникают коллизии в использовании ранее или параллельно разработанных модулей. Проблема усугубляется тем, что на этапе разработки базовой САПР достоверно не известны все задачи, для которых она будет применяться в будущем.

Диссертационная работа посвящена разработке архитектуры и выбору базовых алгоритмов инструментальной САПР общего назначения для создания смешанных функционально-геометрических моделей, с возможностью инкапсуляции разнородной, в том числе динамической, информации негеометрического характера в модели проектируемых объектов.

Целью работы является создание архитектуры инструментального ядра САПР и выбор базовых алгоритмических решений, обеспечивающих гибкое взаимодействие независимо разработанных приложений, разработка методов и средств для построения программных систем для синтеза, хранения, отображения и анализа функционально-геометрических моделей объектов, ориентированных на использование в расширяемых системах автоматизированного проектирования промышленных изделий.

Основная идея заключается в разработке универсальных средств инкапсуляции геометрических и функциональных описаний объектов,

методов хранения и отображения функциональных и геометрических характеристик моделируемого объекта в единой среде.

Основные задачи работы:

1. Построение архитектуры базовой САПР, обеспечивающей разработчикам проблемно-ориентированных приложений возможность моделировать проектируемые объекты как в виде геометрических так и в виде аналитических и эмпирических описаний и комбинаций этих описаний.

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

3. Разработать эффективные методы представления, хранения, внедрения в проектную базу данных и управления разнородными данными, статическими ресурсами и активных компонентами проблемно-ориентированных систем автоматизированного проектирования.

4. Разработать программный и пользовательский интерфейс для доступа к интегрированным функционально-геометрическим моделям.

5. Выработать требования и апробировать инструментальные средства проектирования и разработки активных компонент функционально-геометрических моделей.

Научная новизна работы: на основе анализа формальных моделей объектов, применяемых в САПР сформулированы принципы построения расширяемых функционально-геометрических описаний моделей:

1. Инкапсуляция в проектные данные геометрических, литеральных и функциональных описаний объектов.

2. Минимизация и унификация набора базовых геометрических представлений и используемых алгоритмов.

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

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

2. Предложенная технология обеспечивает внедрение активных компонент в статическую геометрическую модель.

3. Созданы методы разработки интегрированных проблемно-ориентированных программно-информационных комплексов.

4. Реализованы базовые и прикладные алгоритмы в виде законченных программных компонент, позволяющих разрабатывать прикладные системы автоматизированного проектирования.

Достоверность результатов подтверждается многолетним опытом создания, внедрения и использования прикладных САПР, построенных в соответствии с изложенными в работе принципами и методами. Личный вклад автора заключается в разработке архитектуры, выборе базовых алгоритмов инструментальной САПР, разработке технического задания на программную реализацию системы.

На защиту выносятся основные положения и результаты, сформулированные в заключении.

Апробация работы.

Разработана расширяемая среда для создания проблемно-ориентированных систем автоматизации выполнения проектных работ и, на ее базе, широкий набор специализированных прикладных систем для различных отраслей.

Результаты работы докладывались и обсуждались на Международной научно-технической конференции "Авангардные технологии, оборудование, инструмент и компьютеризация производства оптико-электронных приборов в машиностроении" (г. Новосибирск, НГТУ 1995), выставках "Компьютерная графика в архитектуре и дизайне" (г. Новосибирск, НАрхИ 1995), ежегодной международной выставке "Сибкомггьютер" (г. Новосибирск, ежегодно с 1995 г), международной выставке СеВГГ96 (Ганновер, ФРГ, 1996г), международной выставке 8МАи'97 (Милан, Италия, 1997г), научно-технических семинарах ИСИ СО РАН и кафедры газодинамических импульсных устройств НГТУ, международных конференциях ¡51САО-2004 и СггарЫсоп -2005.

На основе результатов исследовательских работ создана универсальная система автоматизированного проектирования ЬСАЕ) и на базе нее ряд прикладных систем:, которые используется в сотнях предприятий и организаций Российской Федерации, стран СНГ и дальнего зарубежья в частности:

Новосибирский филиал ОКБ им. Сухого

Институт Прикладной Физики , г. Новосибирск

Концерн БФК, г. Новосибирск

Завод Торгового Оборудования, г. Новосибирск

ГУП СК "Краевая техническая инвентаризация", г. Ставрополь

ЗАО «Первая мебельная фабрика», г. Москва.

Новосибирский Государственный Технический Университет

Iowa State University, США

University of Maryland, США

Altendorf GmbH, ФРГ.

Структура и объем работы

Диссертационная работа состоит из введения, четырех глав, заключения и приложения, содержит 85 страниц машинописного текста, 36 рисунков, список литературы из 28 наименований.

Содержание работы

Во введении дается обзор задач и программного обеспечения автоматизации проектирования, рассматриваются принципы построения САПР. В программном обеспечении САПР выделяются подсистемы построения и хранения расширяемых баз данных моделей и инструментальные средства их расширения.

Рассматриваются принципы организации баз данных известны САПР, отмечается многообразие подходов в построении САПР различного целевого назначения. В исторически сложившейся практике САПР традиционно изделие описывается как совокупность аппроксимированных геометрических моделей объектов. Синтез изделия как правило осуществляется путем расположения моделей элементов в пространстве и наложения набора параметрических связей между этими моделями их узлами. Изменение геометрического положения параметрических узлов приводит к перестройке моделей элементов, ссылающихся на эти узлы. В свою очередь анализ изделия сводится к анализу созданной геометрии, такой подход является весьма универсальным, но имеет ряд существенных недостатков.

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

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

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

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

В результате, традиционные подходы построения моделей изделий не позволяют полноценно использовать возможности современных технологий по синтезу и анализу проектов, также затрудняют создание проблемно-ориентированных систем комплексно функционально-геометрического моделирования.

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

Глава 1. Модели объекта в САПР.

Семантика моделей объектов

Функциональные модели объектов в САПР формируются на основе системы понятий прикладной области. Понятия как правило обозначены с помощью описаний на естественном языке. Эти описания выступают в данном контексте в роли знаков или имен, то есть заменителей материальных предметов и событий с целью их использования в системах накопления, хранения, переработки и передачи информации. Понятие может относиться как ко множеству однотипных объектов, так и к единичному объекту. Основными характеристиками понятия являются объем и содержание. Объемом понятия называют множество всех объектов, обладающих существенными признаками понятия. Содержание понятия есть совокупность всех его существенных признаков и свойств, позволяющих однозначно идентифицировать относительно других понятий.

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

Объекты, входящие в объем понятия, различают при помощи сравнения их признаков и свойств. Принято разделять признаки на три категории: дифференциальные, характеристические и валентные.

Дифференциальные признаки соответствуют описательным атрибутам объекта и используются как характеристики содержания понятия. Характеристические признаки соответствуют идентификаторам и указывающим атрибутам объекта. Эти признаки используются для идентификации конкретных объектов внутри объема одного понятия.

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

Агрегация понятий представляет собой порождение нового понятия путем составления его из ранее существующих в качестве его компонентов. Семантически агрегация выражается связью понятий как "часть-целое". Процесс обратный агрегации называется декомпозицией. В ходе декомпозиции исходное понятие расчленяют на множество в конечном итоге независимых понятий. Каждая такая компонента обладает лишь подмножеством признаков исходного понятия. Семантически абстракция декомпозиции выражается связью понятий "состоит из". Обобщение понятий есть способ порождения нового понятия путем выделения их общих признаков и игнорирования различительных (как правило более тонких и несущественных). В процессе обобщения происходит переход от понятий меньшего объема к понятиям большего объема с одновременным исключением из исходных понятий признаков, отличающих исходные понятия одно от другого. Для обобщения также возможен обратный процесс, носящий название специализации, заключающийся в делении исходного понятия на несколько более узких понятий. Абстракция обобщения семантически выражается отношением "есть некоторый".

Наиболее отличительной особенностью абстракции обобщения от агрегации является порядок наследования признаков обобщаемых понятий. Агрегация представляет прямолинейный синтез сложного понятия из простых, при этом новое понятие наследует ВСЕ признаки исходных понятий. При обобщении напротив понятия-категории наследуют признаки обобщенного понятия. При этом обобщенное понятие может иметь множество дополнительных признаков, определяемых его схемой. Такими признаками могут быть агрегатные функции типа среднее, количество, максимум, минимум и др. Совокупность этих признаков характеризуют понятие как класс. В конечном итоге, модель объекта представляет собой семантическую сеть, т.е. граф с помеченными узлами и ребрами. В узлах сети располагаются понятия. Понятия могут быть независимыми (изделие, материал и т.п.) и зависимыми (обозначения). Связи между понятиями могут относиться либо к виду "есть некоторый" (род-вид) либо "состоит из" (часть-целое). Связь типа род-вид может быть помечена именем (идентификатором) свойства родового понятия (например "вид изделия"). На связях типа "часть-целое" могут быть

установлены метки позволяющие определять характеристики конкретного объекта из понятия.

Понятие и структура объектов САПР

Для формулировки задачи необходимо определение понятия объекта CAD. Ниже опишем требования, которыми должны обладать объекты, являющиеся основой построения САПР. Объект

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

• Может инкапсулировать в себе другие объекты, называемые далее атрибутами.

• Некоторые атрибуты являются всего лишь ссылками на другие объекты и их атрибуты; такие атрибуты называются параметрами. Параметр может быть помечен как входной и/или выходной.

• Каждый объект имеет ассоциированный с ним метод Build (построить) для пересчета выходных параметров по текущим значениям входных. Этот метод также может осуществлять побочные действия, например, отображение объекта на устройстве вывода.

• Каждый объект имеет ассоциированный с ним набор методов, в частности: Build, (построить), Transform (трансформировать), Display, Write/Load для пересчета и отображения выходных параметров по текущим значениям входных. Эти методы также могут осуществлять побочные действия, например, отображение объекта на устройстве вывода (дисплей, файл, печатное устройство и др.).

Для построения подсистемы геометрического моделирования существенным является наличие в CAD-системе таких объектов как

• Двухмерные геометрические объекты (точка, отрезок, кривая)

• Трехмерные геометрические объекты (точка, отрезок, кривая, плоскость, поверхность, тело)

• Литеральные объекты (числа, строки, стили и т.п.)

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

разработчики прикладных САПР смогут создавать геометрические и поведенческие модели.

Ограничения

Ограничение есть разновидность базового объекта, которая связывает определенным образом другие объекты базы данных проекта, а также их атрибуты (при этом, само ограничение также может иметь атрибуты). Связанные ограничением объекты являются его параметрами. Таким образом, ограничение - это всего лишь новый идентификатор для уже имеющейся в системе функциональности. Ограничения по своей природе естественно делятся на:

• Геометрические, которые накладываются на пару геометрических объектов, и подразделяются на

о Топологические (инцидентность, касательность,

параллельность, перпендикулярность и т.д.)

о Измерения (длина, угол, возможно-, площадь и объем); величина измерения является параметром такого ограничения

о Кроме того, существует еще одна классификация геометрических ограничений: двухмерные и трехмерные

• Инженерные, которые могут связывать литеральные атрибуты произвольных объектов посредством:

о Математических уравнений и неравенств

о Технических таблиц

о Black-box функций (эмпирические формулы и уравнения ) о Смеси всего вышеперечисленного

• Прочие ограничения (кинематические, сборочные и т.д.) Исполнение системы ограничений обеспечивается универсальным решателем, являющимся частью основной системы. Возможность создания универсального решателя обеспечивается переводом системы литеральных объектов в систему традиционных алгебраических уравнений, которая затем решается методом недоопределенных вычислений.

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

Для надлежащей работы с ограничением нам в первую очередь необходимо развить понятие литерального объекта. С точки зрения структуры данных проекта литеральные объекты представляют собой шаблоны (template)

ограничений, хранящиеся как самостоятельные элементы базы данных. Основные литеральные объекты по типам делятся на:

• Символьные литералы - строки, в том числе так называемые ГО-литералы, принимающие любое символьное значение из заданного списка (например, тип материала).

• Целочисленные литералы (например, число шариков в подшипнике).

• Вещественно-значные литералы. Необходимы как для хранения и манипуляций со значениями физических величин и их соотношений (например, соотношения длин, площадей, масс, объемов, коэфф. упругости и т.д.), а также как база для таких литералов как единицы измерений (вещественное число с ассоциированной единицей измерения (площади, объема, массы, времени и т.п.)

Кроме типа, с каждым литералом также связано текущее значение и диапазон возможных значений (заданный перечислением или интервалом). Диапазон необходим для указания области «разумных» значений параметра в случае, когда это значение вычисляется посредством автоматического удовлетворения ограничений.

Геометрическое представление объектов.

В описываемой архитектуре САПР предлагается использовать максимально унифицированное описание геометрии объектов с одной стороны и изначально накладывающее как можно меньше ограничений на возможные варианты описываемых данных.

В качестве базового элемента геометрии используется пространственный композитный контур, представляющий собой сложный цельный объект, состоящий в общем случае из произвольной последовательности прямых, эллиптических дуговых и сплайновых сегментов. Сегменты, следующие друг за другом имеют одну и только одну общую точку. Контур может иметь свойство замкнутости. Такое представление достаточно традиционное для САПР, в описываемой реализации дополнено существенным расширением: в узлах контура могут бьггь определены условия сопряжения сегментов - угол и радиус. На базе такого универсального описания формируются частные случаи контурных объектов, как двумерных таки пространственных -окружности, эллипсы, прямоугольники, правильные многоугольники и т.п.

Рис.1 Композитный контур.

В качестве описания поверхностей выбран метод кинематического описания, заключающийся в том, что поверхности определяются набором образующих и направляющих контуров и способом их применения. В структуре данных, описывающих поверхность при таком описании, в отличие от традиционно принятых методов, разделены контекст построения, используемый для хранения и модификации информации о поверхности и ее аппроксимация, используемая для визуализации и, частично, для промежуточных вычислений. В качестве унифицированного набора избраны поверхности четырех основных кинематических классов (рис 2): поверхности протяжки (иоз а), поверхности Кунса ( поз Ь) поверхности вращения ( поз. с) и плоские поверхности (поз (1).

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

Рис.2 Классы поверхностей.

Способ аппроксимации поверхностей вынесен за рамки инструментального ядра и может быть выбран разработчиком приложений. На практике наиболее часто используются либо полигональная аппроксимация плоскими многоугольниками либо NURBS (Non-rational Uniform Bezier Spline). В программной реализации архитектуры с целью совместимости с другими системами используется дополнительный пятый класс поверхностей, содержащий только аппроксимированное описание поверхности без кинематического контекста.

Твердые тела описываются в рамках представляемой архитектуры комбинацией из граничного представления элементарных односвязных тел, т.н. BREP (Boundary REPresentation) и последовательностью булевых операций над ними, т.н. CSG-tree (Constrictive Solid Geometry Tree). Суть BREP-представления заключается в том, что твердое тело описывается замкнутая пространственная область, ограниченная набором элементарных тонких поверхностей (граней), с общими образующими контурами (ребрами) на границе поверхностей и признаком внешней или внутренней стороны поверхности а также следующим рядом операций, определенных над телами:

Рис.3 BREP-преставление твердого тела.

Для описания сложных тел, моделирующих объекты реального мира, получаемые обработкой материала или неразъемной сборкой используется иерархическая структура, описывающая последовательность применения булевых операций над набором элементарных твердых тел - так называемое CSG-дерево (Constructive Solid Geometry tree). Для составных твердых тел определены операции, дополняющие набор операций, обязательных для элементарных тел: вычитание, объединение, пересечение. Логическая структура проектных данных

Традиционно в САПР используется одна из двух систем группирования и разделения объектов проекта. Первая, с использованием т.н. слоев сложилась исторически по аналогии с чертежами, элементы которых вычерчены на нескольких листах прозрачного носителя. Такой подход позволяет эффективно и интуитивно ясно управлять видимостью элементов в сложных проектах. Следует оговорить, что под видимостью имеется ввиду понятие более широкое, нежели просто отображение объекта на носителе информации, а именно - набор динамически настраиваемых групповых прав доступа для произвольного набора объектов.

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

В полной мере достоинства обоих методов сочетает предлагаемы в настоящей работе комплексный подход, в котором в качестве основной структуры используется сборочная иерархия, а в качестве способа управления видимостью частей проекта как документа - модифицированная иерархия слоев. Суть модификации послойного подходи заключается в том, что любой из объектов сборочной иерархии (как геометрический, литеральный, так и собственно узел дерева) может ссылаться не на один слой а на произвольное

количество слоев одновременно. Таким образом расширяется количество возможных комбинаций выставляемых признаков видимости объектов.

—илои~

Слой

Иерархия проекта

в Project О Folder

I Entity 1 Entity 2

£3

-g

Folder 2 Sub Folder 1 SubFolder2 Entity.. Clone uone

Иерархия блока

В Project Q Folder

Entity 1— Entity 2

¿3- Folder 2

Sub Folder l

C) Sub Folder 2

Entity.

Рис.4 Логическая структура проекта. В результате внешние ссылки в предлагаемой архитектуре реализуются достаточно традиционным способом, путем сохранения в объекте вставки ссылки на расположение внешнего проекта с типовой внутренней структурой и, в целях достижения переносимости проектов и быстродействия базы данных проекта, кэширования экземпляра содержимого блока.

Глава 2. Организация и система управления прикладными данными в моделях объектов.

Инкапсуляция произвольных прикладных данных

Для создания прикладных систем ключевым моментом является наличие возможности расширять структуру базы данных проекта и их взаимодействие, насыщая ее прикладной информацией, заранее (на этапе разработки инструментальной системы) неизвестной структуры и поведения. В качестве решения этой задачи предлагается присоединять к стандартным объектам головной системы контейнеры, представляющие собой обычную байтовую последовательность произвольного размера, снабженную идентификатором. С этой точки зрения он подобен файлу на диске. Роль головной системы сводится к автоматическому сохранению контейнеров при записи и чтении проекта из файла, копировании и переносе объектов внутри проекта и при обмене между проектами.

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

производительность системы в плане поиска и доступа к данным. Однако в этом случае становится невозможно гарантировать отсутствие дублирования доступа к пользовательским данным со стороны независимо разрабатываемых прикладных систем. Для предотвращения использования контейнеров с данными другими приложениями каждый контейнер предлагается снабдить уникальным идентификатором, создаваемым инструментальными средствами. Для создания идентификаторов целесообразно использовать например технологию GUTO (Global Unique Identifier) гарантирующая всемирную уникальность 128-разрядных идентификаторов.

В простейшем случае применение вышеописанного метода внедрения прикладных данных в базу данных проекта позволяют создать пассивную J, расширяемую систему, в которой вся обработка прикладных данных

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

с.5 Структура работы с прикладными данными в пассивно расширяемой системе.

Расширение за счет инкапсуляции пассивных данных позволяет при небольших трудозатратах на разработку решать часть задач, в первую очередь связанных с постобработкой данных проекта, хранение в проекте специализированных прикладных данных, не предусмотренных разработчиками базовой САПР.

Инкапсуляция геометрических трансформируемых данных

В ряде случаев необходимо модифицировать геометрические данные приложений синхронно с редактирование объектов встроенными средствами и инструментами головной системы. Наиболее типичным случаем таких модификаций являются аффинные геометрические преобразования: смещение, поворот, масштабирование или зеркальное или осесимметричное отражение. В практике трехмерной графики и САПР применяемые к объектам геометрические трансформации выражаются обобщенной матрицей преобразований в однородных координатах, содержащей в своих элементах результат смещение, поворот и масштабирование.

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

Инструменты создания и модификации

Объект проекта |

Встроенные функции и мотадыядра

)~Г

БаЮеое описание геометрии

Литфапц^'й;

1

Прикладные , ГбОМвТрИЧОСКИв

[ Функции и метады • приложений

Рис.6 Структура работы с прикладными данными в полуактивной расширяемой системе.

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

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

Активные компоненты функциональной модели

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

Таким образом, при всяком интерактивном или программном изменении, вносимом в базу данных объекта, их перевычисление может производиться в соответствии с поведенческим алгоритмом, заложенным разработчиком приложений, что обеспечивает расширяемость функциональности базовой системы и обеспечивает корректную модификацию всех компонент объекта. Более того, в таблице подмены методов, реализующих объект могут быть переопределены не только методы изменяющие объект, но и , например, методы его отображения в зависимости от требуемого контекста - тем самым решаются вопросы генерализации и условных обозначений в ГИС и общеинженерных проектах, что принципиально расширяет возможности, предоставляемые разработчику прикладных систем.

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

Рис.7 Структура работы с прикладными данными в активной расширяемой системе.

Простейший механизм удовлетворения ограничений - это локальное распространение значений-, по известным входным параметрам вычисляются выходные, которые в свою очередь распространяются на другие ограничения (для которых данные объекты являются входными параметрами), вызывая их пересчет. Все это реализуется в схеме Build/Update. Однако у этого механизма есть ограничение, заключающееся в том, что с его помощью невозможно обрабатывать циклические зависимости. Любая же нетривиальная геометрическая задача циклична по своей сути. Поэтому более целесообразно использовать механизм специализированных решателей ограничений, внутри каждого из которых происходит глобальное удовлетворение ограничений. В свою очередь такой подход также имеет существенный недостаток заключающийся в том, что, как правило, глобально решить задачу удовлетворения всех ограничений, наложенных на

проектируемое изделие на практике невозможно - она слишком сложна и требует значительного объема вычислений. Такую задачу приходится разбивать на подзадачи, и обычно в САПР такое разбиение весьма стандартно: пользователю предлагается ряд отдельных приложений, с помощью каждого из которых он может специфицировать (и удовлетворить) ограничения только определенного типа.

Для преодоления недостатков вышеописанных методов предложен симбиоз локального распространения и глобального удовлетворения ограничений. В частности, механизм локального удовлетворения может быть использован для распространения интервалов значений, и в этом случае он может обрабатывать циклические зависимости, а глобальный поиск может искать решение внутри этих интервалов. Эффективность работы может быть достигнута созданием ряда специализированных решателей для типовых задач (например, двух - и трехмерные геометрические решатели, решатель кинематических ограничений, решатель black-box и т.п.), которые, однако, являясь интервальными, легко интегрируются в общую схему локального распространения, тем самым, допуская в ней наличие циклов. В любой из описанных выше механизмов может быть встроена возможность оптимизации любого параметра или набора параметров.

В главе 3 приводится техническое описание системы, программно реализующей предложенную архитектуру. Проектирование и разработка системы велись исходя из следующих общих технических требований к дизайну и внутренней организации программного обеспечения:

• по возможности независимое изменение исходных кодов и отладку частей

системы несколькими программистами одновременно

• возможность совместного использования значительной части исходных

кодов, как самой системой так и какими-либо иными уже существующими или будущими программными системами.

• возможность расширения функционала системы, без каких-либо

изменений исходных текстов базовой системы и соответственно перекомпиляции базового исполняемого модуля.

• возможность простой установки и регистрации новых расширений в уже

установленной у пользователя системы.

• как система так и расширения должны быть защищены от возможных

повреждений своих внутренних данных или нештатного поведения, в результате их несовместимости. Учитывая достаточно большие объемы данных, хранимые системой в оперативной памяти, и имеющиеся данные по способам работы пользователей с системой (по опыту предыдущей версии системы),

категорически неприемлемо аварийное завершения работы системы с потерей всех текущих данных, например, при возникновении нехватки памяти для завершения текущей операции. Следовательно, реализация системы спроектирована таким образом, что бы максимально защитить пользователя не только от потери, но и от нарушения целостности его данных при возникновении не фатальных исключительных ситуаций. Система проектировалась с использованием необходимой декомпозиции проекта в целом на набор слабо связанных библиотек. Для поддержания возможности расширения функционала и обеспечения гибкости конфигурирования системы под нужды различных категорий пользователей в системе объявлено несколько основных интерфейсов для системных и прикладных расширений. Реализовано несколько таких расширений в основном ориентированных на добавление чтения/записи дополнительных форматов хранения изображений, импорта/экспорта объектной модели в различные графические форматы а также реализации специализированных прикладных объектов. Реализация системных расширений в виде динамически подгружаемых библиотек (DLL) обеспечивает возможность независимой их разработки, отладки и распространения при условии неизменности интерфейса "система-расширение". Базовая библиотека поддержки интерфейса пользователя содержит механизм проверки на совместимость версий системы и расширения, основанный на проверке номеров версии и номеров сборки (build) системы и загружаемого расширения, и базовые механизмы настройки графических элементов управления под нужды пользователя.

В главе 4 приводятся технические описания ряда прикладных систем, созданных на базе предлагаемой архитектуры и организации модели данных. Описаны прикладные системы для создания проектов архитектурных сооружений, конструирования мебели и торгового оборудования, моделирования кинематики, сложных трубопроводных коммуникаций.

Дано подробное описание системы-прототипа ассоциативного параметрического геометрического моделлера на основе внешнего геометрического решателя.

В Заключении сформулированы основные результаты работы.

1. Разработана архитектура базовой САПР, обеспечивающая создание проблемно-ориентированных внешних приложений способных моделировать проектируемые объекты как в виде геометрических так и в виде аналитических и эмпирических описаний и комбинаций этих описаний.

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

3. Разработаны эффективные методы представления, хранения, внедрения в проектную базу данных и управления разнородными данными, статическими ресурсами и активных компонентами проблемно-ориентированных САПР.

4. Разработаны программный и пользовательский интерфейс для доступа к интегрированным функционально-геометрическим моделям.

5. Выработаны требования и апробированы инструментальные средства проектирования и разработки активных компонент функционально-геометрических моделей.

6. Реализовано наполнение проектов комплекса bCAD библиотеками функционально-геометрических моделей для ряда прикладных областей.

Публикации: Материалы диссертации изложены в работах:

1. Малюх В.Н. Программируем САПР на Java. «САПР и Графика», М. Изд-во Компьютер Пресс, № 12, 1998, с 65-67

2. Малюх В.Н. Разработка специализированных приложений в САПР bCAD. «Автоматизация проектирования», М., изд. РАН., № 2,2000 с15-18,

3. Бахтин И.Н., Малюх В.Н., Архитектура интерфейса прикладного программирования в САПР bCAD. "САПР и Графика" М. Изд-во Компьютер Пресс, №3, 2000, с 20-26.

4. Malukh V.N. Intelligent capabilities for small CAD systems: problems and perspectives. Сборник докладов на международной конференции isiCAD-2004, Новосибирск, июнь 2004, с. 311-312.

5. Malukh V.N., Nickitin A.G. Modern Architecture of light-weight CAD. Сборник докладов на международной конференции Graphicon -2005, Новосибирск, июнь 2005, с. 111-113.

(

ч

Отпечатано в ЗАО РИЦ «Прайс-курьер», т. (383) 330-7202, Адрес: г. Новосибирск, пр. ак. Лаврентьева, 6, офис 118. Заказ № 800, от 21.11.2005, тираж 100 экз.

»24761

РНБ Русский фонд

2006-4 27617

А

С