Теоретические основы и практические приложения компьютерной проверки решений конструктивных задач инженерной геометрии тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Бойков Алексей Александрович

  • Бойков Алексей Александрович
  • кандидат науккандидат наук
  • 2025, ФГБОУ ВО «Нижегородский государственный архитектурно-строительный университет»
  • Специальность ВАК РФ00.00.00
  • Количество страниц 218
Бойков Алексей Александрович. Теоретические основы и практические приложения компьютерной проверки решений конструктивных задач инженерной геометрии: дис. кандидат наук: 00.00.00 - Другие cпециальности. ФГБОУ ВО «Нижегородский государственный архитектурно-строительный университет». 2025. 218 с.

Оглавление диссертации кандидат наук Бойков Алексей Александрович

Введение

Глава 1. Теоретические основы и постановка задачи компьютерной проверки решений конструктивных задач инженерной геометрии

1.1. Особенности проверки электронных геометрических моделей на соответствие требованиям к их содержанию

1.2. Конструктивные геометрические модели и конструктивные задачи инженерной геометрии

1.3. Сравнение конструктивных задач инженерной геометрии и задач на построение

1.3.1. Геометрические задачи на построение и их особенности

1.3.2. Анализ особенностей представления решений и инструментов для решения конструктивных задач инженерной геометрии

1.3.3. Сравнение геометрических задач на построение и конструктивных задач инженерной геометрии

1.4. Анализ существующих методов компьютерной проверки решений конструктивных задач инженерной геометрии

1.4.1. Компьютерная проверка правильности КГМ применительно к решению технических задач

1.4.2. Компьютерная проверка конструктивных геометрических моделей в

образовании

Выводы по первой главе

Глава 2. Моделирование процесса проверки и разработка алгоритма проверки

решений конструктивных задач инженерной геометрии

2.1. Формализация проверки правильности решения конструктивной задачи инженерной геометрии

2.1.1. Модель решения конструктивной задачи инженерной геометрии

2.1.2. Формальное определение правильности решения конструктивной задачи инженерной геометрии

2.1.3. Моделирование процесса проверки решения

2.1.4. Общий метод проверки правильности решения конструктивной задачи инженерной геометрии

2.1.5. Алгоритм проверки решений конструктивных задач инженерной геометрии способом наложения

2.2. Представление объектов в проверяемой и эталонной моделях

2.2.1. Информационная модель простой фигуры

2.2.2. Определение правильности построения простых фигур

2.2.3. Определение правильности построения полифигур

2.2.4. Информационная модель динамической фигуры

2.3. Составление эталонов для проверки решений задач

2.3.1. Классификация множественных решений конструктивных задач инженерной геометрии

2.3.2. Проверка наличия в решении фигуры и группы фигур

2.3.3. Проверка альтернативных вариантов решения

2.3.4. Проверка правильности решения с учетом преобразования

2.3.5. Проверка неопределенных задач при помощи образцов фигур

2.3.6. Язык описания эталонов

2.3.7. Расширение возможностей языка описания эталонов (специальные фигуры)

2.3.8. Проверка с элементами параметризации

2.3.9. Проверка трехмерных моделей в граничном представлении

2.3.10. Создание эталонов для проверки решений задач

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

2.4.1. Определение комплексной меры различия фигур

2.4.2. Общий порядок работы проверяющей машины

2.4.3. Операторы выборки фигур и оценки меры различия

2.4.4. Пример проверки решения задачи

Выводы по второй главе

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

3.1. Подходы к организации компьютерной проверки решений конструктивных

задач инженерной геометрии

3.2. Этапы формирования проверяемой модели

3.3. Этапы формирования эталонной модели и некоторые виды эталонов

3.4. Блок сравнения проверяемой модели с эталонной

3.5. Представление результатов проверки

Выводы по третьей главе

Глава 4. Практическое применение алгоритмов компьютерной проверки решений конструктивных задач инженерной геометрии

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

4.1.1. Описание созданной программы проверки решений позиционных задач по теме «Точка, прямая, плоскость»

4.1.2. Описание созданной подсистемы проверки DXF-чертежей для использования в АОС с удаленным доступом

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

4.2.1. Поиск общих ошибок и оценка качества чертежа детали

4.2.2. Проверка чертежа и трехмерной модели детали на основе геометрических

данных электронного чертежа

Выводы по четвертой главе

Заключение

Список литературы

Приложение А. Акты о внедрении

Приложение Б. Свидетельства о регистрации программ на ЭВМ

Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Введение диссертации (часть автореферата) на тему «Теоретические основы и практические приложения компьютерной проверки решений конструктивных задач инженерной геометрии»

Введение

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

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

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

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

Степень разработанности темы. Инструменты проверки электронных чертежей и трехмерных компьютерных моделей в составе CAD/CAM-систем или в виде отдельных приложений являются частью коммерческих программных продуктов с закрытым кодом (AutoCAD, ADEM, CompareVidia, LEDAS Geometry Comparision и

др.) и выполняют поиск дефектов в геометрии, проверку пересечений (собираемость), пакетный «нормоконтроль» (проверка свойств объектов по шаблону).

Частные задачи проверки электронных чертежей решаются в работах Е.Е. Шмуленковой, С.И. Роткова и Д.Ю. Васина.

Организации проверки решений задач начертательной геометрии, планиметрии и инженерной графики посвящены работы В.В. Карабчевского (2002), С.А. За-друцкого (2003-2005), А.Н. Губанова (2003), А.Л. Хейфеца (2010), Е.Е. Шмуленковой (2010), Isotani и L.O. Brandao (2008), К. Goh и R. Мапао (2013) и др.

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

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

Объект исследования: Компьютерные геометрические модели и способы их представления.

Предмет исследования: Методы и алгоритмы компьютерной проверки геометрических моделей в формате векторных графических файлов.

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

Задачи исследования:

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

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

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

4. Выполнить экспериментальную отработку методов и алгоритмов компьютерной проверки для решения задач проектно-конструкторской деятельности, а также применительно к созданию АОС.

Научная новизна

1. Формализовано понятие правильности компьютерных геометрических моделей применительно к их содержанию, отличающееся тем, что проверяемая геометрическая модель рассматривается как решение некоторой конструктивной задачи инженерной геометрии (ИКЗ). Это позволяет задавать требования к содержанию проверяемой модели, как условия соответствующей ИКЗ.

2. Разработана эвристическая модель процесса проверки и метод формализации требований к содержанию проверяемой геометрической модели, отличающийся от известных тем, что эталон составляется из структурной и геометрической частей, а для сравнения эталон и проверяемая модель представляются в форме конструктивных геометрических моделей (КГМ), что существенно расширяет круг ИКЗ, правильность решения которых может быть проверена.

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

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

Практическая значимость

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

проверки компьютерных геометрических моделей на соответствие требованиям к их содержанию. В частности, созданы системы и инструменты: 1) Для оценки точности сплайновой аппроксимации закономерных поверхностей в CAD-системах. 2) Для поиска геометрических ошибок на электронных чертежах в формате DXF. 3) Для сравнения электронных чертежей в формате DXF и трехмерных моделей в формате IGES с предварительно размеченным электронным чертежом для определения возможности совместного использования деталей и узлов. 4) Для проверки решений задач из курса начертательной геометрии в формате DXF в составе СДО и в виде приложения.

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

3. Результаты работы внедрены на производстве (справка о внедрении АО «НПО Лавочкина» от 23.09.2024, акт о внедрении ООО «Ивтехсервис» от 15.03.17) и в учебный процесс (акты о внедрении ФГБОУ ВО «Ивановский химико-технологический университет» от 10.01.17, ФГБОУ ВО «Ивановский государственный политехнический университет» от 20.01.17, ФГБОУ ВО «Ивановский государственный энергетический университет» от 23.10.16) для проверки решений задач по курсу начертательной геометрии, инженерной и компьютерной графике. Получены свидетельства о регистрации программ для ЭВМ.

Методы исследования. Теоретическую базу исследования составляют: теория геометрических построений, аппарат конструктивного геометрического моделирования, математической лингвистики, аналитической и вычислительной геометрии. При создании программных систем использовались технологии языков программирования Object Pascal, Python, PHP, JavaScript, HTML, SVG и X3D.

Соответствие паспорту специальности 2.5.1. По своему содержанию диссертационная работа соответствует следующим пунктам научной специальности 2.5.1. «Инженерная геометрия и компьютерная графика. Цифровая поддержка

жизненного цикла изделий»:

