HPGL (Hewlett-Packard Graphics Language)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 02:47, 22 мая 2016.
HPGL
Спроектировано Hewlett-Packard
Расширение файла .hpgl
Влияние
PCL

HPGL(Hewlett-Packard Graphics Language) - графический язык, предназначенный для определения двухмерной графической информации для всего диапазона плоттеров изготавливаемых фирмой Hewlett-Packard. HPGL стал де-факто стандартом для форматов графопостроителя и поддерживается почти всеми изготовителями плоттеров как стандартная эмуляция. Большинство систем автоматизированного проектирования имеет способность выводить HPGL.

В последнее время корпорация Hewlett-Packard оказалась на лидирующих позициях, создав де-факто два стандарта для выводящих устройств : HPGL и PCL(Printer Control Language).

Хотя HPGL был предназначен для перьевых плоттеров фирмы HP, нашлись варианты их использования в струйных и лазерных принтерах. PCL, с другой стороны, строго используется HP для его растровых устройств и очень медленно теряет совместимость с языком PostScript и Windows-ориентированной direct-GDI.

Что же такое HPGL?

HPGL - это набор команд встроенный в ROM перьевых плоттеров для помощи программистам по уменьшению объема работы, связанной с написанием программ вывода графики.

Векторная графика HPGL использует меньшее количество памяти, при хранении, в отличие от растровой графики. Также использует более эффективные операции ввода/вывода больших изображений при печати. HPGL использует двухбуквенные мнемоники как инструкции для рисования линий, окружностей, текста и простых символов. При печати в HPGL, принтер определит пункты "a", и "b", затем нарисует линию между ними, в растре же, принтер определяет каждую точку между пунктами "a" и "b".

Однако у HPGL имеется один существенный недостаток: он более громоздок в сравнении с другими графическими языками, что означает, что требуется более длинный, файл HPGL чем, скажем, файл DM/PL(сокращение от-digital microprocessor plotting language) фирмы "Houston Instruments". Для преодоления этого ограничения в 1990 году Hewlett-Packard стандартизировал HPGL и появился HPGL/2, в котором была реализована технология сжатия данных "polyline encoding", которая уменьшает размер графического файла и следовательно уменьшает время его передачи.

HPGL, де-факто стал стандартом для файлов печати, конкуренты неизбежно включают HPGL или некоторый подобный диалект в свою графопостроительную продукцию. Кроме того, все САПР в конечном счёте переводят свои файлы в формат HPGL, и теперь все пакеты САПР могут создавать, а некоторые и считывать HPGL файлы.

Системы координат

В HPGL существует неудобство, связанное с тем, что в плоттерах используются две различные системы координат. Малоформатные плоттеры, (размеров A- и B), располагают начало отсчёта в нижнем левом углу. В то время как в широкоформатных плоттерах (размеров D- и E-), начало отсчёта располагается в центре.

В качестве единицы измерения HPGL использует plu (сокращение от plotter units).

40 plu = 1 мм

Все графические языки имеют две формы границ чертежа:

  1. Жёсткие границы - пределы, вне которых плоттер не может печатать из-за физических ограничений.
  2. Мягкие границы - обычно налагаются прикладным программным обеспечением, создающим графический файл.

Любая часть рисунка, находящаяся вне границ будет обрезана (не будет напечатана).

В HPGL пределы печати обозначаются как P1 (нижний левый угол) и P2 (верхний правый угол).

Чтение HPGL файла

HPGL команда состоит из двух символов в верхнем регистре и следующих за ними дополнительных параметров, заканчивается знаком разделителем (точка с запятой). Аргументы отделяются запятыми. Строковые символы заканчиваются символом перевода каретки.

Например дуга (arc) может выводиться на печать следующей командой:

AA100,100,50;

AA — сокращение от Arc Absolute; 100,100 — координаты центральной точки дуги; 50 — начальный угол, измеряемый против часовой стрелки.

