Корректировка свойств примитивов средствами алгоритмического языка

Раздел BLOCKS

Раздел TABLES

Раздел HEADER

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

Раздел TABLES DXF-файла содержит несколько таблиц, каждая из которых в свою очередь содержит переменное число входов в таблицу. Порядок расположения таблиц может меняться, но таблица LTYPE всегда будет предшествовать таблице LAYER. Каждая таблица начинается с группы 0 с меткой "TABLE". За ней следует группа 2 с названием конкретной таблицы (VPORT, LTYPE, LAYER, STYLE, VIEW, UCS или DWGMGR), и далее - группа 70, задающая максимальное число табличных записей, которые могут следовать за ней. Таблицы в рисунке могут содержать удаленные элементы, однако, они не записываются в DXF-файл. Таким образом, реальное число элементов, которое следует после заголовка таблицы, может быть меньше числа, заданного в группе 70, поэтому не следует использовать значение счетчика группы 70 в качестве индекса при чтении таблицы. Подобная реализация позволяет программе пользователя при чтении DXF-файлов заранее разместить массив достаточной длины, чтобы вместить все табличные элементы.

В каждой таблице после заголовка следуют табличные записи. Каждый элемент таблицы состоит из группы 0, идентифицирующей тип элемента (такой же, как и имя таблицы, т. е. LTYPE или LAYER), группы 2, в которой указывается имя записи, группы 70, в которой указываются флаги, относящиеся к табличной записи (определенные для каждой таблицы ниже), и из дополнительных групп, в которых приводятся значения табличных записей. Конец каждой таблицы отмечается с помощью группы 0, имеющей значение "ENDTAB".

Ниже приведены группы, которые используются для каждого типа табличного элемента. Для каждого элемента (пункта) таблицы представлены все возможные группы.

LTYPE 3 (описательный текст для типа линии), 72 (код выравнивания), 73 (число длин штрихов), 40 (общая длина линий образца), 49 (длина штриха 1), 49 (длина штриха 2), …

LAYER 62 (номер цвета; отрицательный, если слой "отключен"), 6 (имя типа линии). Если слой "заморожен", то бит 1 устанавливается во флагах группы 70.

STYLE 40 (фиксированная высота текста; если высота текста не является фиксированной, то 0), 41 (степень сжатия), 50 (косой угол), 71 (флаги генерации текста), 42 (используется высота, заданная впоследний pаз), 3 (первичное имя файла, текстового шрифта или формы).

Пункт таблицы STYLE используется также для записи запросов команды ЗАГРУЗИ для файла формы. В этом случае бит 1 устанавливается во флагах группы 70, и значимой является только группа 3 (имя файла формы). Тем не менее, все остальные группы являются выходными.

VIEW 40 и 41 (высота и ширина вида), 10 и 20 (центральная точка вида), 11, 21 и 31 (направление взгляда от цели в МСК), 12, 22, 32 (местоположение объекта в мировых координатах), 42 (фокусное расстояние), 43 и 44 (передняя и задняя секущие плоскости – смещение от цели, проекции), 50 (угол вращения), 71 (режим отображения).

UCS 10, 20, 30 (точка начала), 11, 21, 31 (направление по оси X), 12, 22, 32 (направление по оси Y). Все значения задаются в мировых координатах.

VPORT 10 и 20 (нижний левый угол видового экрана; от 0.0 до 1.0), 11 и 21 (верхний правый угол), 12 и 22 (средняя точка вида), 13 и 23 (базовая точка шаговой привязки),14 и 24 (интервалы шаговой привязки по осям X и Y), 15 и 25 (интервал сетки по осям X и Y), 16, 26, 36 (направление взгляда от точки цели), 17, 27, 37 (точка

цели), 40 (высота вида), 41 (соотношение сторон видового экрана), 42 (фокусное расстояние), 43 и 44 (передняя и задняя секущие плоскости; смещение от точки цели), 50 (угол поворота сетки шаговой привязки), 51 (угол вращения вида), 71 (режим отображения), 72 (точность аппроксимации круга), 73 (установка режима быстрого зумирования), 74 (установка
UCSICON), 75 (шаг вкл/откл), 76 (сетка вкл/откл), 77 (стиль шаговой привязки), 78 (изометрический стиль).

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

DWGMGR Зарезервировано для дальнейшего использования. Поля в настоящий момент не определены.

