Перейти к содержанию
    

Редактор BGI (CHR) шрифта от starter48

8 часов назад, starter48 сказал:

Символы выглядят непропорционально широкими. Т.е. у них пиксели неквадратные, или шрифт при отрисовке дополнительно масштабируется по ширине.

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

8 часов назад, starter48 сказал:

Не понимаю для чего команды PROP и DISABLE_CHECKS.

PROP - proportional ?

DISABLE_CHECKS - скорее всего отключает внутренние проверки интерпретатора, если вообще используется. Попробую убрать эту строчку и посмотреть что из этого получится.

8 часов назад, starter48 сказал:

Ещё мелкие вопросы: диапазон значений координат, способ обозначения ширины, нужно ли в начале описания глифа устанавливать координаты пера в (0,0)?

Если есть идеи, как это можно проверить, то готов помочь.

8 часов назад, starter48 сказал:

способ обозначения ширины, нужно ли в начале описания глифа устанавливать координаты пера в (0,0)

Я кажется понял, как у них это работает. Ширина задаётся через две команды в начале описания каждого символа:

Цитата

INIT 0 0
INIT 79 0

Здесь ширина 79 у.е. Анализ приложенных ранее шрифтов явно на это указывает. Там есть пример моноширинного шрифта vf_plot.fnt и не моноширинного, например, vf_oldenglish.fnt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот пример рендеринга двух шрифтов из приложенного выше комплекта:

1185978446_.thumb.png.9047032c6a2b44c5c3f1d0bc15e28153.png

Параметры: высота шрифта 1.6 мм, толщина линии 0.15 мм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В std-proportional.fnt:

Скрытый текст

 

# This is a PCB font file.  Comment lines start with '#'.
# Comments may also be added after valid input on any line
# Blank lines are ignored.  Characters may be in any order,
# and are specified by their ASCII code (the number).  The
# character itself, e.g., '%', shown in these files is not
# necessary and is merely shown for better readability.  The font 'std'
# must have all characters from 32 to 127 defined; other
# fonts may omit characters, in which case std-font characters
# are used for omitted ones.

# Coordinates range from 0 to 100 in both X and Y.  Keywords
# CHARACTER, INITIAL, TERMINAL, BASE, and HEIGHT may be abbreviated to 1 or
# more characters.  The first point for each character must be
# INITIAL.  To specify a blank character, use a CHARACTER line
# but do not include any points (see the space char 32 below)

# The BASE of a font is the y-coordinate of the baseline,
# generally the low point of a capital letter.   The HEIGHT of
# a font is the height (in these units) of a capital letter.
# For most English fonts the HEIGHT will be (100 - BASE); however,
# foreign fonts may have punctuation or accents that extend above
# the normal height of capital letters, and in this case the
# HEIGHT will be slightly less:

#     *
#    *
#   ****              <-  -----
#   *                       ^
#   **    *   *           HEIGHT
#   *      * *              v
#   ****    *         <-  ----- BASE
#           *
#          *

BASE 34   Y-coordinate of base of capital letters
HEIG 66   Height of capital letters

# identify this as a proportionally spaced font and specify
# the inter-character spacing
PROP 16

 

Но оно не совсем соответствует действительности...

Думаю ширина задаётся по макс. координате X среди команд рисования глифа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, starter48 сказал:

Думаю ширина задаётся по макс. координате X среди команд рисования глифа.

Вот и я про то же. Поэтому фактически размер знакоместа задаётся командами перемещения пера:

Цитата

INIT 0 0
INIT 79 0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ещё есть два других формата шрифтов:

  • ACE font (SDD_HOME\standard\config\vbdc\*.fnt)
  • PADS binary font (SDD_HOME\pads\win32\bin\*.fnt)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, starter48 сказал:

А ещё есть два других формата шрифтов:

Да, я видел их. Но по-моему они не используются в редакторе топологии.

Вот как влияет значение параметра PROP на начертание шрифта:

74909675_.thumb.png.67a20b5645783b58230afe88aece8abf.png

Т.е. это коэффициент пропорциональности. Большее значение увеличивает ширину текста (размер по горизонтали), а именно расстояние между символами.

Наложил шрифт с PROP 16 (голубой) на шрифт с PROP 4 (зеленый) и это стало отлично видно:

