制御命令

HP-GL/2エミュレーションモードで使用できる制御命令について説明します。独自の制御プログラムを作成するときなどに、必要に応じてお読みください。
作図データや文字をiRシリーズ/imagePRESSシリーズ/imageRUNNER ADVANCEシリーズで印刷する際は、制御命令によって作図の細かい指示が行われています。本エミュレーションモードでは、HP Designjet 800でサポートしているHP-GL/2(Hewlett Packard-Graphics Language)命令およびHP RTL(Hewlett Packard Raster Transfer Language)命令によって図面やグラフを描くことができます。
アプリケーションソフトウェアを使用して印字するときは、アプリケーションソフトウェア側で自動的にこの制御命令を送り出しています。独自に作成したプログラムで印字する場合は、本カテゴリに記載される制御命令の説明をご覧ください。

制御命令の種類

HP-GL/2およびHP RTL命令の書式について説明します。

HP-GL/2命令の書式

HP-GL/2命令には、決まった書式があります。
たとえば、HP-GL/2の作図命令を使って、座標(1000,500)から(2000,3000)の位置まで直線を引く場合、次のような命令を送ります。
PA1000,500;
PD;
PA2000,3000;
PU;
iRシリーズ/imagePRESSシリーズ/imageRUNNER ADVANCEシリーズは、この命令を受け取ると、座標(1000,500)に現在位置を移動して、その点から座標(2000,3000)までの間に、現在選択されているペン(線の太さ、グレータイプおよび指定カラー)で直線を引きます。
「PA」、「PD」などの先頭のアルファベットの2文字が命令を示します。
命令によっては、いくつかのパラメータを伴うものがあります。
たとえば、「PA」の後ろには座標を示す2つのパラメータが必要になります。パラメータが複数の場合は、パラメータの間に「,」をつけてパラメータを区切ります。
また、命令の最後には、その命令の終わりを示すターミネータ「;」を付けます。パラメータの不要な命令では、省略することも可能で、次の命令を続けて送ることもできます。
(本エミュレーションモードでは、HP-IBインターフェイスを使用できませんので、 LF コードをターミネータとして使用することはできません。)
なお、文字プロットに関する命令(LB命令)では、ターミネータに ETX コードを使用します。
文字プロット命令以降に続く文字列データの最後に ETX コードを付加します。ただし、ホストコンピュータ上の問題で ETX コードを使用できない場合は、ターミネータ設定命令によって ETX コードをほかの文字キャラクタに変更することも可能です。
HP-GL/2命令のパラメータには、次の3種類のデータの種類(型)があります。
整数型
整数値を指定します。
整数型の指定範囲:-8388608~+8388607
例:ペン選択命令 SP2;
実数型
実数値を指定します。
実数型(sd)の指定範囲:-8388608.00000000~+8388607.00000000
例:絶対文字方向命令 DI2.5,-2;
文字型
文字、数式、文字変数などを指定します。
[paragraphstyle:text_level2:例:文字プロット命令 LBPLOTTER ETX
表中の指定範囲は、HP-GL/2でエラーにならない値であり、実際の有効範囲(パラメータとして意味を持つ値)は命令によって異なります。
命令によっては、パラメータを必ず指定するものと、省略できるものがあります。以降の説明では、それぞれのパラメータを2種類のカッコで区別しています。
また、カッコの中には、パラメータのデータ型を示します。
>
:必ず指定するパラメータ
《 》
:省略できるパラメータ
<(i)>
:整数型
<(sd)>
:実数型
<(DEC)>
:整数型文字データ(10進数)
<(ASC)>
:文字型データ(ASCII文字)

HP RTL命令の書式

HP RTLコマンドは、Escape Sequenceコードに基づくコマンド体系です。本コマンドはJISのESC(16進数:1B)文字に始まり、二つ以上の文字で構成されています。
たとえば、パラメータ付きのEscape Sequenceコードは以下の形式で構成されています。
入力例: Esc X y # Z
X : パラメータ文字('%'、'&'、'*')
y* : グループ文字('a'、'b'、'n'、'r' 、't' 、'v')
#* : 各命令に対応する数値を指定します。
Z : 終了文字
[Data] : バイナリデータ(8ビット)
* 命令によっては、省略できるものもあります。
実際のコマンドには、スペースは含まれません。
12L1-2HY