П. 2. Теория и практика непрерывного и дискретного геометрического моделирования. Конструирование кривых линий, поверхностей и тел по заданным требованиям.

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

П. 9. Применение геометрических моделей и методов в информационных (включая геоинформационных) технологиях и системах.

На защиту выносятся:

1. Эвристическая модель проверки компьютерных геометрических моделей в векторном представлении (п. 6, 9).

2. Метод компьютерной проверки на основе структурного анализа проверяемой КГМ в соответствии с семантикой правильного решения, задаваемой эталонной КГМ, и реализующий его вычислительный алгоритм проверки (способ наложения) (п. 6, 9).

3. Функциональная модель систем компьютерной проверки решений ИКЗ. (п. 9).

4. Алгоритмы проверки точности сплайнового представления закономерных поверхностей и выбора точечного каркаса требуемой плотности (п. 2).

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

Апробация результатов исследований. Основные положения диссертации докладывались на конференциях:

- GraphiCon-2016 (г. Нижний Новгород), GraphiCon-2017 (г. Пермь), GraphiCon-2018 (г. Томск), GraphiCon-2019 (г. Брянск), GraphiCon-2021 (г. Нижний Новгород), GraphiCon-2024 (г. Омск);

- Международная научно-техническая конференция «Физико-техническая информатика» СРТ-2020, СРТ-2023, СРТ-2024 (г. Пущино);

- Международная научно-техническая конференция «Проблемы

машиноведения-2021» (г. Омск);

- Национальная научно-практическая конференция «Фундаментальные, поисковые, прикладные исследования и инновационные проекты-2024» (г. Москва);

- Международная научно-техническая конференция «Состояние и перспективы развития электротехнологии» (Бенардосовские чтения) (г. Иваново, 2007, 2011, 2015 гг.);

- Международная научно-практическая Интернет-конференция «Проблемы качества графической подготовки студентов в техническом вузе: традиции и инновации» (г. Пермь, 2015, 2016, 2017 гг.);

- Международная научно-практическая конференция «Инновационные технологии в инженерной графике: проблемы и перспективы-2018» (г Брест-г. Новосибирск);

- Всероссийский научно-методический семинар «Геометрия и графика» (г. Москва, 2012, 2018, 2024 гг.).

Публикации по теме диссертации. Основные материалы диссертации опубликованы в 30 статьях, в том числе 5 - в изданиях, рекомендованных ВАК по научной специальности 2.5.1 уровня К2, 2 - в изданиях, рекомендованных ВАК по смежным специальностям уровня К2, 4 - проиндексированы в Scopus. Получены 2 свидетельства о регистрации программ для ЭВМ.

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

Глава 1. Теоретические основы и постановка задачи компьютерной проверки решений конструктивных задач инженерной геометрии

1.1. Особенности проверки электронных геометрических моделей на соответствие требованиям к их содержанию

Использование технологий информационной поддержки жизненного цикла изделий (CALS - Continuous Acquisition and Lifecycle Support), позволяющих значительно ускорить процессы подготовки производства, эксплуатации наукоемких изделий, обслуживания и т. д., предъявляет особые требования к качеству электронных моделей ([15, 57, 102] и др.). Под электронной моделью понимают «высокоорганизованную систему геометрических сведений об изделии» [102] или «комплекс электронных массивов, удовлетворяющий требованиям национальных и международных стандартов, и содержащий геометро-графические, текстовые и расчетные данные о проектируемом и производимом изделии» [116]. Качество электронных моделей, под которым понимается соответствие их требованиям технического задания, производства, эксплуатации, развития предприятия и нормативной документации [15, 102], обеспечивается комплексом процедур, связанных с организацией процесса создания проектной информации, а также с организацией ее контроля. Значительную часть процедур, в ходе которых осуществляется контроль качества электронных моделей, составляет ручная проверка [15, 102], которая весьма трудоемка. В связи с этим особую актуальность приобретает разработка и создание средств и методов автоматизации проверки электронных геометрических моделей.

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

Пример 1.1. В ходе постепенного внедрения CALS-технологий в работу организации возникает необходимость перевода электронных чертежей в трехмерные модели. Хотя системы автоматического синтеза трехмерных моделей по изображениям существуют [116, 134], их возможности ограничены. К тому же эти системы не получили широкого внедрения в промышленности, поэтому, как правило, воссоздание трехмерных моделей по чертежам осуществляется вручную. Этот процесс

трудоемок, сопряжен с появлением ошибок (вероятность ошибки тем меньше, чем выше квалификация специалиста, но всегда остается). Методики контроля правильности модели, описанные в [15, 57, 102], требуют не только создания моделей всех деталей сборочной единицы, но и модели сборки. Очевидно, вся необходимая для проверки информация имеется на исходном электронном чертеже, и было бы достаточно сравнить трехмерную модель с моделью, представленной на нем. Такая проверка не требует обязательного синтеза трехмерной модели и может быть выполнена путем сравнения достаточного числа изображений трехмерной модели с изображениями чертежа, и, в значительной степени, может быть автоматизирована.

Пример 1.2. В создании проектной документации для сложных изделий могут участвовать разные коллективы специалистов [15, 102]. Их работа требует координации, в частности, возникает необходимость в согласовании формы и размеров узлов и деталей, чертежи и модели которых представлены в различных файлах. Здесь исходными данными являются чертежи или модели, элементы которых должны совмещаться с элементами создаваемых моделей. Для автоматизации такой проверки требуется способ, который позволил бы указать элементы исходной модели - точки, линии, поверхности, - затем соответствующие элементы проверяемой модели и правила совмещения. Причем, указание элементов исходной модели и правил совмещения требуется только при первой проверке. Каким-либо образом зафиксированная, эта информация далее может использоваться многократно.

