HP-GL, сокращение от Hewlett-Packard Graphics Language и часто обозначаемое как HPGL, является языком управления принтером, созданным Hewlett-Packard (HP). HP-GL был основным языком управления принтером, используемым плоттерами HP . Он был представлен вместе с плоттером HP-8972 в 1977 году и стал стандартом почти для всех плоттеров. принтеры Hewlett-Packard также обычно поддерживают HP-GL / 2 в дополнение к PCL.
Язык состоит из серии двухбуквенных кодов (мнемоника ), за которой следуют необязательные параметры. Например, дугу можно нарисовать на странице, отправив строку:
AA100,100,50;
Это означает абсолютную дугу, а параметры помещают центр дуги в абсолютное значение координаты 100,100 на странице с начальным углом 50 градусов, измеренным против часовой стрелки. Четвертый необязательный параметр (здесь не используется) указывает, как далеко продолжается дуга, и по умолчанию равен 5 градусам.
При первом представлении HP-GL содержал следующие команды:
Команда | Значение |
---|---|
Векторная группа | |
PA x, y {, x, y {...} } | Отображение абсолютного [i] |
PR x,y{,x,y{....}} | Отображение относительного [i] |
PD | Перо вниз |
PU | Перо вверх |
Группа символов | |
CA n | Обозначить альтернативный набор символов n [i] |
CP пробелов, строк | График символов [d] |
CS m | Обозначить стандартный набор m [i] |
DI бег, подъем | Абсолютное направление [d] |
DR бег, подъем | Относительное направление [d] |
LB c,..., c | Метка ASCII строка [c] |
SA | Выбрать альтернативный набор символов |
SI широкий, высокий | Абсолютный размер символа [d] |
SL tan θ | Абсолютный наклон символа (от вертикали) [ d] |
SR широкий, высокий | Относительный размер символа [d] |
SS | Выбрать стандартный набор символов |
UC x, y, pen {,...} | Пользовательский символ [i] |
Группа типов линий | |
LT t{,l} | Определите тип линии t и длину l [d] |
SM c | Режим символа [c] |
SP n | Выберите перо [i] |
VA | Адаптивная скорость |
VN | Нормальная скорость |
VS v{,n} | Selec t скорость v для пера n [i] |
Группа оцифровки | |
DC | Сброс оцифровки |
DP | Оцифровка точки |
OC | Вывод текущего положения и состояния пера |
OD | Вывод оцифрованной точки и состояния пера |
Оси | |
TL tp {, tn} | Длина деления [d] |
XT | Тик по оси X |
YT | Тик по оси Y |
Группа настроек | |
IP p1x,p1y,p2x,p2y | Ввод p1 и p2 [i] |
IW xlo,ylo,xhi,yhi | Окно ввода [i] |
OP | Выход p1 и p2 [i] |
Состояние конфигурации | |
AP | Автоматический захват пера [ i] |
DF | Установить значения по умолчанию |
IM e{,s{,p}} | Входные маски e, s и p [i] |
IN | Инициализировать |
OE | Ошибка вывода [i] |
OS | Состояние вывода [i] |
SI w,h | установка ширины и высоты символа |
Форматы:
.
Типичные файлы HP-GL начинаются с нескольких команд настройки, за которыми следует длинная строка графических команд. Файл был в формате ASCII (текстовый файл ) в формате, например:
Команда | Значение |
---|---|
IN; | инициализировать, запустить задание на печать |
IP; | установить точки масштабирования (P1 и P2) в их положения по умолчанию |
SP1; | выбрать перо 1 |
PU0,0; | поднимите перо вверх и перейдите к начальной точке для следующего действия |
PD100,0,100,100,0,100,0,0; | опустите перо вниз и переместитесь в следующие места (нарисуйте рамку вокруг страницы) |
PU50,50; | перо вверх и переместитесь в координаты X, Y 50,50 |
CI25; | нарисуйте окружность с радиусом 25 |
SS; | выберите стандартный набор символов |
DT *, 1; | установите в качестве разделителя текста звездочку и не печатайте их (1, что означает «истина») |
PU20,80; | поднимите перо и переместите на 20,80 |
LBHello World *; | нарисовать метку |
Система координат была основана на наименьших единицах, которые мог поддерживать один из плоттеров HP, и была установлена на 25 мкм (т.е. 40 единиц на миллиметр, 1016 на дюйм). Координатное пространство было положительным или отрицательным числами с плавающей запятой, в частности ± 2.
Исходный язык HP-GL не поддерживал определение ширины линии, поскольку этот параметр определялся перьями, загруженными в плоттер. С появлением первых струйных плоттеров ширину линии для «перьев», указанных в файлах HP-GL, нужно было устанавливать на принтере, чтобы он знал, какую ширину линии печатать для каждого пера. громоздкий и подверженный ошибкам процесс. В Hewlett-Packard Graphics Language / 2, также известном как HP-GL / 2, определение ширины линии было введено в язык и позволило исключить этот шаг. Кроме того, среди других улучшений был определен формат бинарного файла , который позволил использовать файлы меньшего размера и сократить время передачи файлов, а также было уменьшено минимальное разрешение.
Команда | Значение |
---|---|
NPx | количество перьев; x = 1..256 |
PCx,r,g,b | цвет пера; x = перо, r = красный, g = зеленый, b = синий, 0..255 |
PWw,x | ширина пера; w = ширина пера в мм с десятичной точкой, x = перо |
HP-GL относится к AGL (графический язык), расширению BASIC язык программирования. AGL был реализован на миникомпьютерах Hewlett-Packard для упрощения управления плоттером. Команды AGL описывают желаемую функцию построения графики, которую компьютер передает плоттеру в виде нескольких инструкций HP-GL.