Типичный файл HPGL состоит в основном из символов ASCII с некоторыми управляющими символами. Файл можно читать любым текстовым редактором. Так как графические файлы как правило записываются как одна длинная строка, полезно иметь редактор текста без ограничения длины строки.

Пример файла открытого в текстовом редакторе:

Инициализация графических данных:

[ Esc].(;.I81;;17:[Esc].N;19:IN;SC;PU;PU;SP1;LT;VS36;

Чертёжные данные:

PA12345,4567; PD; PA-2345; 6789; ... и т.д.

Данные завершения печати:

PU; PA0,0; SP; EC; PG1; EC1; OE;

Семантика HPGL

HPGL состоит из двух видов команд:

  1. Непосредственно HPGL команды
  2. Управляющие команды устройства (DCI)

Пример типичной HPGL команды:

PA1234,5678;

Инструкция PA перемещает перо в абсолютное положение в координатах plu. 1234 и 5678 - параметры (в данном случае, абсолютные координаты). "," - разделитель между двумя (или более) параметрами. ";" - терминатор обозначающий конец команды.

Все HPGL команды начинаются с двух букв и имеют свою мнемонику. Например PA является сокращением от Pen Absolute, команда позиционирования пера. Другие мнемонические команды:

  • PD (pen down) - перо вниз
  • PU (pen up) - перо вверх
  • SP (select pen) - выбор пера
  • VS (velocity speed) - скорость.

Большинство команд в HPGL включают в себя один или несколько параметров. Если они отсутствуют, то используются параметры по умолчанию.

Когда команда использует несколько параметров они должны быть отделены одним из разделителей:

  • запятая (,)
  • пробел ( )
  • знак плюс (+)
  • знак отрицания (-).

Пример рисования прямоугольника

Rectangle.jpg

IN;IP0,0,4000,4000;SC0,100,0,100; SP1; PA0,0; PD; PA100,0; PA100,100; PA0,100; PA0,0; PU;

Команда Значение
IN инициализация процесса черчения
IP определяет начальные значения системы координат и масштабирование
SC0,100,0,100; устанавливает размеры страницы от 0 до 100 в направлениях X и Y
PA 0,0 устанавливает положение пера
PD двигает перо по заданным позициям (чертит прямоугольник по заданным ниже положениям пера)
PU перемещает перо в позицию по умолчанию

Инструкции управления устройствами

HPGL использует инструкции управления устройствами (Device-control instructions - DCI) для настройки и управлениями железом плоттера. Эти инструкции созданы для связи между САПР и плоттером, чтобы возвращать данные о состоянии плоттера, перезагружать плоттер, и т.д..

Инструкция управления устройством начинается с управляющего символа [Esc]. Далее следует непосредственно команда для плоттера. В случае принтеров HP перед командой ставится символ "." (точка).

Пример типичной инструкции управления устройством HP:

[Esc].(;

Эта инструкция задаёт устройству команду на включение, а так же сообщает о том, что дальнейшие данные необходимо интерпретировать как HPGL и DCI инструкции, а не как поток буквальных текстовых символов Эта DCI не имеет параметров.

Список и назначение инструкций управления:
Инструкция Назначение
esc.@ установка конфигурации плоттера
esc.A идентификация выхода
esc.B пространство выходного буфера
esc.E выход длительная ошибка
esc.H установка режима 1 получения подтверждения от плоттера
esc.I установка режима 2 получения подтверждения от плоттера
esc.J прерывание управления устройством
esc.K прерывание печати
esc.L выход, буфер пустой
esc.M установка режима выхода
esc.N установка расширенного выхода и режима ответа от плоттера
esc.O выход, расширенный статус
esc.P установка режима получения подтверждения от плоттер
esc.Q установка режима мониторинга
esc.R перезагрузка
esc.S выход, конфигурация памяти
esc.T выделение и конфигурация памяти
esc.U конец режима промывки
esc.Y включение плоттера
esc.( включение плоттера и указание на получение команд
esc.Z выключение плоттера
esc.) выключение плоттера и указание на конец получения команд

Ссылки