Пример 1.3. Процедура нормоконтроля (ГОСТ 2.111) конструкторских документов (электронных чертежей) включает себя комплекс операций проверки, в числе которых проводится проверка графической части конструкторского документа, которая не может быть выполнена без «понимания» содержания (какую форму имеет изображенное изделие, какие виды, разрезы, сечения требуются, какая линия должна быть использована в том или ином случае и т. п. При этом всегда можно выделить изделия некоторого класса, проверка графической части которых осуществляется похожим, в целом, образом, а приемы проверки могут быть формализованы и автоматизированы, что позволило бы повысить точность и сократить время проверки.

Пример 1.4. В ходе проектных работ требуется создать модель некоторой

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

В рассмотренных примерах задача проверки носит не обобщенный характер, как, например, нормоконтроль AutoCAD [99] или поиск ошибок в трехмерных моделях T-Flex [10], но конкретный: правильность модели прямо зависит от ее содержания.

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

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

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

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

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

3. Условия задачи в самом общем случае могут быть представлены в словесной форме, в виде растрового изображения (отсканированный чертеж, фотография), электронного чертежа, электронной модели и т. п. Мы будем ограничиваться только электронным векторным представлением геометрических моделей. С другой стороны, как следует из примеров, электронные чертежи и трехмерные модели следует рассматривать наравне.

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

1.2. Конструктивные геометрические модели и конструктивные задачи инженерной геометрии

В ГОСТ 2.102 электронные чертежи и электронные модели четко разделяются («основными конструкторскими документами для деталей являются чертеж детали и/или электронная модель детали»). Как показано в [116], совокупность плоских изображений детали (сборочной единицы), может быть равноценна трехмерной электронной модели при условии использования несвязанных систем геометрического моделирования и машинной графики 2-го рода.

В настоящее время промышленных систем, работающих на основе геометрического моделирования и машинной графики 2-го рода, не существует. Тем не менее, разработаны алгоритмы и методы, которые позволяют осуществить синтез трехмерной модели по совокупности изображений [66, 116, 134] для широкого класса деталей, и есть примеры, наглядно демонстрирующие возможности управления 3D моделью объекта на основе манипуляции его изображениями. Так, в системе Т^1ех [10] при установлении двунаправленной ассоциативной связи между 3D-моделью и чертежом изменение размеров на чертеже приводит к изменению

модели, в системе «Симплекс» совокупности двумерных геометрических объектов могут быть использованы для автоматизированного решения пространственных геометрических задач - формирования геометрической модели сложной технической поверхности, моделирования пространственного движения механизма и др. [48], в работе [36] показываются принципы автоматизированного создания трехмерной модели детали на основе манипулирования плоским изображением.

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

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

Покажем, что такой подход, в целом, не противоречит концепции геометрической модели изделия в соответствии с ГОСТ 2.052. Геометрическая модель изделия состоит из геометрических элементов (ГЭ), которые делятся на две группы - ГЭ, образующие геометрию изделия, и ГЭ, образующие вспомогательную геометрию. Элементы вспомогательной геометрии (ГОСТ 2.052) «используются в процессе создания геометрической модели изделия». Очевидно, эту функцию могут выполнять автоматизированные диаграммы или номограммы [77, 85, 131], или, наоборот, конкурирующие гиперповерхности некоторого многомерного пространства [48, 84, 88]. Такая возможность в ГОСТ 2.052 явным образом не декларируется, и под ГЭ понимаются именованные геометрические объекты модельного пространства - точки, линии, плоскости, поверхности, геометрические фигуры, геометрические тела. Однако, рассматривая точки, прямые и линии некоторой опорной плоскости в качестве вспомогательной

геометрической модели, мы можем на основе методов начертательной геометрии, номографии и начертательной геометрии многомерного пространства при помощи только плоских ГЭ моделировать пространство любой размерности, и определять геометрию модели через проекционные связи с его элементами [33].

Представим КГМ решения задачи в виде кортежа я = <О, ^ G, А, Е>, где О - множество идентифицированных элементов (различаются значением ключ), составляющих решение, R - множество связей между объектами, G - множество видов связей (допустимые значения связи), А - множество видов объектов или алфавит (допустимые значения вида фигуры), Е - совокупность свойств пространства, в котором рассматриваются объекты О и связи R. Каждый элемент описывается четверкой о = <а, ключ, Р, ¥>, где а -символ вида объекта, Р - множество параметров, V - множество атрибутов в виде пар (название, значение). Каждая связь описывается четверкой г = <ц, о1, о2, У>, где q - символ вида связи, о1, о2 - ключи целевого и исходного объекта, V - множество атрибутов связи. Каждый элемент алфавита А описывается тройкой <а, Р0, V0>, где а - символ вида объекта, Р0 - множество параметров, У0 - множество атрибутов. Каждый элемент G описывается четверкой <ц, а1, а2, У0>, где q - символ вида связи, а1, а2 - символы целевого и исходного объекта, V0 - множество атрибутов связи.

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

Отметим, что компоненты G, А, Е одинаковы для всех решений (правильных и неправильных) данной задачи или некоторого класса задач, причем свойства пространства Е определяют алфавит А, и с алфавитом - состав возможных связей ^ Будем называть тройку J = А, Е> контекстом для некоторого класса задач.

Обобщенными фигурами будем называть КГМ вида ^ = <0, К^.

Дадим следующее определение.

Конструктивной задачей инженерной геометрии (ИКЗ) будем называть задачу, в которой требуется сформировать конструктивную геометрическую модель некоторой обобщенной фигуры А, если даны модели фигур В..., Вп, и условия Я}, ..., Як, связывающие А с В}, ..., Вп или элементы А между собой. В случае, когда модели фигур В}, ..., Вп изначально не даны, но дано их словесное или графическое описание, то конструктивная задача также требует формирования моделей всех фигур В}, ..., Вп по описанию.

Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Список литературы диссертационного исследования кандидат наук Бойков Алексей Александрович, 2025 год

/ / /

( 4

-k=4

-k=5

- k=6

-k=7

-k=8

----t=600

б)

4 5 6 7 8 9 10 11 12 Число фигур в решении, п

Рисунок 18. К проектированию блока 1: а - структура описания модели в формате DXF, б - оценка времени проверки для эталона, содержащего k терминалов (для to=0,001 с.), наихудший случай

Так, появление блоков (объект INSERT), ссылающихся на запись «pointObject» таблицы блоков, рассматривается как вставка соответствующих фигур. Текстовый элемент (объект MTEXT), начинающийся символом «=», заменяется элементом equalBlock (совпавшая проекция), а текстовый элемент, содержащий обозначение, - элементом captionObject, для последующего соединения с безымянной точкой или прямой в составе pointObject или lineObject.

Описанная процедура перевода формата DXF в КГМ выполняется в так называемом «однопроходном» режиме и служит для регистрации начального набора объектов, составляющих проверяемую модель. Не все фигуры могут быть сформированы полностью за один проход, они добавляются в особый список. В рамках

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

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

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

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

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

Оценим влияние числа элементов проверяемой модели и числа элементов в структуре эталона на время проверки.

Выполним оценку вычислительной сложности процедуры проверки [80] на

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

and (and (Ki, K2), and (K3, K4) ) ^ and (Ki, K2, K3, K4) Был получен эталон задачи типа ЗИ. Будем считать, что проверяемая модель содержит n фигур, каждая из которых может быть поставлена в соответствие терминалам K1 - K4. Тогда в процессе проверки элемент and выполнит перебор для всех комбинаций соответствий, причем в соответствие с K1 будут поставлены все n фигур, K2 - (n-1) фигура и т. д. В наихудшем случае для каждого терминала будет дополнительно рассмотрено пустое соответствие. Обозначим время сравнения терминала с фигурой за t0, тогда оценку времени проверки для наихудшего случая покажет следующее выражение:

T (n) = (n+1)n(n-1)(n-2)to = O(n4) (3.1)

Для kтерминалов оценка составит: T (n, k) = O(nk) (3.2)

На рисунке 18б показана зависимость времени проверки для случаев k=4... 8 терминалов и n=(k-1)...20 фигур (время сравнения фигур принято равным t0=0,001a). В качестве порогового выбрано значение 600 с, которое достигается для k=4 при n=29, для k=5 - при n=16, для k=6 - при n=11, для k=7. 9 - при n=9.

В наилучшем случае в соответствие с каждым терминалом эталона ставится точно один элемент, поиск которого (успешный или неуспешный), обозначим как q(n). Тогда оценка времени проверки для наилучшего случая покажет выражение:

T (n) = 4q(n) = O(q(n)) (3.3)

Для kтерминалов: T (n, k) = O(kq(n)) (3.4)

При использовании специальных методов геометрического поиска [111], время q(n) оценивается как O(n) (худший случай) и O(log n) (в среднем).

Таким образом, преобразование проверяемой модели, в ходе которого каждая пара фигур будет заменена фигурой более высокого уровня (n/2), и переход к эталону с вдвое меньшим числом терминалов (k/2) меняет оценки для наихудшего случая -T (n, k) = O(nk/2/^2k). Для наилучшего - T (n, k) = O^-q^)).

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

Таблица 8

Правила формирования элементов более высокого уровня и возможные ошибки

№ п/п Элементы чертежа Элемент модели Требования к элементам чертежа Возможные ошибки

1. Две точки чертежа Точка ol.x = o2.x, 0) нарушена проекционная

о1, о2 (ротЮ^еС), трехмерного ol.index = '1', связь;

о1.пате = о2.пате пространства (dg3d:point) o2.index = '2' 1) отсутствует проекция; 2) недопустимый индекс; 3) дублирование элемента; 4) обозначение (name) не соответствует точке е ('a', ..., 'z', 'X', .., 'Z', 'а', ..., 'а')

2. Точка чертежа о1 Проецирующая o2.dx=0, o1.x=o2.ax, 0) нарушена проекционная

(ротЮ^ес^ и прямая (o1.index = '1' и связь;

прямая чертежа о2 (dg3d:straight) o2.index = '2') или 1) недопустимый индекс;

(¡теО^ес^, о1.пате (o1.index = '2' и 2) дублирование элемента;

= о2.пате o2.index = '1') 3) обозначение (name) не соответствует прямой е ('A', ..., 'Z', 'x', ..., 'z', 'а', ..., 'а')

3. Две прямые чертежа Прямая общего (\o1.dx\>0 и 0) нарушена проекционная

о1, о2 (ИпеО^ес^, положения или \o2.dx\>0) или связь;

о1.пате = о2.пате уровня (\o1.dx\=0 и 1) отсутствует проекция;

(dg3d:straight) \o2.dx\=0), o1.index = '1', o2.index = '2' 2) недопустимый индекс; 3) дублирование элемента; 4) обозначение (name) не соответствует прямой е ('A', .., 'Z', 'x', .., 'z', 'а', .., 'а')

4. Прямая чертежа о1 Проецирующая o1.index = '1' или 1) недопустимый индекс;

(¡теО^ес(), плоскость o1.index = '2' 2) дублирование элемента.

о1.пате с ['а', ..., (dg3d:p¡ane)

'а']

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

