На главную страницу TechnoCAD

Список публикаций

УДК 004.9:66.013.512

Компьютерная реализация возврата изменений в САПР для чертежа и для его параметрических представлений

В.В. Мигунов

Введение

Функции возврата случайно сделанных изменений предусматриваются в большинстве программ, предназначенных для работы с документами: текстовыми, табличными, графическими и другими. Парные команды "Отменить" и "Вернуть" защищают документы от случайной порчи при локальных или массовых изменениях и зачастую исключают большую рутинную работу. Общеизвестна полезность операции возврата в MS Word, MS Excel после глобальной замены текстовых фрагментов. В электронном чертеже польза функций возврата особенно наглядна, когда в результате массовой замены утрачивается отличительный признак элементов, который позволял выбрать их в чертеже автоматически: слой, цвет, тип линии, тип элемента и др.

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

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

1. Чертеж и его параметрическое представление

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

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

2. Возврат изменений в чертеже

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


Рис.1. Модель пошаговых изменений - транзакций


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

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


Рис.2. Общая структура одного шага изменения чертежа

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

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

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

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

3. Возврат изменений в параметрическом представлении чертежа

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

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

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

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

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

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

4. Общие и отличительные черты моделей возврата изменений

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

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

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

1. Дейт, К.Дж. Введение в системы баз данных.: Пер с англ. – 6-е изд. – Киев.: Диалектика, 1998. – 784с.

2. Копорушкин П.А., Партин А.С. Алгоритм расчета параметризованных геометрических объектов. / Электронный журнал "Исследовано в России", 2004, С.184-197. – http://zhurnal.ape.relarn.ru/articles/2004/018.pdf.

3. Мигунов В.В. TechnoCAD GlassX - отечественная САПР реконструкции предприятия//САПР и графика, 2004, № 4, С.78-86.

4. Мигунов В.В. Модульная технология разработки проблемно-ориентированных расширений САПР реконструкции предприятия//Известия Тульского государственного университета. Серия "Экономика. Управление. Стандартизация. Качество". - Вып. 1. - Тула: Изд-во ТулГУ, 2004. - С.56-66.

5. Мигунов В.В. Модуль в чертеже как основа технологии разработки проблемно-ориентированных расширений САПР//Тез. докл. XII Международной конференции по вычислительной механике и современным прикладным программным системам (ВМСППС'2003), 30 июня - 5 июля 2003 г., Владимир, т.2. – Владимир: ВГУ, 2003, С.473-474.

Сайт управляется системой uCoz