HPGL (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 файлы начинаются с нескольких команд, устанавливающие начальные настройки плоттера за которыми следует последовательность графических команд. Например:

Пример 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 не поддерживал задание ширины линий. Этот параметр определялся номерами перьев, устанавливаемыми в плоттер. С появлением первых струйных плоттеров ширина линий «перьев», указанных в HPGL-файлах, должна была устанавливаться на плоттере для каждого пера, что представляло собой довольно трудоемкий процесс, чреватый ошибками. В версии языка HP-GL/2 данная возможность была предусмотрена непосредственно на уровне языка, что позволило назначать автоматически ширину линий на этапе создания графического файла в графическом редакторе. Среди прочих улучшений был добавлен вывод файла управления плоттером в двоичном формате. Это уменьшает размер файлов и время на их передачу. Также было увеличено разрешение.

  • ShareCAD, бесплатный онлайн-просмотрщик файлов форматов PLT и HPGL.

Литература

[править | править код]
  • Аммерал Л. Программирование графики на Турбо Си / Л. Аммерал; Перевод с англ. В. А. Львова. — М.: Сол Систем, 1992. — С. 96—105. — 219, [2] с. — (Серия "Машинная графика на языке Си"). — ISBN 5-85316-004-4.