уровня в ходе предварительной обработки проверяемой модели.

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

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

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

o3d_point (x, y, z, name, offset) - модель точки, заданной тремя координатами,

обозначенной символом name; offset - дополнительный вектор смещения локальной системы координат относительно абсолютного начала координат.

o3d_straight (x, y, z, dx, dy, dz, name, offset) - модель прямой, заданной начальной точкой и вектором; остальные параметры, как в предыдущем случае.

o3d_plane (a, b, c, d, name) - модель плоскости, заданной коэффициентами уравнения.

dg3d_point (ppl, pp2) - модель точки, заданной парой проекций. dg3d_straight_projecting (pp) - модель проецирующей прямой, заданной проекцией. dg3dplane_projecting (sp) - модель проецирующей плоскости, заданной проекцией. dg3d_straight_2p (p3d1, p3d2, name) - модель прямой, заданной парой точек. dg3d_straight (spl, sp2) - модель прямой, заданной парой проекций. dg3d_plane_3p (p3d1, p3d2, p3d3, name) - модель плоскости, заданной тремя точками и др.

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

В таблице 9 показаны состояние проверяемой модели (фрагменты) по мере завершения отдельных шагов предварительной обработки и список помеченных ошибками объектов. Из 47 элементов модели в формате DXF после нормализации остается 26, а после фильтрации общих ошибок и извлечения фигур более высокого уровня - 13. Из таблицы видно, что разрозненные элементы LINE, POINT и MTEXT соединяются в составе элементов pointObject и lineObject (строки 1и 2 ^ 10; 3 и 4 ^ 11; 7 и 8 ^ 18), обозначения совпавших элементов группируются (атрибут equals в строках 12, 14 и 15).

На этапе формирования моделей точек, прямых и плоскостей проекции соединяются в составе элементов 3d:point, 3d:straight и 3d:plane (строки 12 и 13 ^ 26, 12 ^ 27, 14 и 15 ^ 28). В строках 32 и 33 показаны безымянные прямые, сформированные по условию прохождения через соответствующие точки.

^^ в)

Рисунок 19. Результат работы блока формирования проверяемой модели: а - чертеж в окне редактора AutoCAD, б - модель после чтения файла, нормализации и фильтрации, в - результат визуализации модели после формирования фигур более высокого уровня Кроме формирования проверяемой модели и сокращения числа ее элементов блок предварительной обработки реализует функции проверки, которые можно охарактеризовать как проверку общих (формальных) правил, которым должна удовлетворять проверяемая модель. Общим правилам свойственна независимость от условий конкретной задачи, поэтому большинство входящих в состав САПР инструментов проверки [10, 15, 45, 47, 99, 102, 146, 147, 151, 168] реализуют именно эту функцию.

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

предварительной обработки.

Таблица 9

Элементы проверяемой модели на различных этапах предварительной обработки

№ Ключ Параметры элемента

Элементы модели после чтения файла в формате DXF

1 #0 LINE ax=94.2270, ay= -53.7162, bx=-82.5476, by=-53.7162

2 #1 MTEXT text= 'x 1.2', x=-74.3436, y=-56.6121

3 #2 POINT x=44.2270, y=-53.7162

4 #3 MTEXT text= 'O', x=48.5376, y=-44.9390

5 #4 POINT x=-49.2052, y=-23.1581

6 #5 POINT x=-49.2052, y=-82.4561

7 #44 POINT x=-4.9403, y=-13.7602

8 #45 MTEXT text= '1 2', x=-0.5444, y=-7.5614

9 #46 MTEXT text= '1 1', x=-0.5444, y=-79.4152

Всего 47 элементов

Элементы модели после блока нормализации и фильтрации

10 #0 lineObject name= 'x 1.2', ax=-82.5476, ay=-53.7162, bx=94.2270, by=-53.7162

11 #1 pointObject name= 'O', x=44.2270, y=-53.7162

12 #2 pointObject name= 'A 2', equals=['s 2'], x=-49.2052, y=-23.1581

13 #3 pointObject name= 'A 1', x=-49.2052, y=-82.4561

14 #4 pointObject name= 'B 2', equals=['t 2'], x=-17.5742, y=8.5753

15 #5 pointObject name= 'B 1', equals=['t 1'], x=-17.5742, y=-62.2454

16 #23 line ax=-49.2052, ay=-23.1581, bx=-4.9403, by=-13.7602

17 #24 pointObject name= '1 1', x=-4.9403, y=-82.4561

18 #25 pointObject name= ' 1 2', x=-4.9403, y=-13.7602

Всего 26 элементов

Элементы модели, помеченные ошибками в блоке фильтрации

19 #4 рошЮ^ей пате= 'В 2', equals=['t 2'], х=-17.5742, у=8.5753 - Ошибка 1.4. Обозначение Ч 2' не соответствует точке

20 #5 рошЮ^еС; пате= 'В 1', equals=['t 1'], х=-17.5742, у=-62.2454 - Ошибка 1.5. Обозначение Ч 1' не соответствует точке

21 #8 рошЮ^еС; пате= 'D 1', х=89.8596, у=-77.6557 - Ошибка 1.0. Нарушена проекционная связь

Таблица 9 (Продолжение)

№ Ключ Параметры элемента

22 #9 ротЮЬ^еС пате= ^ 2', х=89.4206, у=-53.7162 - Ошибка 1.0. Нарушена проекционная связь

23 #11 ротЮЬ^еС пате= 'Е 2', х=107.9562, у=-11.4239 - Ошибка 1.3. Дублирование обозначения 'Е 2'

24 #10 рошЮ^еС пате= 'Е 2', х=107.9562, у=9.7780 - Ошибка 1.1. Отсутствует вторая проекция 'Е 1'

25 #14 рошЮ^еС пате= 'А' 2', х=-71.1290, у=-17.1463 - Ошибка 1.1. Отсутствует вторая проекция 'А' 1'

Всего 7 помеченных элементов

Элементы модели после извлечения фигур более высокого уровня

26 #0 3d:point пате= 'А', х=93.4323, у=28.7399, z=30.5580

27 #1 3d:straight пате= V, х=93.4323, у=0, z=30.5580, dx=0, ёу=1, dz=0

28 #2 3d:point пате= 'В', х=61.8012, у=8.5291, z=62.2915

29 #3 3d:point пате='С', х=26.5666, у=64.8949, z=-3.5527E-14

30 #4 3d:plane пате= 'omega', а=-0.4398, Ь=0, с=0.8980, d=-15.2357

31 #5 3d:straight пате= 'п', х=0, у=43.2530, z=16.9648, ¿х=0.8980, ау=-0, dz=0.4398

32 #11 3d:straight х=0, у=79.2598, z=-12.1411, dx=-0.8161, dy=0.4413, dz=-0.3729

33 #12 3d:straight х=0, у=28.7399, z=50.3948, dx=0.9781, dy=0, dz=-0.2076

Всего 13 элементов

3.3. Этапы формирования эталонной модели и некоторые виды эталонов

Рассмотрим подробнее функциональный блок 2 (рисунок 16а) системы компьютерной проверки. Его структура показана на рисунке 20.

Как показано в п. 2.3, эталон объединяет геометрическую и структурно-логическую информацию. Из двух способов создания геометрической информации (путем описания в виде текста или путем построений) более естественным является второй, поэтому формирование набора фигур, которые прямо или косвенно будут определять геометрические свойства целевых фигур, также будем выполнять средствами геометрического редактора (блок 2.1 схемы). Этот предварительно сформированный набор в виде векторного графического файла должен пройти обработку (блок 2.2), подобную той, которой подвергается решение (п. 3.2). В отличие от решения эталонная модель не допускает ошибок (такой файл будет отклонен), но и не требует, в общем случае, сложных процедур синтеза моделей элементов более

высокого уровня, поскольку такие элементы могут быть замещены в векторном файле блоками и макроэлементами (п. 2.3.10).

Рисунок 20. Структура функционального блока формирования эталонной модели

Полная структура эталона может быть восстановлена (блок 2.3) из текстового описания на специальном языке (п. 2.3.6). Принципы работы, структура и методы создания подобных трансляторов подробно освещены в работах по теории синтаксического анализа и компиляции ([12, 142] и др.). Другая возможность связана с использованием в геометрической части эталона специальных элементов или комбинаций, которые на этапе предварительной обработки замещаются не только особыми терминалами, как показано в п. 3.2, но и нетерминалами. Вообще, если структура эталона может быть представлена на языке, описанном в п. 2.3.6, с использованием любых терминалов и нетерминалов, за исключением макроэлементов, то она может быть задана в графической форме с помощью фигур-заместителей.

