Создание файла расширенного большого шрифта
 
 
 

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

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

*0,5,имя_шрифта 
высота_символа, 0, режимы, высота_символа,0
			. 
			. 
			. 
*номер_формы,число_байт,имя_формы
			. 
код,0,примитив#,x_базовая,y_базовая,ширина,высота, 
			. 
			. 
код,0,примитив#,x_базовая,y_базовая,ширина,высота, 
			. 
ограничитель

Рассмотрим назначение каждого из полей:

высота_символа

Используется совместно с шириной и задает количество единиц в символах шрифта.

ширина_символа

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

режимы

Байт режимы равен 0 для шрифта только с горизонтальной ориентацией и 2 - для шрифта, поддерживающего двойную ориентацию (горизонтально и вертикально). Специальный код 00E (14) может использоваться только тогда, когда байт режимы равен 2.

номер_формы

Код символа.

число_байт

Размер в байтах. Длина значения — всегда 2 байта. Оно может включать в себя шестнадцатеричные коды или сочетание десятичного и шестнадцатеричного.

имя_формы

Имя символа.

код

Специальный код описания формы. Всегда равен 7, т.к. может описывать субформу.

примитив#

Ссылка на номер субформы. Длина поля — всегда 2 байта.

x_базовая

Координата X начала примитива.

y_базовая

Координата Y начала примитива.

ширина

Масштаб ширины примитива.

высота

Масштаб высоты примитива.

ограничитель

Индикатор конца файла определения формы. Всегда равен 0.

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

 

Параметр

Значение

Размер в байтах

Описание

номер_формы

xxxx

2 байта

Код символа

код

7,0

2 байта

Описание расширенного шрифта

примитив#

xxxx

2 байта

Ссылка на номер субформы

x_базовая

 

1 байт

Координата X начала примитива

y_базовая

 

1 байт

Координата Y начала примитива

ширина

 

1 байт

Масштаб ширины примитива

высота

 

1 байт

Масштаб высоты примитива

ограничитель

0

1 байт

Конец описания формы

На следующем чертеже представлен пример матрицы 16 x 16 точек, которую можно использовать для создания расширенного крупного шрифта (например, иероглифов). Расстояние между точками матрицы равно одной единице. Стрелка от выноски указывает на единичный квадрат.

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

На следующем чертеже показаны примитивы, из которых составляются иероглифы.

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

Пример: файл описания для расширенного крупного шрифта

*BIGFONT 50,1,080,09e
*0,5,Extended Font
15,0,2,15,0
*08D91,31,unspecified
2,0e,8,-7,-15,
7,0,08cfb,0,0,16,16,7,0,08bca,2,3,12,9,
2,8,18,0,2,0e,8,-11,-3,0
*08CD8,31,unspecified
2,0e,8,-7,-15,
7,0,08be0,0,0,8,16,7,0,08cc3,8,0,8,16,
2,8,18,0,2,0e,8,-11,-3,0
*08ADF,31,unspecified
2,0e,8,-7,-15,
7,0,089a4,0,0,8,16,7,0,08cb3,8,0,8,16,
2,8,18,0,2,0e,8,-11,-3,0
*08CE8,39,unspecified
2,0e,8,-7,-15,
7,0,089a4,0,1,5,14,7,0,08cc3,5,2,5,14,7,0,08c8e,9,0,7,
16,2,8,18,0,2,0e,8,-11,-3,0
*089A4,39,primitive
2,0e,8,-7,-15,2,8,1,14,1,0c0,
2,8,-11,-6,1,0a0,2,8,-12,-7,1,
0e0,2,8,-7,13,1,0dc,2,8,11,-1,
2,0e,8,-11,-3,0
*08BCA,41,primitive
2,0e,8,-7,-15,2,8,1,14,1,0c0,
2,8,-11,-6,1,0a0,2,8,-12,-8,1,
0e0,2,0e5,1,0ec,2,063,1,8,
2,-3,2,06f,2,0e,8,-11,-3,0
*08BE0,81,primitive
2,0e,8,-7,-15,2,8,3,9,1,080,
2,8,-10,-4,1,0c0,2,8,-13,-5,1,
0e0,2,8,-7,9,1,09c,2,8,-1,14,
1,8,-6,-5,2,8,8,5,1,8,6,-5,
2,8,-11,-6,1,8,1,-3,2,8,7,3,
1,8,-1,-3,2,8,-3,15,1,01a,2,
012,1,01e,2,8,10,-14,2,0e,8,
-11,-3,0
*08C8E,44,primitive
2,0e,8,-7,-15,2,8,3,15,1,090,0fc,038,
2,8,-6,11,1,090,2,8,-9,-5,1,
090,2,096,1,0ac,8,-1,-3,01a,01a,2,8,
18,0,2,0e,8,-11,-3,0
*08CB3,61,primitive
2,0e,8,-7,-15,2,042,1,02b,02a,018,2,
0d0,1,012,034,2,069,1,01e,040,2,8,
-8,6,1,02b,2,8,4,5,1,08c,2,8,
-3,8,1,03c,2,8,-5,3,1,0e0,2,8,
-12,5,1,0a0,2,8,6,-14,2,0e,8,
-11,-3,0
*08CC3,34,primitive
2,0e,8,-7,-15,2,0c1,1,06c,0a8,064,0a0,2,8,
-5,9,1,09c,2,8,-7,5,1,0e0,2,8,
4,-11,2,0e,8,-11,-3,0
*08CFB,22,primitive
2,0e,8,-7,-15,2,0d2,1,0cc,0c8,0c4,0c0,2,8,
5,-13,2,0e,8,-11,-3,0