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