Рассмотрим пример (рисунок 21) геометрической части эталона, в которой нетерминалы замещены специальными блоками (рамка с надписью and и transform), а подчиненные связи показаны линиями-выносками.

При первом проходе элементы формата DXF - блоки и линии-выноски, текст которых начинается символом «#», - замещаются элементами nonterminalObject и linkOb-ject, соответственно (таблица 10, строки 7-9). Во время второго прохода для элементов linkObject определяются опорные объекты (на которые указывает стрелка) и объекты-владельцы (внутри которых располагается текст выноски), в качестве которых могут выступать только элементы nonterminalObject; эта информация фиксируется в виде матриц или списков инцидентности [86, 173] (таблицы 11-12) и после завершения второго

прохода преобразуется в КГМ (таблица 10, строки 10-23).

Таким образом, поскольку число блоков-заместителей, как и правил их преобразования в элементы структуры эталона не ограничено, этот способ позволяет представить любой эталон на языке, описанном в 2.3.6 (исключая макроэлементы).

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

Для ЗИ все фигуры геометрической части эталона помещаются в общий нетерминал and, для ЗСР этот нетерминал дополнительно помещается в transform, определитель преобразования которого связывается некоторым умолчанием (например, в качестве элементов определителя берутся элементы pointObject). Для ЗК фигуры геометрической части эталона предварительно разбиваются на группы (компоненты модели),

Рисунок 21. Эталон, структура которого задана фигурами-заместителями

каждая из которых помещается в and и transform, как в случае с ЗСР. Наконец, использование двух и более файлов с эталонами служит для формирования нетерминала or, то

есть эталона типа ЗАЭ или вариантов ЗСР и ЗК с альтернативными составляющими.

Таблица 10

Элементы проверяемой модели на различных этапах формирования структуры эталона

№ Кл юч Символ (тип) Параметры и атрибуты

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

1 #0 lineObject name= 'n 2', ax=296.2370, ay=107.3747, bx=335.2550, by=159.5784

2 #1 lineObject name= 'n 1', ax=315.2599, ay=32.7554, bx=337.7054, by=74.6334

3 #2 pointObject name= 'M 2', x=330.8663, y=153.7067

4 #3 pointObject name= 'M 1', x=330.8663, y=61.8734

5 #4 lineObject ax=262.7529, ay=143.0951, bx=322.1810, by=98.6775

6 #5 lineObject ax=262.7529, ay=78.6748, bx=350.3285, by=78.6748

7 #73 nonterminal- Object symbol= 'and', left=122.2784, top=144.9799, right=169.7062, bottom=117.5974

8 #74 linkObject text= '#', textX=129.5143, textY=133.1380, baseX=166.2819, baseY=100.8935

9 #75 linkObject text= '#', textX=135.7634, textY=141.4800, baseX=166.2819, baseY=185.7939