Раздел BLOCKS DXF-файла содержит все описания блоков. Данный раздел содержит графические примитивы, которые формируют блоки, используемые в рисунке, включая "анонимные" блоки, которые генерируются командой ШТРИХ и при простановке ассоциативных размеров. Формат графических примитивов, содержащихся в данном разделе, идентичен формату, который приведен в описании раздела ENTITIES. Все примитивы в разделе BLOCKS размещаются между элементами BLOCK и ENDBLK. Элементы BLOCK и ENDBLK встречаются только в разделе BLOCKS. Описания блоков не могут быть вложенными (т.е. элементы BLOCK или ENDBLK не могут располагаться внутри другой пары BLOCK и ENDBLK).

Раздел ENTITIES

Элементы графических примитивов размещаются как в разделе BLOKS, так и в разделе ENTITIES DXF-файла. Формат их размещения и в том, и в другом разделах идентичен, с той лишь разницей, что примитивы из раздела BLOCKS не имеют меток. Ниже приведен формат каждого графического примитива в том виде, в каком он размещается в файле. Некоторые группы, которые определяют графический примитив, размещаются в файле всегда, а некоторые являются дополнительными, и появляются в файле только в том случае, если они имеют значение, которое отличается от их значения по умолчанию. В приведенном описании группам, которые всегда имеются в файле, присваивается номер группы и функция, а дополнительные группы отмечены выражением «дополнительная N», которое следует за описанием группы. Величина «N» представляет собой значение, принимаемое по умолчанию, которое используется в том случае, если группа пропущена.

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

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

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

Код группы Значение
  Имя типа линии (если не «ПОСЛОЮ»). Специальное имя «ПОСЛОЮ» означает переменный тип линии.
  Уровень (если не равен нулю). Выводится только в том случае, если системная переменная FLATLAND имеет значение равное 1. В противном случае добавляются координаты Z в качестве группы 3х как части каждого определения точек примитива.
  Высота (если не равна нулю).
  Номер цвета (если не «ПОСЛОЮ»). Ноль означает цвет (переменный) «ПОБЛОКУ».
  Эти группы включены для построения точки., круга, формы, текста, дуги, полосы, фигуры, ссылки на блок, полилинии, размера, атрибута и определения атрибута, если направление его выдавливания не параллельно оси Z в мировых координатах. Эти группы определяют компоненты X, Y, Z для направления выдавливания примитива

Остальные группы, которые составляют элемент описания графического примитива, описаны ниже. Большинство примитивов имеют “флаги” групп, которые представляют собой целочисленные коды (группы 6х или 7х), характерные для конкретного типа примитивов и содержащие различную информацию относительно самих примитивов. В приведенном ниже описании термин “двоичнокодированный” означает, что флаг содержит различные значения типа “истина/ложь”, закодированные в виде суммы данных двоичных значений. Любой бит, не определенный в этом разделе, игнорируется в данных полях и устанавливается в значение 0 при создании DXF-файла.

LINE 10, 20,30 (начальная точка), 11, 21, 31 (конечная точка)

POINT 10, 20, 30 (точка), 50 (угол оси Х для ПСК действует

при выводе точки, по умолчанию 0, для использования, когда

переменная PDMODE не равна 0)

CIRCLE 10,20,30 (центр), 40(радиус)

ARC 10,20,30 (центр), 40(радиус),50(начальный угол), 51 (конечный угол)

TRACE Четыре точки, задающие углы трассы: (10, 20, 30)

(11, 21, 31), (12, 22, 32), и (13, 23, 33)

SOLID Четыре точки, задающие углы фигуры: (10, 20, 30), (11, 21, 31), (12, 22, 32), и (13, 23, 33). Если было определено только три точки (для формирования трехсторонней фигуры), то третья и четвертая точки будут одинаковы

TEXT 10,20,30 (точка вставки), 40 (высота), 1 (значение текста), 50 (угол поворота - по умолчанию 0), 41 (относительный масштабный коэффициент по Х – по умолчанию 1), 51 (угол наклона – по умолчанию 0), 7 (имя гарнитуры – по умолчанию “СТАНДАРТ”), 71(флаги генерации текста –по умолчанию 0), 72(тип выравнивания –по умолчанию 0),11,21,31(точка выравнивания – дополнительная; имеется только в том случае, если есть не равная нулю группа 72).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: