HP-GL

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Hewlett-Packard Graphics Language
Розширення файлу: .hpgl, .hpg, .plt
MIME-тип: application/vnd.hp-HPGL
Розробник: Hewlett-Packard
Рік випуску: 1977
Розширений до: Hewlett-Packard Graphics Language/2
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 (текстовий файл), наприклад:

Приклад файлу 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 підтримують більшість сучасних САПР та редакторів векторної графіки. Серед таких програм є також і вільне програмне забезпечення:

  • 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.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. HP Computer Museum: 9872 Flatbed Plotter. www.hpmuseum.net. Процитовано 21 жовтня 2023.
  2. HP 9872B Graphics Plotter. q7.neurotica.com. Процитовано 21 жовтня 2023.
  3. 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= (довідка)
  4. 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.
  5. 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.)
  6. а б HP Designjet Printers - HP-GL/2 Language vs HP-GL Language. Hewlett-Packard (амер.).
  7. 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.
  8. Joe's HP 9872 Quick Reference Card. joe.classiccmp.org. Процитовано 21 жовтня 2023.
  9. HP-GL Viewer Information. CERN (англ.).

Джерела[ред. | ред. код]

Посилання[ред. | ред. код]