Для уменьшения размера составных иероглифов Kanji можно создать расширенный большой шрифт. Для представления такого шрифта используется код субформы, за которым сразу следует 0.
Первая строка файла расширенного большого шрифта ничем не отличается от первой строки файла обычного большого шрифта. Последующие строки файла имеют формат:
*0,5,имя_шрифта
высота_символа, 0, режимы, высота_символа,0
.
.
.
*номер_формы,число_байт,имя_формы
.
код,0,примитив#,x_базовая,y_базовая,ширина,высота,
.
.
код,0,примитив#,x_базовая,y_базовая,ширина,высота,
.
ограничитель
Рассмотрим назначение каждого из полей:
Используется совместно с шириной и задает количество единиц в символах шрифта.
Высота_символа и ширина_символа определяют масштабирование шрифтовых примитивов. В данном случае примитивами являются точки, отрезки, многоугольники и цепочки символов, геометрически ориентированные в двумерном пространстве. Иероглиф состоит из нескольких примитивов, которые многократно используются в различных масштабах и комбинациях.
Используется совместно с высотой и задает количество единиц в символах шрифта.режимы равен 0 для шрифта только с горизонтальной ориентацией и 2 - для шрифта, поддерживающего двойную ориентацию (горизонтально и вертикально). Специальный код 00E (14) может использоваться только тогда, когда байт режимы равен 2.
БайтКод символа.
Размер в байтах. Длина значения — всегда 2 байта. Оно может включать в себя шестнадцатеричные коды или сочетание десятичного и шестнадцатеричного.
Имя символа.
Специальный код описания формы. Всегда равен 7, т.к. может описывать субформу.
Ссылка на номер субформы. Длина поля — всегда 2 байта.
Координата X начала примитива.
Координата 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