2048591489_.thumb.png.14bf4be054174fe3939bb294783fceba.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Соотношение сторон пикселя по шрифту std-proportional.fnt получается 42:100, т.е. координаты X надо домножать на 0,42 для получения aspect ratio=1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ещё Ментор страшно глючит с русскими буквами: не обновляет ширину рамки выделения (selection box), а от некоторых русских букв (р) вообще срывает крышу с потерей возможности редактировать текст.

Т.е. даже после добавления русских букв в шрифт, их не получится использовать т.к. проблема ещё и в коде Ментора. Проверял на VX.1.1

 

Ещё стоит делать редактор?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, starter48 сказал:

А ещё Ментор страшно глючит с русскими буквами: не обновляет ширину рамки выделения (selection box), а от некоторых русских букв (р) вообще срывает крышу с потерей возможности редактировать текст.

Т.е. даже после добавления русских букв в шрифт, их не получится использовать т.к. проблема ещё и в коде Ментора. Проверял на VX.1.1

Это в принципе ожидаемо, т.к. шрифт однобайтовый, а Windows ныне живёт в Unicode, что естественно добавляет проблем с совместимостью. Для DxDesigner это решалось таким образом: русский текст пишется в однобайтовом редакторе, после чего через clipboard вставляется в поле в DxDesigner.

16 минут назад, starter48 сказал:

Ещё стоит делать редактор?

В основно используется английский текст на плате. По-русски мало кто пишет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, starter48 сказал:

А ещё Ментор страшно глючит с русскими буквами: не обновляет ширину рамки выделения (selection box), а от некоторых русских букв (р) вообще срывает крышу с потерей возможности редактировать текст.

Т.е. даже после добавления русских букв в шрифт, их не получится использовать т.к. проблема ещё и в коде Ментора. Проверял на VX.1.1

Ещё стоит делать редактор?

У меня Pads Pro VX2.8, русские буквы отображаются нормально в схеме. Про платы сейчас ничего не скажу.
Стоит делать, а то! Добавить экспорт в этот формат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, ViKo сказал:

У меня Pads Pro VX2.8, русские буквы отображаются нормально (в схеме).

Сейчас это более-менее вроде починили, раньше было хуже.

1 минуту назад, ViKo сказал:

Стоит делать, а то! Добавить экспорт в этот формат.

Возможно там нужно использовать юникодные коды символов, по крайней мере попробовать. Т.к. кириллическую кодовую страницу из TTF Xpedition/PADS могут использовать и отображать в топологии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выложил v1.5.0.0 beta с поддержкой векторных шрифтов Ментора.

Есть побочный эффект: при загрузке шрифтов из Ментора символы выравниваются влево, чтобы левый край совпал с осью Y - так пришлось сделать из-за того, что в Менторе используются параметр "левая граница" символа.

В BGI (.chr) же левая граница - это и есть ось Y.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как же эти шрифты менторовские располагать при редактировании? И сжимать по X лучше бы на время редактирования, а при экспорте растягивать под Ментора. 

Или в редакторе задать сжатие отображения по X.

Для окна ввода тестового текста хорошо бы задать размер не в 2 строки, а в 8. Чтобы можно было весь набор сразу ввести. Я так делаю. Сейчас видно только две строки, хотя ввожу туда все 7.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, ViKo сказал:

Как же эти шрифты менторовские располагать при редактировании? И сжимать по X лучше бы на время редактирования, а при экспорте растягивать под Ментора.

Или в редакторе задать сжатие отображения по X.

Координаты целочисленные - при растягивании/сжатии произойдёт потеря точности из-за округления.

Надо переходить с квадратных на прямоугольные пиксели, но это большая переделка...

1 час назад, ViKo сказал:

Для окна ввода тестового текста хорошо бы задать размер не в 2 строки, а в 8. Чтобы можно было весь набор сразу ввести. Я так делаю. Сейчас видно только две строки, хотя ввожу туда все 7.

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

Подумаю, как его можно динамически расширять...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 минут назад, starter48 сказал:

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

Подумаю, как его можно динамически расширять...

Я знаю. Я же ввожу 7 строк. Но не вижу их всех одновременно.
Хорошо бы дать пользователю возможность тянуть раздел между отображением и вводом.

30 минут назад, starter48 сказал:

Надо переходить с квадратных на прямоугольные пиксели, но это большая переделка...

Пиксели менять не обязательно, а вот сетку сделать с разными шагами по X и Y - можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...