Всего 76 элементов (28 элементов 1тЮ^вс()

Элементы модели после блока формирования структуры

10 #73 and

11 #62 transform det=[#14 (A 1), #16 (C 1), #3 (M 1), #15 (B 1)], level=0

12 #52 and

13 #14 pointObject name= 'A 1', x=243.1997, y=95.5320

14 #16 pointObject name= 'C 1', x=322.1810, y=78.6748

15 #15 pointObject name= 'B 1', x=298.4948, y=47.8610

16 #9 lineObject ax=243.1997, ay=95.5320, bx=322.1810, by=78.6748

17 #13 lineObject ax=243.1997, ay=95.5320, bx=298.4948, by=47.8610

18 #12 lineObject ax=298.4948, ay=47.8610, bx=322.1810, by=78.6748

19 #1 lineObject name= 'n 1', ax=315.2599, ay=32.7554, bx=337.7054, by=74.6334

20 #3 pointObject name= 'M 1', x=330.8663, y=61.8734

21 #61 transform det=[ #17 (A 2), #18 (B 2), #2 (M 2), #19 (C 2)] , level=0

22 #43 and

23 #17 pointObject name= 'A 2', x=243.1997, y=134.2020

Всего 21 элемент

Список инцидентности элементов Н^ОЬ/вС и опорных объектов

Ключ Опорный элемент Ключ Опорный элемент

#44 #17 (pointObject, name= 'A 2') #59 #1 (lineObject, name= 'n 1')

#45 #18 (pointObject, name= 'B 2') #60 #3 (pointObject, name= 'M 1')

#46 #2 (pointObject, name= 'M 2') #63 #43 (nonterminalObject, symbol= 'and')

#47 #19 (pointObject, name= 'C 2') #64 #52 (nonterminalObject, symbol= 'and')

#48 #10 (lineObject) #65 #14 (pointObject, name= 'A 1')

#49 #8 (lineObject) #66 #16 (pointObject, name= 'C 1')

#50 #0 (lineObject, name= 'n 2') #67 #3 (pointObject, name= 'M 1')

#51 #11 (lineObject) #68 #15, (pointObject, name= 'B 1')

#53 #14 (pointObject, name= 'A 1') #69 #17 (pointObject, name= 'A 2')

#54 #16 (pointObject, name= 'C 1') #70 #18 (pointObject, name= 'B 2')

#55 #15 (pointObject, name= 'B 1') #71 #2 (pointObject, name= 'M 2')

#56 #9 (lineObject) #72 #19 (pointObject, name= 'C 2')

#57 #13 (lineObject) #74 #62 (nonterminalObject, symbol= 'transform-0')

#58 #12 (lineObject) #75 #61 (nonterminalObject, symbol= 'transform-0')

Таблица 12

Список инцидентности объектов-владельцев и элементов Н^ОЬ/вС

Ключ владельца Список исходящих элементов linkObject

#43 #44, #45, #46, #47, #48, #49, #50, #51

#52 #53, #54, #55, #56, #57, #58, #59, #60

#61 #63, #69, #70, #71, #72

#62 #64, #65, #66, #67, #68

#73 #74, #75

Проиллюстрируем сказанное. На рисунке 22 приведен пример эталона. Рассмотрим автоматическое формирование эталона типа ЗК, причем признаком компонент будут служить индексы проекций точек и прямых.

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

включается в ее состав. Процесс останавливается, если на очередной итерации ни одна фигура не была включена в состав ни одной компоненты. Множество исходных фигур, таким образом, разделяется на три группы - элементы компонент 1 и 2 и остальные (в примере нет). Каждая фигура в эталоне рассматривается как целевая или вспомогательная. Вспомогательные фигуры при проверке игнорируются. Целевые фигуры (об этом свидетельствует особый слой 'RESULT, к которому отнесена фигура) должны обязательно быть включены в состав какой-то компоненты, иначе эталон отклоняется. В таблице 13 показан результат разделения модели, представленной на рисунке 22.

/V < X -- © <3> О 1 ,/ Si ■> 1 л га Й |1!|Н Briber

м \ .г :Ы © V В2 V т

в W 1н i_h f К К П 2 ■4 с,

© W 17 -+> X

•V А А Ы А А D т п,

Рисунок 22. Пример эталона, структура которого формируется автоматически

После разделения элементы, помеченные слоем 'RESULT', включаются в состав нетерминалов and и transform; эталон формируется такой же, как в предыдущем случае.

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

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

Таблица 13

Разделение элементов эталонной модели на компоненты для задачи типа ЗК

Компонента 1 Компонента 2

После включения элементов, имеющих индексы в обозначении

#3 pointObject name= 'C 1', x=322.1810, y=78.6748, layer= 'RESULT' #0 pointObject name= 'C 2', x=322.1810, y=98.6775, layer= 'RESULT'

#4 pointObject name= '2 1 ', x=304.8409, y=56.1168, layer= '0' #1 pointObject name= 'B 2', x=298.4948, y=159.3512, layer= 'RESULT'

#5 pointObject name= '1 1', x=262.7529, y=78.6748, layer= '0' #2 pointObject name= 'A 2', x=243.1997, y=134.2020, layer= 'RESULT'

#9 pointObject name= 'B 1', x=298.4948, y=47.8610, layer= 'RESULT' #6 pointObject name= '1 2' x=262.7529, y=143.0951, layer= '0'

#10 pointObject name= 'A 1', x=243.1997, y=95.5320, layer= 'RESULT' #7 pointObject name= 'M 2', x=330.8663, y=153.7067, layer= 'RESULT'

#12 lineObject name= 'n 1', ax=320.2045, ay=41.9808, bx=332.6629, by=65.2253, layer= 'RESULT' #8 pointObject name= '2 2', x=304.8409, y=143.0951, layer= '0'

#13 pointObject name= 'M 1', x=330.8663, y=61.8734, layer= 'RESULT' #11 lineObject name= 'n 2', ax=299.9388, ay=112.3275, bx=341.4468, by=167.8628, layer= 'RESULT'

Всего 7 элементов Всего 7 элементов

После добавления элементов без индекса (1 итерация)

#14 line ax=320.9627, ay=51.8035, bx=324.4635, by=49.9272, layer= '0' #16 line ax=330.8663, ay=144.9894, bx=330.8663, by=153.7067, layer= '0'

#15 line ax=330.8663, ay=61.8734, bx=330.8663, by=70.5906, layer= '0' #23 line ax=304.0327, ay=117.8048, bx=307.7383, by=115.0352, layer= '0'

#20 line ax=304.8409, ay=56.1168, bx=304.8409, by=64.8341, layer= '0' #25 line ax=298.4948, ay=150.6339, bx=298.4948, by=159.3512, layer= '0'

#27 line ax=243.1997, ay=95.5320, bx=322.1810, by=78.6748, layer= 'RESULT' #26 line ax=243.1997, ay=134.2020, bx=322.1810, by=98.6775, layer= 'RESULT'

#29 line ax=262.7529, ay=78.6748, bx=328.7379, by=43.3087, layer= '0' #28 line ax=243.1997, ay=134.2020, bx=298.4948, by=159.3512, layer= 'RESULT'

#32 line ax=259.6221, ay=78.6748, bx=330.6777, by=78.6748, layer= '0' #30 line ax=255.7445, ay=143.0951, bx=308.2512, by=143.0951, layer= '0'

#34 line ax=298.4948, ay=47.8610, bx=322.1810, by=78.6748, layer= 'RESULT' #31 line ax=262.7529, ay=143.0951, bx=322.1810, by=98.6775, layer= '0'

Таблица 13 (Продолжение)

Компонента 1 Компонента 2

#36 line ax=322.1810, ay=78.6748, bx=322.1810, by=87.3921, layer= '0' #33 line ax=298.4948, ay=159.3512, bx=322.1810, by=98.6775, layer= 'RESULT'

#37 line ax=243.1997, ay=95.5320, bx=243.1997, by=104.2492, layer= '0' #35 line ax=243.1997, ay=125.4847, bx=243.1997, by=134.2020, layer= '0'

#40 line ax=243.1997, ay=95.5320, bx=298.4948, by=47.8610, layer= 'RESULT' #38 line ax=322.1810, ay=89.9602, bx=322.1810, by=98.6775, layer= '0'

#42 line ax=262.7529, ay=78.6748, bx=262.7529, by=87.3921, layer= '0' #39 line ax=304.8409, ay=134.3778, bx=304.8409, by=143.0951, layer= '0'

#41 line ax=262.7529, ay=134.3778, bx=262.7529, by=143.0951, layer= '0'

Всего 18 элементов Всего 19 элементов

После добавления элементов без индекса (2 итерация)

#17 line ax=319.1609, ay=48.4417, bx=320.9627, by=51.8035, layer= '0' #18 line ax=305.0707, ay=111.4661, bx=307.7383, by=115.0352, layer= '0'

#19 line ax=267.5741, ay=78.6748, bx=267.5741, by=83.0334, layer= '0' #21 line ax=262.7529, ay=138.7365, bx=266.9615, by=138.7365, layer= '0'

#24 line ax=267.5741, ay=78.6748, bx=267.5741, by=83.0334, layer= '0' #22 line ax=266.9615, ay=138.7365, bx=266.9615, by=143.0951, layer= '0'

Всего 21 элемент Всего 22 элемента

3.4. Блок сравнения проверяемой модели с эталонной

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

Выполним оценку работы алгоритма проверки на примере решения задачи о построении проекций треугольника и перпендикуляра (см. с. 63). Эталон и пример решения показаны на рисунке 23. Для сравнения значения координат именованных фигур представлены в таблице 14. Эталонная модель разделяется на компоненты по индексам проекций элементов, как показано в п. 3.3. Проверяемая модель проходит все шаги предварительной обработки, описанные в 3.2, кроме формирования моделей фигур трехмерного

пространства, затем также разделяется на компоненты.

Отметим важное достоинство разделения проверяемой и эталонной моделей на компоненты. В п. 3.2 приведены формулы (3.2), (3.4) для оценки вычислительной сложности процедуры проверки для задачи типа ЗИ. Для ЗСР, формулы примут вид:

- для наихудшего случая - Т (п, к, т) = 0(пкт) (3.5)

- для наилучшего случая - Т (п, к, т) = 0(кт^(п) т) (3.6) где п - число элементов проверяемой модели, к - число терминалов в эталоне, т

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

Рисунок 23. Эталон и пример решения к задаче из примера 2.2

В случае ЗК все множество нетерминалов эталона делится на компоненты, причем и оценка для наихудшего случая составит:

Т(п, к, т) = 0(ЕпР™) (3.7)

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

Т(п, к, т) = 0(Еп?™) (4.8)

- причем п=Хщ. Используя неявное разделение всех элементов эталонной и проверяемой моделей по типам, то есть выполняя поиск точек среди точек и прямых среди прямых (число последних не превышает 4 для каждой компоненты), для рассматриваемого эталона можно получить следующую оценку для наихудшего случая:

Т (п, к, т) = О(Хп^)

Параметры элементов эталонной и проверяемой моделей

Эталонная модель Проверяемая модель

#0 pointObject name= 'C 1', x=94.7361, y=129.7574 #0 pointObject name= 'C 1', x=233.43913, y=41.5190

#1 pointObject name= 'A 1', x=12.7361, y=129.7574 #1 pointObject name= 'A 1', x=151.4391, y=41.5190

#2 pointObject name= 'B 1', x=72.7361, y=99.7574 #2 pointObject name= 'B 1', x=211.4391, y=11.5190

#3 pointObject name= 'M 1', x=108.7361, y=129.7574 #3 pointObject name= 'M 1', x=247.4391, y=41.5190

#4 lineObject name= 'n 1', ax=87.2606, ay=86.8064, bx=110.6674, by=133.6201 #4 lineObject name= 'n 1', ax=225.3429, ay=-2.6732, bx=258.3817, by=63.4042

#5 lineObject name= 'n 2', ax=84.4622, ay=154.7545, bx=110.5612, by=194.3863 #5 lineObject name= 'n 2', ax=219.1500, ay=96.1559, bx=254.3732, by=149.6429

#6 pointObject name= 'C 2', x=94.7361, y=152.6149 #6 pointObject name= 'C 2', x=233.4391, y=100.1134

#7 pointObject name= 'M 2', x=108.7361, y=191.6149 #7 pointObject name= 'M 2', x=247.4391, y=139.1134

#8 pointObject name= 'A 2', x=12.7361, y=206.6149 #8 pointObject name= 'A 2', x=151.4391, y=154.1134

#9 pointObject name= 'B 2', x=72.7361, y=206.6149 #9 pointObject name= 'B 2', x=211.4391, y=154.1134

Комбинации определителя эталона задаются элементами pointObject эталона и проверяемой модели. В каждой компоненте таких элементов 4 (Ai, Bi, Ci, Mi), что позволяет сформировать 16 комбинаций, из которых при наличии правильно построенных элементов 2-4 эквивалентны. То есть имеется 13-15 различных комбинаций, из которых одна имеет вес 2-4, а оставшиеся - 1, их можно считать «случайными» и отбросить. Таким образом приходим к окончательной «наихудшей» оценке: T (n) = O(Znf).

Рассмотрим процесс проверки для элементов компоненты 1. Комбинации определителей и найденные значения смещений приведены в таблице 15. Элемент transform инициирует проверку в подчиненном нетерминале and с матрицей преобразования, имеющей вес 4 (параметры преобразования показаны выделением). В элементе and осуществляется поиск соответствий для подчиненных терминалов, каждый из которых, прежде чем начать сравнение с элементами решения, сдвигается с найденными параметрами. В таблице 16 показаны элементы эталона до и после сдвига, поставленные им в соответствие элементы решения и значения мер. Как видно из таблицы,

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

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

Рассмотрим случай, когда чертеж построен неверно. В частности, проекции точки B смещены влево на 1 мм, проекция C2 смещена вниз на 1 мм.

Такие изменения влекут за собой в ходе решения также изменение A1B1, A2B2, A2C2, B2C2, n1, n2. Комбинации определителей и значения смещений для этого случая показаны в таблице 17, а результаты сопоставления - в таблице 18.

Полученные результаты подтверждают правильность изменения поведения проверяющей машины при изменении входных данных.

Был проведен ряд экспериментов, подобных рассмотренному выше, которые подтвердили правильность поведения проверяющей машины при проверке решений задач введенных во второй главе типов ЗИ, ЗАЭ, ЗСР и ЗК, что, в целом, подтверждает соответствие результатов проверки ожидаемым для эталонов, содержащих комбинации из нетерминальных элементов and, or, transform и instance.

Таблица 15

Расчет значений преобразования для элементов компоненты 1

№ Элемент эталона Элемент решения Смещение AX Смещение AY № Элемент эталона Элемент решения Смещение AX Смещение AY

1 C 1 C 1 138.7030 -88.2384 9 B 1 C 1 160.7030 -58.2384

2 C 1 A 1 56.7030 -88.2384 10 B 1 A 1 78.7030 -58.2384

3 C 1 B 1 116.7030 -118.2384 11 B 1 B 1 138.7030 -88.2384

4 C 1 M 1 152.7030 -88.2384 12 B 1 M 1 174.7030 -58.2384

5 A 1 C 1 220.7030 -88.2384 13 M 1 C 1 124.7030 -88.2384

6 A 1 A 1 138.7030 -88.2384 14 M 1 A 1 42.7030 -88.2384

7 A 1 B 1 198.7030 -118.2384 15 M 1 B 1 102.7030 -118.2384

8 A 1 M 1 234.7030 -88.2384 16 M 1 M 1 138.7030 -88.2384

Результаты сопоставления элементов компоненты 1

№ Элемент эталона Элемент после сдвига Элемент решения Значение меры

1 pointObject name='C 1', x=94.7361, y=129.7574 pointObject name='C 1', x=233.4391, y=41.519 pointObject name='C 1', x=233.4391, y=41.519 7.3206Е-27

2 pointObject name='A 1', x=12.7361, y=129.7574 pointObject name='A 1', x=151.4391, y=41.519 pointObject name='A 1', x=151.4391, y=41.519 5.0487Е-29

3 pointObject name='B 1', x=72.7361, y=99.7574 pointObject name='B 1', x=211.4391, y=11.519 pointObject name='B 1', x=211.4391, y=11.519 4.0389Е-27

4 pointObject name='M 1', x=108.7361, y=129.7574 pointObject name='M 1', x=247.4391, y=41.519 pointObject name='M 1', x=247.4391, y=41.519 7.3206Е-27

5 lineObject name='n 1', ax=87.2606, ay=86.8064, bx=110.6674, by=133.6201 lineObject name='n 1', ax=225.9636, ay=-1.4319, bx=249.3704, by=45.3817 lineObject name='n 1', ax=225.3429, ay=-2.6732, bx=258.3817, by=63.4042, 0

a=-0.0228, b=0.0114, c=1 a=-0.0044, b=0.0022, c=1 a=-0.0044, b=0.0022, c=1

6 line ax=72.7361, ay=99.7574, bx=94.7361, by=129.7574 line ax=211.4391, ay=11.519, bx=233.4391, by=41.519 line ax=211.4391, ay=11.519, bx=233.4391, by=41.519 0

7 line ax=12.7361, ay=129.7574, bx=94.7361, by=129.7574 line ax=151.4391, ay=41.519, bx=233.4391, by=41.519 line ax=151.4391, ay=41.519, bx=233.4391, by=41.519 0

8 line ax=12.7361, ay=129.7574, bx=72.7361, by=99.7574 line ax=151.4391, ay=41.519, bx=211.4391, by=11.519 line ax=151.4391, ay=41.519, bx=211.4391, by=11.519 0

3.5. Представление результатов проверки

Рассмотрим подробнее структуру блока представления результатов проверки (рисунок 24). Результаты проверки могут быть обобщенными или детальными.

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

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

1) где произошла ошибка;

2) в чем заключается ошибка.

