Розширення файлу: | .hpgl, .hpg, .plt |
---|---|
MIME-тип: | application/vnd.hp-HPGL |
Розробник: | Hewlett-Packard |
Рік випуску: | 1977 |
Розширений до: | Hewlett-Packard Graphics Language/2 |
Розширення файлу: | .hpgl, .hpg2, .hp2, .plt2 |
---|---|
MIME-тип: | application/vnd.hp-HPGL |
Розробник: | Hewlett-Packard |
Рік випуску: | 1993 |
Дата випуску останньої версії: | 1996 |
Розширений з: | Hewlett-Packard Graphics Language |
Сайт: | support.hp.com/us-en/document/c01121263 |
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]
Дизайн
HP-GL
Мова формується з серії кодів двох букв (мнемоніки), за якими йдуть не обов'язкові параметри. Наприклад, дугу можна намалювати на сторінці, надіславши рядок:
AA100,100,50;
Це означає Arc Absolute, і параметри розміщують центр дуги в абсолютних координатах 100,100 на сторінці з початковим кутом 50 градусів, виміряним проти годинникової стрілки. Четвертий не обов'язковий параметр (тут не використовується) визначає, наскільки далеко триває дуга, і за замовчуванням він становить 5 градусів.
Система координат базувалася на найменших одиницях, які міг підтримувати один із плотерів HP, і була встановлена на 25 мкм (тобто 40 одиниць на міліметр, 1016 на дюйм). Координатним простором були додатні та від'ємні числа з рухомою комою, зокрема ±230. Відлік координат визначається в усі боки від початку координат, який знаходиться у центрі системи координат.[6]
Коли HP-GL був вперше представлений, він містив такі команди:[7][8]
Команда | Значення |
---|---|
Група векторів | |
PA x,y{,x,y{...}}
|
Малювання в абсолютних координатах [i] |
PR x,y{,x,y{....}}
|
Малювання у відносних координатах [i] |
PD
|
Ручка вниз |
PU
|
Ручка вгору |
Група символів | |
CA n
|
Призначити альтернативний набір символів n [i] |
CP пробіли, лінії
|
Малювання символу [d] |
CS m
|
Позначте стандартний набір m [i] |
DI пробіг, підйом
|
Абсолютний напрямок [d] |
DR пробіг, підйом
|
Відносний напрямок [d] |
LB c, … , c
|
Позначте рядок ASCII [c] |
SA
|
Виберіть альтернативний набір символів |
SI ширина, висота
|
Абсолютний розмір символу [d] |
SL tan θ
|
Абсолютний нахил символу (від вертикалі) [d] |
SR широкий, високий
|
Відносний розмір символу [d] |
SS
|
Виберіть стандартний набір символів |
UC x, y, ручка {, …}
|
Визначений користувачем символ [i] |
Група типів ліній | |
LT t{,l}
|
Позначте тип лінії t і довжину l [d] |
SM c
|
Режим символів [c] |
SP n
|
Виберіть ручку [i] |
VA
|
Адаптивна швидкість |
VN
|
Нормальна швидкість |
VS v{,n}
|
Виберіть швидкість v для пера n [i] |
Група оцифрування | |
DC
|
Оцифрувати чітко |
DP
|
Оцифрувати точку |
OC
|
Виведення поточної позиції та стану пера |
OD
|
Виведення оцифрованого статусу точки та пера |
Вісі | |
TL tp{,tn}
|
Довжина кліща [d] |
XT
|
Позначка осі X |
YT
|
Позначка осі Y |
Група налаштування | |
IP p1x, p1y, p2x, p2y
|
Вхід p1 і p2 [i] |
IW xlo, ylo, xhi, yhi
|
Вікно введення [i] |
OP
|
Вихід p1 і p2 [i] |
Статус конфігурації | |
AP
|
Автоматичний прийом пера [i] |
DF
|
Встановіть значення за замовчуванням |
IM e{,s{,p}}
|
Введіть маски e, s і p [i] |
IN
|
Ініціалізувати |
OE
|
Помилка виведення [i] |
OS
|
Статус виходу [i] |
SI w, h
|
встановити ширину і висоту символів |
Формати:
- [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 (текстовий файл), наприклад:
Команда | Значення |
---|---|
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*; | намалювати мітку |
Команда | Значення |
---|---|
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 підтримують більшість сучасних САПР та редакторів векторної графіки. Серед таких програм є також і вільне програмне забезпечення:
- FreeCAD: експорт.
- Inkscape: імпорт та експорт (збереження).
- LibreOffice: імпорт.
- QCAD: експорт.
- sK1: імпорт та експорт.
- SolveSpace: експорт.
- UniConvertor: конвертування в інші формати.
Також створено спеціалізовані переглядачі файлів 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)
- G-code (мова керування CNC-верстатами)
- Gerber[en] (векторний формат опису друкованих плат)
- HP RTL[en] (мова вбудовування растрової графіки у мову HP-GL)
- Logo (комп'ютерна мова з командами малювання, схожими на HP-GL)
Примітки
- ↑ HP Computer Museum: 9872 Flatbed Plotter. www.hpmuseum.net. Процитовано 21 жовтня 2023.
- ↑ HP 9872B Graphics Plotter. q7.neurotica.com. Процитовано 21 жовтня 2023.
- ↑ Hewlett-Packard (1997-08). The HP-GL/2 and HP RTL Reference Guide: A Handbook for Program Developers (вид. 3rd). USA: Addison-Wesley Longman Publishing Co., Inc. doi:10.5555/523000. ISBN 978-0-201-31014-6.
{{cite book}}
: Перевірте значення|doi=
(довідка) - ↑ Daniels, Thomas H.; Hennessee, Larry W. (September 1977). Easy-to-Use Interface Language Controls HP-IB Plotter (PDF). Hewlett-Packard Journal[en]. 29 (1): 5. Архів (PDF) оригіналу за 27 лютого 2017. Процитовано 12 вересня 2016.
- ↑ 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.)
- ↑ а б HP Designjet Printers - HP-GL/2 Language vs HP-GL Language. Hewlett-Packard (амер.).
- ↑ Recorder-Plotter: The Birth of the Hewlett Packard Graphics Language - HPGL. hpmemoryproject.org (англ.).
A short-form presentation of the Hewlett Packard Graphics Language, from a HP 9872B/9872S technical data sheet, June 1979.
- ↑ Joe's HP 9872 Quick Reference Card. joe.classiccmp.org. Процитовано 21 жовтня 2023.
- ↑ HP-GL Viewer Information. CERN (англ.).
Джерела
- Fenoglio, John A.; Chin, Bessie W. C.; Cobb, Terry R. (February 1979). A High-Quality Digital X-Y Plotter Designed for Reliability, Flexibility and Low Cost (PDF). Hewlett-Packard Journal. Palo Alto, California: Hewlett-Packard Company. 30 (2): 2—7.
- Hewlett-Packard Company, Barcelona Division (September 1996). The HP-GL/2 and HP RTL Reference Guide - A handbook for Program Developers - Hewlett-Packard Graphics Language/2 - Hewlett-Packard Raster Transfer Language (PDF) (вид. draft 2, second). Barcelona, Spain: Addison-Wesley Publishing Company. ISBN 0-201-63325-6. HP Part No. 5961-3526, 5959-9733. Архів оригіналу за 27 лютого 2017. Процитовано 28 лютого 2017.
Посилання
- Hewlett-Packard Graphics Language Commands. Архів оригіналу за 27 лютого 2017.
- HP-GL Overview (PDF). Архів оригіналу (PDF) за 13 червня 2018.
- Chiplotle. Процитовано 15 лютого 2023. (Python-бібліотека з підтримкою HP-GL для керування вінтажними ручковими плотерами)
- HP-GL Viewer (переглядач та конвертер файлів HPGL, HPGL/2, PLT) розроблений в CERN
- Draw from HPGL (вільний переглядач HP-GL файлів для на мові Perl та графічним інтерфейсом на основі Gtk2-perl)