Метафайлы. Формирование файлов в формате DXF. Конвертированные файлы из AutoCAD в Delphi 7
Графический пакет, записывающий и читающий метафайлы, может использовать их для сохранения "откомпилированного кода" между отдельными сеансами работы. Файлы (*.DXF) обмена описаниями чертежей - основной источник документированной графической информации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 18.03.2009 |
Размер файла | 207,5 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.
Результат выполнения:
Подобные документы
Представление графической информации в компьютере. Графические форматы и их преобразование. Информационные технологии обработки графической информации. Формирование и вывод изображений. Файлы векторного формата и растровый графический редактор.
курсовая работа [1,0 M], добавлен 25.04.2013Преимущества использования AutoCAD, функциональные возможности и интерфейс программы. Команды и инструментальные средства, обеспечивающие точное и полное построение чертежей и моделей. Методы получения изображений примитивов в графической системе.
презентация [1,7 M], добавлен 14.11.2011Общие сведения о графической системе "AutoCAD". Описание чертежа и способ построения его в графической системе. Использование инструментов панелей рисования, редактирования и изменения размеров. Свойства инструмента "Зеркало" при построении шестерен.
курсовая работа [25,8 K], добавлен 28.12.2010Создание программы, которая позволяет пользователю задавать произвольную директорию, содержащую музыкальные файлы. Осуществление поиска или рекурсивного поиска файлов в этой директории и формирование csv-файла. Исправление тегов в музыкальных файлах.
курсовая работа [241,3 K], добавлен 13.02.2015Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.
презентация [184,3 K], добавлен 18.03.2014Общая характеристика и принцип работы системы AutoCAD, ее особенности, порядок запуска и завершения операций. Принципы управления системой AutoCAD, способы задания и выполнения команд, последовательность действий. Методика создания чертежей в AutoCAD.
лабораторная работа [14,9 K], добавлен 30.04.2009Разработка чертежа детали в 3D-формате в системе проектирования AutoCAD. Особенности процесса построения сложных пространственных моделей, использования функций и команд, связанных с 3D-графикой в среде AutoCAD. Результаты работы: пример чертежа детали.
отчет по практике [1,9 M], добавлен 16.06.2015Глобальные системы координат GDI. Отображение основных графических объектов. Основные и дополнительные средства для рисования линий. Растровые изображения и метафайлы. Обзор и создание зависимых и независимых от графического устройства битмапов.
лекция [498,8 K], добавлен 24.06.2009Создание приложения для просмотра графических файлов. Компоненты, объекты и операторы для отображения графической информации в библиотеке Delphi. Канва как область компонента для рисования и отображения изображений. Рисование пером, закрашивание кистью.
методичка [98,1 K], добавлен 19.06.2011Среда Borland Delphi и ее графические средства для построения фрактальных множеств. Разработка программы для построения изображения листа папоротника при помощи вероятностных распределений с использованием средств для отображения графической информации.
курсовая работа [1,3 M], добавлен 29.07.2013