В рассматриваемой модели процесса компьютерной проверки можно выделить

три основных источника информации об ошибках в проверяемой модели:

Рисунок 24. Структура функционального блока формирования проверяемой модели

Таблица 17

Расчет значений преобразования для элементов компонент 1 и 2

№ Эле- Эле- Смещение Смеще- № Эле- Эле- Смещение Смещение

мент мент ре- АХ ние АY мент мент ре- АХ АY

эталона шения эталона шения

Компонента 1 Компонента 2

1 С 1 С 1 138.7029 -88.2383 17 С 2 С 2 138.7029 -53.5015

2 С 1 А 1 56.7029 -88.2383 18 С 2 М 2 152.7029 -13.5015

3 С 1 В 1 115.7029 -118.2383 19 С 2 А 2 56.7029 1.4984

4 С 1 М 1 152.7029 -88.2383 20 С 2 В 2 115.7029 1.4984

5 А 1 С 1 220.7029 -88.2383 21 М 2 С 2 124.7029 -92.5015

6 А 1 А 1 138.7029 -88.2383 22 М 2 М 2 138.7029 -52.5015

7 А 1 В 1 197.7029 -118.2383 23 М 2 А 2 42.7029 -37.5015

8 А 1 М 1 234.7029 -88.2383 24 М 2 В 2 101.7029 -37.5015

9 В 1 С 1 160.7029 -58.2383 25 А 2 С 2 220.7029 -107.5015

10 В 1 А 1 78.7029 -58.2383 26 А 2 М 2 234.7029 -67.5015

11 В 1 В 1 137.7029 -88.2383 27 А 2 А 2 138.7029 -52.5015

12 В 1 М 1 174.7029 -58.2383 28 А 2 В 2 197.7029 -52.5015

13 М 1 С 1 124.7029 -88.2383 29 В 2 С 2 160.7029 -107.5015

14 М 1 А 1 42.7029 -88.2383 30 В 2 М 2 174.7029 -67.5015

15 М 1 В 1 101.7029 -118.2383 31 В 2 А 2 78.7029 -52.5015

16 М 1 М 1 138.7029 -88.2383 32 В 2 В 2 137.7029 -52.5015

Результаты сопоставления элементов компонент 1 и 2

№ Элемент эталона Элемент после сдвига Элемент решения Мера

Компонента 1

1 pointObject name='C 1', x=94.7361, y=129.7574 pointObject name='C 1', x=233.4391, y=41.519 pointObject name='C 1', x=233.4391, y=41.519 7.3206E-27

2 pointObject name='A 1', x=12.7361, y=129.7574 pointObject name='A 1', x=151.4391, y=41.519 pointObject name='A 1', x=151.4391, y=41.519 5.0487E-29

3 pointObject name='B 1', x=72.7361, y=99.7574 pointObject name='B 1', x=211.4391, y=11.519 pointObject name='B 1', x=210.4391, y=11.519 1

4 pointObject name='M 1', x=108.7361, y=129.7574 pointObject name='M 1', x=247.4391, y=41.519 pointObject name='M 1', x=247.4391, y=41.519 7.3206E-27

5 lineObject name='n 1', ax=87.2606, ay=86.8064, bx=110.6674, by=133.6201 lineObject name='n 1', ax=225.9636, ay=-1.4319, bx=249.3704, by=45.3817 lineObject name='n 1', ax=225.6055, ay=-1.4203, bx=258.6442, by=63.5558 0.1061

a=-0.0228, b=0.0114, c=1 a=-0.0044, b=0.0022, c=1 a=-0.0044, b=0.0022, c=1

6 line ax=72.7361, ay=99.7574, bx=94.7361, by=129.7574 line ax=211.4391, ay=11.519, bx=233.4391, by=41.519 line ax=210.4391, ay=11.519, bx=233.4391, by=41.519 0.6298

7 line ax=12.7361, ay=129.7574, bx=94.7361, by=129.7574 line ax=151.4391, ay=41.519, bx=233.4391, by=41.519 line ax=151.4391, ay=41.519, bx=233.4391, by=41.519 0

8 line ax=12.7361, ay=129.7574, bx=72.7361, by=99.7574 line ax=151.4391, ay=41.519, bx=211.4391, by=11.519 line ax=151.4391, ay=41.519, bx=210.4391, by=11.519 0.2054

