HPGL
HPGL (иногда пишут HP-GL) является основным языком управления принтерами, используемым плоттерами Hewlett-Packard. Его название представляет собой аббревиатуру Hewlett-Packard Graphics Language. В данный момент он является стандартным почти для всех плоттеров. Принтеры Hewlett-Packard, как правило, также поддерживают HPGL наравне с PCL.
Описание некоторых команд языка
[править | править код]Команды языка представляют собой сочетание кода из двух букв и следующих за ним дополнительных параметров. Каждая команда заканчивается точкой с запятой. Координаты пера задаются в наименьших единицах, поддерживаемых плоттерами производства HP — 25 мкм (то есть 40 единиц на миллиметр, 1016 на дюйм) и задаются числами с плавающей точкой (запятой) в пределах ±230. Перечисление координат и других параметров, указанных в качестве параметра команды разделяются запятой, пробелы после запятой и кода команды необязательны, эквивалентно, например, PA 0, 0; и PA0,0.
Основные команды отрисовки и перемещения пера без отрисовки это PD и PU, например, отрисовка отрезка прямой от текущих координат пера до указанных в команде координат, здесь x = 55 и y = 99 PD55,99;.
Дуга может выводиться на отрисовку следующей командой:
AA X0,Y0, А;
здесь AA — код команды, аббревиатура от Arc Absolute, координаты указаны в абсолютной системе координат плоттера; X0, Y0 — абсолютные координаты центра дуги; A — угол прочерчиваемой дуги в градусах против часовой стрелке, если число положительное и по часовой стрелке, если число отрицательное.
Начало дуги задаётся координатами текущего положения пера поэтому радиус дуги будет равен расстоянию между точкой с текущими координатами пера и указанным в команде точкой центра дуги, то есть
Конкретный пример отрисовки дуги:
PA 0, 0; PD; AA0,100,180; PU;
Последовательность этих команд начертит полуокружность с центром в точке (0, 100) началом дуги в начале координат и диаметром 200. Команды PD и PU — команды опускания и поднятия пера.
Обычно HPGL файлы начинаются с нескольких команд, устанавливающие начальные настройки плоттера за которыми следует последовательность графических команд. Например:
Команда | Значение |
---|---|
IN; | инициализация процесса черчения |
IP; | определяет начальную точку, в данном случае по умолчанию 0,0 |
SC0,100,0,100; | устанавливает размеры страницы от 0 до 100 в направлениях X и Y |
SP1; | выбирает перо 1 |
PU0,0; | перемещает перо в начальную позицию |
PD100,0,100,100,0,100,0,0; | опускает и двигает перо по заданным позициям (чертит прямоугольник вокруг страницы) |
PU50,50; | поднимает и перемещает перо в позицию 50,50 |
CI25; | чертит окружность с радиусом 25 |
SS; | выбирает стандартный шрифт |
DT*,1; | устанавливает в качестве текстового разделителя символ * и запрещает его печать на бумаге (1 — «true») |
PU20,80; | поднимает и перемещает перо в позицию 20,80 |
LBHello World*; | чертит надпись |
HP-GL/2
[править | править код]Первоначальный язык HP-GL не поддерживал задание ширины линий. Этот параметр определялся номерами перьев, устанавливаемыми в плоттер. С появлением первых струйных плоттеров ширина линий «перьев», указанных в HPGL-файлах, должна была устанавливаться на плоттере для каждого пера, что представляло собой довольно трудоемкий процесс, чреватый ошибками. В версии языка HP-GL/2 данная возможность была предусмотрена непосредственно на уровне языка, что позволило назначать автоматически ширину линий на этапе создания графического файла в графическом редакторе. Среди прочих улучшений был добавлен вывод файла управления плоттером в двоичном формате. Это уменьшает размер файлов и время на их передачу. Также было увеличено разрешение.
См. также
[править | править код]- ShareCAD, бесплатный онлайн-просмотрщик файлов форматов PLT и HPGL.
Литература
[править | править код]- Аммерал Л. Программирование графики на Турбо Си / Л. Аммерал; Перевод с англ. В. А. Львова. — М.: Сол Систем, 1992. — С. 96—105. — 219, [2] с. — (Серия "Машинная графика на языке Си"). — ISBN 5-85316-004-4.