Метафайлы. Формирование файлов в формате DXF. Конвертированные файлы из AUTOCAT в Delphi 7

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 19.03.2009
Размер файла 269,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Министерство образования Российской Федерации

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Факультет информационных технологий

Кафедра Начертательной Геометрии,

Инженерной и Компьютерной Графики

РЕФЕРАТ

по курсу компьютерной графики.

Метафайлы. Формирование файлов в формате DXF.

Конвертированные файлы из AUTOCAT в Delphi 7

Руководитель

____________Хазова С.В.

«___»_______________2006г.

Исполнитель

студент гр. 04 ИСТ-2

___________Антипова Т.В.

«___»_______________2006г.

Оренбург 2006

Метафайлы

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

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

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

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

Файлы описания чертежей

Еще один из возможных способов переноса графической информации -- файлы описания чертежей AutoCADа. Файлы (*.DXF) обмена описаниями чертежей содержат почти всю информацию, требуемую для воспроизведения чертежа. Это основной источник документированной графической информации. Первичный источник информации представляют файлы чертежей (*.DWG), однако их структура не подлежит публичному оглашению. Одним необходимым элементом, отсутствующим в DXF-файлах, является описание графических символов и шрифтов. Эти описания могут быть найдены в файлах графических символов и шрифта (SHX-файлы).

Секции DXF-файлов

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

секция заголовка (HEADER);

секция таблиц (TABLE),

секция блоков (BLOCKS);

секция объектов (ENTITIЕS).

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

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

тип линий (UNETYPE);

слой (LAYER),

шрифт (STYLE);

вид (VIEW).

Таблица типов линий LINETYPE задает типы линий, используемые в чертеже. Тип линии определяется с помощью команды LINETYPE. Общепринятыми являются следующие типы линий: пунктирная (DOT), штриховая (DASHED), тонкая (PHANTOM) и штрих пунктирная (DOTDASH). По умолчанию используется непрерывная линия (CONTINUOUS); этот тип линии всегда включается в DXF-файл. Подсекция типа линии - LINETYPE - содержит пример представления линии данного типа на чертеже. В этом примере изображение типа линии выполняется условно, с помощью знаков символьного кода ASCII.

Таблица слоев LAYER содержит определения для каждого слоя чертежа. Эта структура данных является основным источником получения информации о цвете, типе линий и их видимости. Создание слоев и присвоение им наименований осуществляется с помощью команды LAYER/NEW. Система AutoCAD всегда включает описание слоя 0 (слой, используемый по умолчанию). Наименование слоя 0 должно обрабатываться как символьная строка, а не как целочисленное значение. Это делает легким сравнения и позволяет сочетать числовые и символьные имена.

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

Таблица видов VIEW содержит список поименованных видов и точек наблюдения, добавленных во время сеанса работы с системой AutoCAD.

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

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

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

Синтаксический разбор DXF-файлов

В целом DXF-файл построен как структура данных, в которой используется соотношение маркер - значение. Маркер представляет собой целочисленное значение, обозначающее тип (целый, действительный или символьная строка) и основное назначение информации (имя, координаты или флажки), содержащейся в структуре данных. Зная тип следующего за маркером значения данных, вы можете передавать обработку соответствующей программе преобразования. Все значения вводятся как символы в коде ASCII. Преобразование этих значений в соответствующий внутренний формат представления зависит от ваших потребностей. В DXF-файле маркер и соответствующее ему значение помещаются на отдельных строках. Формат записи маркера соответствует применяемому в языке Фортран формату I3. Это означает, что маркер является целым числом, занимающим три символьных позиции. Выравнивание проводится по правой границе поля. Этот стандарт используется при выводе информации в системе AutoCAD, а также в некоторых прикладных программах. В системе AutoCAD при вводе информации из DXF-файлов, созданных при работе других прикладных программ, не требуется строгое соблюдение этого стандарта.
В AutoCADе применяется весьма строгая система маркеров, определяющих тип данных, что делает достаточно простым извлечение только тех данных, которые необходимы для последующей обработки. Но это также означает, что программы должны чрезвычайно корректно выполнять считывание и запись информации при работе с DXF-файлами. Фрагмент программы, предназначенный для распознавания структуры файлов, представляет собой простой цикл типа WHILE выполняемый до тех пор, пока не будет достигнут конец файла.

