HP-GL, або ж HP/GL чи HPGL (скорочено від Hewlett-Packard Graphics Language) — це , створена компанією Hewlett-Packard (HP). HP-GL була основною мовою керування принтером, яку використовували плотери HP. Вона була представлена разом з плотером HP-9872 у 1977 році і стала стандартом майже для всіх плотерів. Принтери Hewlett-Packard також зазвичай підтримують HP-GL/2 на додаток до . (NB. Chapter 15-21 also contain a description of HP-GL/2.)

Дизайн

HP-GL Мова формується з серії кодів двох букв (мнемоніки), за якими йдуть не обов'язкові параметри. Наприклад, дугу можна намалювати на сторінці, надіславши рядок:

AA100,100,50;

Це означає Arc Absolute, і параметри розміщують центр дуги в абсолютних координатах 100,100 на сторінці з початковим кутом 50 градусів, виміряним проти годинникової стрілки. Четвертий не обов'язковий параметр (тут не використовується) визначає, наскільки далеко триває дуга, і за замовчуванням він становить 5 градусів.

Система координат базувалася на найменших одиницях, які міг підтримувати один із плотерів HP, і була встановлена на 25 мкм (тобто 40 одиниць на міліметр, 1016 на дюйм). Координатним простором були додатні та від'ємні числа з рухомою комою, зокрема ±230. Відлік координат визначається в усі боки від початку координат, який знаходиться у центрі системи координат.

Коли HP-GL був вперше представлений, він містив такі команди: Команда Значення Група векторів 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] +Команди додано 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, відлік координат визначається вниз і вправо від початку координат, який знаходиться у лівому верхньому куті системи координат.

Приклади Типові файли HP-GL починаються з кількох команд налаштування, за якими йде довгий ряд графічних команд. Файл був у форматі ASCII (текстовий файл), наприклад: +Приклад файлу HP-GL Команда Значення ініціалізувати, розпочати роботу з малювання встановіть точки масштабування (P1 і P2) на положення за замовчуванням виберіть ручку 1 підніміть ручку вверх і перейдіть до початкової точки для наступної дії опустіть ручку вниз і перейдіть до наступних місць (намалюйте рамку навколо сторінки) підніміть ручку вгору та перейдіть до координат X, Y 50,50 намалюйте коло радіусом 25 вибрати стандартний набір символів встановіть роздільник тексту на зірочку та не друкуйте їх (1, що означає «вірно») підніміть ручку та перейдіть до 20,80 намалювати мітку +Приклади команд 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 та .

Цікаві факти

Мови керування HP-GL та HP-GL/2 працюють у двомірній системі координат (X, Y), за виключенням команд підняття та опускання ручки (два положення по осі Z). Внаслідок цього такий формат також підходить для 2-осьових різальних плотерів (для паперу, плівок, листових пиломатеріалів та металопрокату тощо), у тому числі лазерних та гравіювальних CNC-верстатів. Для 3-осьових (X, Y, Z), багатоосьових (4 і більше осей) і багатофункціональних мультиінструментальних верстатів з числовим програмним керуванням замість HP-GL та HP-GL/2 використовується мова керування G-code.

Див. також

(інша мова плотера від Houston Instruments) G-code (мова керування CNC-верстатами) (векторний формат опису друкованих плат) (мова вбудовування растрової графіки у мову HP-GL) Logo (комп'ютерна мова з командами малювання, схожими на HP-GL)

Примітки

Джерела

Посилання

(Python-бібліотека з підтримкою HP-GL для керування вінтажними ручковими плотерами) HP-GL Viewer (переглядач та конвертер файлів HPGL, HPGL/2, PLT) розроблений в CERN Draw from HPGL (вільний переглядач HP-GL файлів для на мові Perl та графічним інтерфейсом на основі Gtk2-perl)