По компоненте 1 1.9413

Компонента 2

9 lineObject name='n 2', ax=84.4622, ay=154.7545, bx=110.5612, by=194.3863 lineObject name='n 2', ax=223.1651, ay=102.2529, bx=249.2642, by=141.8847 lineObject name='n 2', ax=219.3066, ay=97.1703, bx=254.5297, by=149.6848 0.1401

a=0.0573, b=-0.0377, c=1 a=-0.0064, b=0.0042, c=1 a=-0.0064, b=0.0043, c=1

10 pointObject name='C 2', x=94.7361, y=152.6149 pointObject name='C 2', x=233.4391, y=100.1134 pointObject name='C 2', x=233.4391, y=99.1134 1

11 pointObject name='M 2', x=108.7361, y=191.6149 pointObject name='M 2', x=247.4391, y=139.1134 pointObject name='M 2', x=247.4391, y=139.1134 0

12 pointObject name='A2', x=12.7361, y=206.6149 pointObject name='A2', x=151.4391, y=154.1134 pointObject name='A2', x=151.4391, y=154.1134 7.2701E-27

Таблица 18 (Продолжение)

№ Элемент эталона Элемент после сдвига Элемент решения Мера

13 pointObject name='B 2', x=72.7361, y=206.6149 pointObject name='B 2', x=211.4391, y=154.1134 pointObject name='B 2', x=210.4391, y=154.1134 1

14 line ax=72.7361, ay=206.6149, bx=94.7361, by=152.6149 line ax=211.4391, ay=154.1134, bx=233.4391, by=100.1134 line ax=210.4391, ay=154.1134, bx=233.4391, by=99.1134 1

15 line ax=12.7361, ay=206.6149, bx=72.7361, by=206.6149 line ax=151.4391, ay=154.1134, bx=211.4391, by=154.1134 line ax=151.4391, ay=154.1134, bx=210.4391, by=154.1134 0

16 line ax=12.7361, ay=206.6149, bx=94.7361, by=152.6149 line ax=151.4391, ay=154.1134, bx=233.4391, by=100.1134 line ax=151.4391, ay=154.1134, bx=233.4391, by=99.1134 0.6897

По компоненте 2 3.8298

В целом для решения 5.7712

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

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

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

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

• в виде векторного графического файла с соответствующими пометками

геометрических элементов;

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

Сведения о невозможности сформировать элементы модели представляют собой список прочитанных в исходном файле фигур, помеченных или не помеченных ошибками при распознавании того или иного элемента нормализованного представления. Для файла в неподходящем формате этот список, очевидно, пуст. Сведения о результатах сравнения содержат список элементов эталона и сведения о сопоставлении этих элементов с элементами проверяемой модели, значение меры различия и т. д. Каждый элемент проверяемой модели, помимо значений параметров и атрибутов, сохраняет историю формирования. Так, если две пары элементов TEXT и POINT исходного файла с ключами #1 и #2, #3 и #4, соответственно, были соединены в пару элементов pointObject, которые затем вошли в состав общего 3d:point, то история формирования последнего содержит все ключи # 1-#4. Эти ключи позволяют для каждой ошибки на поздних этапах проверки восстановить связь с элементами исходного графического файла.

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

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

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

соединены в пару элементов pointObject, которые вместе образуют элемент 3d:point, и в блоке сравнения с эталоном для него зарегистрирована ошибка. В случае прямой интерпретации все они будут помечены ошибкой. Пусть также при решении задачи одна проекция точки осталась без обозначения, - в блоке фильтрации обозначенная проекция будет помечена ошибкой (отсутствует вторая проекция) и исключена. Блок сравнения с эталоном пометит точку, как отсутствующую. Система сообщит о двух ошибках (отсутствует проекция, не построена точка), вместо одной - отсутствует обозначение.

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

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

Блок 4.2 формирует визуально-текстовую схему результатов проверки, которая включает в себя изображение модели с визуальными пометками и полный список ошибок. В разрабатываемой системе для создания изображения модели используется технология векторной графики в формате SVG [172]. Модуль формирования изображения

представляет собой совокупность подпрограмм, генерирующих для отдельных типов элементов SVG-описания, визуализация которых выполняется браузером автоматически. Подпрограммы формируют SVG-описания элементов предметной области (pointObject, lineObject), элементов формата файла (MTEXT, POINT и др.) и специальных маркеров, что позволяет совмещать сведения обо всех типах ошибок. В качестве примера приведем SVG-описание для элемента с ключом #1 (таблица 14): <g id="1">

< circle cx="12.7361507462" cy= "136.34754925" r= "'2" class="result-signs"></circle> <text class= "smallText" x= "7.02283306516" y= "135.609941083"> <tspanfont-size="10">A<tspanfont-size="5">1</tspan></tspan> </text></g> Координата x элемента остается неизменной, а координата y пересчитывается по формуле y' = height - y, поскольку направление координаты y в формате SVG и DXF противоположны по знаку (height - высота SVG-области). Главная подпрограмма модуля генерирует SVG-описание области (холста), в которой отображаются элементы, с поддержкой функций интерактивного приближения/отдаления и сдвига. На рисунках 4а-б, 20б приведены примеры изображений, сгенерированных данным модулем.

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

Для отображения трехмерной модели используется технология трехмерной графики в формате X3D [179]. Модуль формирования изображения также представляет собой совокупность подпрограмм, генерирующих для отдельных типов элементов X3D-описания, визуализация которых выполняется браузером автоматически при использовании бесплатной библиотеки x3dom [181]. В качестве примера приведем X3D-описание элемента (строка 26 таблицы 11):

<transform translation='0 30.558079106182 28.739953063887> <shape><appearance> <material diffuseColor='0 01'></material></appearance>

<sphere radius='3.73729324795'></sphere></shape></transform> <transform translation='0 40.032665602082 28.739953063887> <shape><appearance><material diffuseColor='0 01 ></material> </appearance> <text string= 'A' solid='false' ccw='true' usegeocache='true' lit= 'true >

<fontstyle family='&#39;Times&#39;' size='12' horizontal='true' lefttoright='true' spacing= 1' style='PLAIN' toptobottom='true' quality= '2 /> </text></transform >

Поскольку направление координатных осей формата X3D отличается от принятого для двухкартинного чертежа, при формировании Х30-описаний координаты пере-считываются: x '=width - x, y' = z, z'=y. Главная подпрограмма модуля генерирует X3D-описание области со встроенной навигацией, в которой отображаются элементы. На рисунке 19в приведен пример изображения, сгенерированного данным модулем.

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

• в разделе переменных берется значение $HANDSEED (первый свободный ключ);

• в набор слоев (секция TABLES, таблица LAYER) вставляется слой «Error Elements» с ключом $HANDSEED (значение увеличивается на 1), число слоев увеличивается;

• при обработке секции геометрических элементов все, помеченные ошибкой, помещаются в слой «Error Elements» (таблица 19, столбцы 1-2, слой показан выделением);

• после ошибочного элемента вставляется (один раз для каждой ошибки) элемент MTEXT с текстом ошибки и ключом $HANDSEED (таблица 19, столбец 3, сгенерированный ключ показан выделением), значение $HANDSEED увеличивается на 1;

• в разделе переменных записываемого файла значение $HANDSEED заменяется на текущее, равное ключу последнего вставленного элемента + 1.

На рисунке 25 показан пример сгенерированного файла DXF. Исходный файл и помеченные ошибки показаны на рисунке 20а-б.

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

Рисунок 25. Пример файла DXF с пометками

Изменение исходного элемента и вставка нового в формате DXF

Таблица 19

Изменение слоя элемента Вставка элемента с текстом ошибки Примечание

Старый элемент Измененный элемент

1 2 3 4

Code Value Code Value Code Value

0 POINT 0 POINT 0 MTEXT Тип

5 215 5 215 5 28A Ключ

330 1F 330 1F 330 1F

100 AcDbEntity 100 AcDbEntity 100 AcDbEntity

8 0 8 Error Elements 8 Error Elements Слой

100 AcDbPoint 100 AcDbPoint 100 AcDbMText

10 -17.57420180476151 10 -17.57420180476151 10 -18.0 X

20 8.575351877692641 20 8.575351877692641 20 9.0 Y

30 0.0 30 0.0 30 0.0 Ъ

1 Текст ошибки Текст

Выводы по третьей главе

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

создании систем проверки геометрических моделей, электронных чертежей и их частей в соответствии с теми или иными практическими задачами.

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