Извлечение данных из атрибутов (метод низкого уровня)
 
 
 

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

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

Для создания спецификации или отчета

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

ПримечаниеНеобходимо убедиться в том, что имена файла вывода атрибутов и файла шаблона атрибутов не совпадают.

Создание файла шаблона вывода атрибутов

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

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

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

BL:NAMECwww000 (Имя блока)

BL:LEVELNwww000 (Уровень вложенности блокаl)

BL:X Nwwwddd(Координата X точки вставки)

BL:Y Nwwwddd(Координата Y)

BL:Z Nwwwddd(Координата Z)

BL:NUMBERNwww000 (Счетчик блоков; один и тот же для блоков, вставленных по МВСТАВИТЬ)

BL:HANDLECwww000 (Метка блоков; одна и та же для блоков, вставленных по МВСТАВИТЬ)

BL:LAYERCwww000 (Имя слоя вставки блока)

BL:ORIENT Nwwwddd(Угол поворота блока)

BL:XSCALE Nwwwddd(Масштаб по X)

BL:YSCALE Nwwwddd(Масштаб по Y)

BL:ZSCALE Nwwwddd(Масштаб по Z)

BL:XEXTRUDE Nwwwddd(Составляющая X вектора выдавливания)

BL:YEXTRUDE Nwwwddd(Составляющая Y вектора выдавливания)

BL:ZEXTRUDE Nwwwddd(Составляющая Z вектора выдавливания)

numericNwwwddd (Числовой атрибут)

characterCwww000 (Символьный атрибут)

Шаблон может включать в себя все или некоторые из полей типа BL:xxxxxxx, перечисленных выше. Включенные в шаблон имена атрибутов задают, данные каких атрибутов (и, следовательно, каких блоков) включаются в файл вывода. Значения заданных в шаблоне, но не содержащихся в блоке атрибутов, заменяются пробелами (для символьных) или нулями (для числовых).

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

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

Поле

Символьные (C) или числовые (N) данные

Максимальная длина поля

Число десятичных знаков

Тип

C

040

000

Изготовитель

C

006

000

Модель

C

015

000

Цена

N

006

002

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

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

Ниже приведен пример простого файла шаблона для извлечения информации из атрибутов.

BL:NAME C008000 (Имя блока, 8 символов)

BL:X N007001 (Координата X, в формате nnnnnn.d)

BL:Y N007001 (Координата Y, в формате nnnnnn.d)

SUPPLIER C016000 (Фирма-изготовитель, 16 символов)

MODEL C009000 (Номер модели, 9 символов)

PRICE N009002 (Стоимость единицы, в формате nnnnnnnn.dd)

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

Создание файла вывода атрибутов

После создания файла шаблона пользователь может извлечь данные из атрибутов, сохранив их в файле вывода в одном из форматов:

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

Файл формата SDF также содержит по одной записи для каждого вхождения блока в чертеж. Поля каждой записи имеют фиксированную длину и не требуют ни разделителей, ни ограничителей символьных полей. Операция dBASE III Copy . . . SDF также формирует файлы в формате SDI. Операция The Append From... SDF позволяет читать файлы в формате dBASE IV, которые легко обрабатываются пользовательскими программами, написанными на языке FORTRAN.

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

Использование файла вывода атрибутов

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

Если при выводе с помощью шаблона применяется формат CDF, то файл вывода может иметь следующий вид:

'DESK', 120.0, 49.5, 'ACME INDUST.', '51-793W', 379.95

'CHAIR', 122.0, 47.0, 'ACME INDUST.', '34-902A', 199.95

'DESK', -77.2, 40.0, 'TOP DRAWER INC.', 'X-52-44',249.95

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

C:QUOTE c(Ограничитель символьной строки)

C:DELIM c(Разделитель полей)

Символ, следующий сразу (без пробела) за именем поля C:QUOTE или C:DELIM определяет соответственно ограничитель символьных строк или разделитель полей. Например, для того чтобы символьные строки заключались в кавычки, необходимо вписать в шаблон следующую строку:

C:QUOTE "

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

Если при выводе с помощью шаблона применяется формат SDF, то файл вывода может иметь следующий вид:

(NAME)

(X)

(Y)

(SUPPLIER)

(МОДЕЛЬ)

(PRICE)

DESK

120.0

49.5

ACME INDUST.

51-793W

379.95

CHAIR

122.0

47.0

ACME INDUST.

34-902A

199.95

DESK

-77.2

40.0

TOP DRAWER INC.

X-52-44

249.95

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

Вложенные блоки

Строка BL:LEVEL шаблона определяет уровень вложенности блока. Блок, вставленный в чертеж, имеет уровень вложенности 1. Вхождение блока, являющегося частью первого блока, имеет уровень вложенности 2 и т.д.

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

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

Обработка ошибок

Если заданная длина поля недостаточна для представления значения атрибута, то конец значения отсекается, затем появляется следующее сообщение:

** Переполнение в поле записи <номер_записи>

Подобная ошибка может произойти, например, если в шаблоне для поля BL:NAME указана длина поля 8, а в чертеже содержится имя длиной 10 символов.