Маркеры DXF-файлов

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

Файлы *.DXF целиком строятся из простых пар “маркер-значение”. Например, объект LINE имеет, по крайней мере, пять пар “маркер-значение” (линия проведенная между точками [1.0,6.5] и [1.5,8.9]):

0

LINE

10

1.0

20

1.5

11

6.5

21

8.9

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

Таблица - Маркеры DXF-файла

Упорядоченные по значению маркеры

0-9 Строки (имена, атрибуты, текст)

10-59 Действ. числа (координаты, углы, расстояния)

60-70 Целые числа (флажки, счетчики и т.д.)

Считывание файлов формата DXF

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

Фирма Autodesk разработала структуру DXF-файлов таким образом, чтобы одна центральная программа управляла активизацией программ синтаксического разбора секций. Программа синтаксического разбора "разбивает на части" или выделяет части структуры так, чтобы можно было получить необходимую информацию. Синтаксический разбор DXF-файлов легче, чем разбор предложения на естественном языке. В DXP-файлах все секции начинаются с пары: маркер секции и метка. Когда программа обнаруживает одну из этих пар, то начинает поиск типа секции (информация об этом следует сразу за такой парой, ей предшествует маркер 2). В качестве примера представлен заголовок, используемый для объявления секции HEADER.

0

SECTION

2

HEADER

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

По установленным для DXP-формата правилам в файле также помечается конец секции. Признак конца секции служит для обрабатывающей программы сигналом передачи управления центральной программе синтаксического разбора. После чего центральная программа подготавливается к распознаванию очередной секции и вызову соответствующей программы разбора секций типа HEADER, TABLE, BLOCK или ENTITIES.

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

0

ENDSEC

Формирование файлов в формате DXF

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

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

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

0

EOF

Это единственные абсолютно необходимые строчки, которые должны присутствовать в DXF-файле с правильной структурой.

Текст программы:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, ExtDlgs, Menus;

type

TForm1 = class(TForm)

Image1: TImage;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

OpenPictureDialog1: TOpenPictureDialog;

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.N1Click(Sender: TObject);

begin

if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Close;

end;

end.

Результат выполнения:


Подобные документы

  • Создание программы, которая позволяет пользователю задавать произвольную директорию, содержащую музыкальные файлы. Осуществление поиска или рекурсивного поиска файлов в этой директории и формирование csv-файла. Исправление тегов в музыкальных файлах.

    курсовая работа [241,3 K], добавлен 13.02.2015

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

    дипломная работа [2,2 M], добавлен 21.06.2013

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

    контрольная работа [101,7 K], добавлен 22.06.2014

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

    курсовая работа [804,0 K], добавлен 08.01.2014

  • Обзор особенностей работы с программой Total Commander. Создание папок, копирование файлов на флеш-карту. Вызов контекстного меню. Определение структуры файлов. Переименование группы файлов. Помещение файлов в архив. Разделение архива на несколько частей.

    лабораторная работа [1,9 M], добавлен 08.04.2014

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

    контрольная работа [534,7 K], добавлен 11.01.2015

  • Индексирование в базах данных. Создание индекса, его типы, виды и структура. Индексы для последовательных файлов. Неупорядоченные и упорядоченные файлы. Типы хеширования, древовидные структуры для многомерных данных. Деревья квадрантов и их вершины.

    реферат [2,6 M], добавлен 19.06.2015

  • Появление операционной системы Windows 95. Правила присвоения имен файлам. Порядок хранения файлов на диске. Система хранения файлов и организации каталогов. Многоуровневая иерархическая файловая система. Полное имя файла. Иерархия папок Windows.

    презентация [103,0 K], добавлен 11.03.2015

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

    контрольная работа [17,9 K], добавлен 25.12.2010

  • Понятие процесса архивации файлов. Программы, осуществляющие упаковку и распаковку файлов. Защита информации от несанкционированного доступа. Самораспаковывающиеся архивы. Основные характеристики программ-архиваторов. Распространенные алгоритмы сжатия.

    презентация [801,6 K], добавлен 23.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.