HP-GL, або ж HP/GL чи HPGL (скорочено від Hewlett-Packard Graphics Language) — це мова керування принтером[en], створена компанією Hewlett-Packard (HP). HP-GL була основною мовою керування принтером, яку використовували плотери HP. Вона була представлена разом з плотером HP-9872[1][2] у 1977 році і стала стандартом майже для всіх плотерів. Принтери Hewlett-Packard також зазвичай підтримують HP-GL/2 на додаток до PCL[en].[3][4][5]
Мова формується з серії кодів двох букв (мнемоніки), за якими йдуть не обов'язкові параметри. Наприклад, дугу можна намалювати на сторінці, надіславши рядок:
AA100,100,50;
Це означає Arc Absolute, і параметри розміщують центр дуги в абсолютних координатах 100,100 на сторінці з початковим кутом 50 градусів, виміряним проти годинникової стрілки. Четвертий не обов'язковий параметр (тут не використовується) визначає, наскільки далеко триває дуга, і за замовчуванням він становить 5 градусів.
Система координат базувалася на найменших одиницях, які міг підтримувати один із плотерів HP, і була встановлена на 25 мкм (тобто 40 одиниць на міліметр, 1016 на дюйм). Координатним простором були додатні та від'ємні числа з рухомою комою, зокрема ±230. Відлік координат визначається в усі боки від початку координат, який знаходиться у центрі системи координат.[6]
Коли HP-GL був вперше представлений, він містив такі команди:[7][8]
[i]: формати цілих чисел від -32767 до 32768. Без коми.
[d]: десятковий формат між +/- 127,9999. Додаткова десяткова кома.
[c]: символ ASCII
HP-GL/2
Оригінальна мова HP-GL не підтримувала визначення ширини лінії, оскільки цей параметр визначався ручками, завантаженими в плотер. З появою перших струменевих плотерів ширину лінії для «ручок», зазначених у файлах HP-GL, потрібно було встановлювати на принтері, щоб він знав, яку ширину лінії друкувати для кожної ручки, — громіздкий і схильний до помилок процес. Разом з Hewlett-Packard Graphics Language/2 (скорочено HP-GL/2) визначення ширини лінії було введено в мову та дозволило скасувати цей крок. Крім того, серед інших удосконалень було визначено двійковий формат файлу, який дозволяв створювати файли меншого розміру та скорочувати час передачі файлів, а мінімальну роздільну здатність було зменшено.
У HP-GL/2, на відміну від HP-GL, відлік координат визначається вниз і вправо від початку координат, який знаходиться у лівому верхньому куті системи координат.[6]
Приклади
Типові файли HP-GL починаються з кількох команд налаштування, за якими йде довгий ряд графічних команд. Файл був у форматіASCII (текстовий файл), наприклад:
Приклад файлу HP-GL
Команда
Значення
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-GL/2
Команда
Значення
NPx
кількість ручок; х=1.. 256
PCx, r,g, b
колір ручки; x=ручка, r=червоний, g=зелений, b=синій, 0.. 255
PWw, x
ширина пера; w=ширина пера в мм з десятковою комою, x=перо
AGL
HP-GL пов'язаний з AGL (A Graphics Language), розширенням мови програмування BASIC. AGL був імплементований на міні-комп'ютерах Hewlett-Packard для спрощення керування плотером. Команди AGL описують функцію потрібну для графічної побудови, яку комп'ютер передає плотеру у вигляді кількох інструкцій HP-GL.
Програмне забезпечення
Експорт та імпорт файлів у форматах HP-GL та HP-GL/2 підтримують більшість сучасних САПР та редакторів векторної графіки. Серед таких програм є також і вільне програмне забезпечення:
Також створено спеціалізовані переглядачі файлів HP-GL та HP-GL/2, зокрема організація CERN створила переглядач HP-GL Viewer (або ж Designer viewer), який безкоштовно доступний на сайті організації для операційних систем Windows (також працює у Wine), Linux та Mac OS і може конвертувати файли HP-GL та HP-GL/2 з одного в інший, а також у формати DXF, Encapsulated PostScript, PostScript та Computer Graphics Metafile[en].[9]
Цікаві факти
Мови керування HP-GL та HP-GL/2 працюють у двомірній системі координат (X, Y), за виключенням команд підняття та опускання ручки (два положення по осі Z). Внаслідок цього такий формат також підходить для 2-осьових різальних плотерів (для паперу, плівок, листових пиломатеріалів та металопрокату тощо), у тому числі лазерних та гравіювальних CNC-верстатів.
Для 3-осьових (X, Y, Z), багатоосьових (4 і більше осей) і багатофункціональних мультиінструментальних верстатів з числовим програмним керуванням замість HP-GL та HP-GL/2 використовується мова керування G-code.
Див. також
DMPL[en] (інша мова плотера від Houston Instruments)
↑PCL 5 Printer Language Technical Reference Manual (вид. 1st). Hewlett-Packard Company. September 1990. HP Part No. 33459-90903. (NB. Chapter 15-21 also contain a description of HP-GL/2.)