JDGMILL講座 その1
ミニオイクリッド言語

JDGMILL ではミニオイクリッド言語と呼ばれるプログラム言語が使用されています。
JDGMILL ではこのミニオイクリッド言語でプログラムを作成する事でポストプロセッサの設定を可能としています。

ではミニオイクリッド言語とは何でしょう?
名前から簡易的なオイクリッド言語というのは見て取れます。

ではオイクリッド言語とは何でしょう?

オイクリッドではメニューによる操作以外にキーボードからコマンドを入力して処理をさせるという事ができます。
その際に入力するコマンドがオイクリッド言語と呼ばれるものです。
オイクリッド言語は1つ1つ入力して処理させる事もできますが、処理させたい順に複数並べて一括で処理させる事もできます。
オイクリッド言語が複数並べられたものはオイクリッド言語プログラムと呼ばれています。
オイクリッド言語プログラムを利用すると複雑な計算を自動で処理させたり、メニュー操作では手数の多くなるような処理を
ワンタッチで処理させたりと、オイクリッドをより使いやすく便利にする事が可能になります。

 

オイクリッド言語には非常に多くのコマンドが用意されており、これらのコマンドを組合わせる事であらゆる処理を可能としています。
しかし、CLT データを NC データに変換するだけのポストプロセッサである JDGMILL にはすべてのオイクリッド言語は必要では
ありません。
オイクリッド言語の一部のコマンドだけが使える、機能を限定したオイクリッド言語がミニオイクリッド言語として誕生しました。

ミニオイクリッド言語とはいえ、基本はオイクリッド言語です。
JDGMILL 講座その1ではオイクリッド言語について勉強してみましょう。

オイクリッド言語の勉強をするには、JDGMILL ではなくオイクリッドの中でコマンドを入力した方が結果もリアルタイムに返ってきて
動作がわかり易いので、まずはオイクリッドの中で見てみることにしましょう。

それではオイクリッドを起動してください。
オイクリッドを起動したら、メニュー「ファイル」→「コマンド画面」を選びます。

そうすると画面内に下図のような画面が現れると思います。この画面はコマンド画面と言い、処理結果を見たり、オイクリッド言語の
コマンドを入力する時に使用します。コマンド画面は「ファイル」→「コマンド画面」を選ぶ度に出たり消えたりします。

では実際にオイクリッド言語を入力してみましょう。次行のコマンドをコマンド画面に入力してみてください。

A := 123 ;

(入力の様子)

コマンドを入力後、Enterキーを押すとコマンドが実行されます。

入力した内容に間違いがあって正しく処理されなかった場合には間違いのある場所を示すと共にエラーメッセージが表示されます。
 

左図は入力間違いの1例です。
表示されるエラーメッセージは間違いの
内容によって変わります。

コマンドが正しく処理された場合には次のように表示されます。

コマンド画面には2行の表示が出てきています。
この場合、1行目は入力したコマンド、2行目はコマンドの処理結果を表しています。

さて、この入力したコマンドは何をするためのコマンドだったのでしょう?
このコマンドは代入という処理を行なわせるためのコマンドです。

それでは代入とは何をするものなのでしょうか?

オイクリッド言語では変数というものが使われます。
変数とは数値などの値を保管しておくための入れ物です。変数には名前があり、名前で個々の変数を区別しています。
代入とはこの変数に値を保管させる事です。

先程のコマンドでは名前をAとした変数に123を代入しなさいという意味になります。
イメージで表すと下図のようになります。

:= は代入を表すコマンドです。代入は常に右辺から左辺に向かって行われます。
ですから先程のコマンドでは右辺にある 123 が左辺の A に代入されるということになります。
代入コマンドを分解して見てみると下表のようになります。

:= 123 ;
変数 代入 コマンドの終了

この表をよくみるとコマンドの終了というものがあります。
オイクリッド言語では必ずコマンドの終わりに ; (セミコロン) を付ける決まりになっています。
これはセミコロンによって1つのコマンド指示の終了位置を判断しているためです。
例えば、以下のように2つのコマンドを処理させるつもりで2行に分けてそれぞれのコマンドを入力したとします。

A := 123
B := 456 ;

一見すると、変数 A に 123 、変数Bに 456 を代入するという2つのコマンドに見えます。
ところがよく見ると1行目の最後のセミコロンが抜けています。
オイクリッド言語ではセミコロンまでを1つのコマンドとして判断しますので、オイクリッド言語の中では次のように解釈されます。

:= 123 B := 456 ;

この場合、変数 A に 123B := 456 を代入しなさいという意味になりますが、変数に代入式を代入するという事は
オイクリッド言語の文法では認められていないのでエラーとなります。
もし文法が認められていたとしてもこの場合、変数 A に代入される内容が期待したものと違う物になりますのでこれは間違いと
いうことになります。
オイクリッド言語を記述する時によくセミコロンを書き忘れることがありますので注意するようにしてください。

 

では次に以下のコマンドをコマンド画面に入力してみてください。

PRINT (A) ;

(入力の様子)

コマンドを入力後、Enterキーを押すとコマンドが実行されコマンドが正しく処理された場合には次のように表示されます。

コマンド画面には2行の表示が出てきています。
この場合、1行目は入力したコマンド、2行目はコマンドの処理結果を表しています。
処理結果を見ると、123 と表示されています。
このコマンドは何をするコマンドだったのでしょう?

このコマンドは値を表示しなさいというコマンドです。
書式は PRINT (  ) ;  で表し、表示させたい値を括弧の中に記述します。

上記の例では PRINT(A); と入力していましたので括弧の中にある A が値として表示されることになります。
でも何か変です。
表示される値はAのはずなのに、処理結果として表示されたのは 123 です。
これはどういう事でしょう?

じつは、A  というのは A という文字そのものの事ではなく、変数の名前を表しています。
そのため、このコマンドは変数 A の内容を表示しなさいという意味で処理されて、処理結果として 123 を表示したのです。
123 というのは先程、代入のところで変数 A に 123 を代入しましたのでその値が表示されていたわけです。

では次に、PRINT ("A") ;  と入力してみてください。

(入力の様子)

コマンドを入力後、Enterキーを押すとコマンドが実行されコマンドが正しく処理された場合には次のように表示されます。

コマンド画面には2行の表示が出てきています。
この場合、1行目は入力したコマンド、2行目はコマンドの処理結果を表しています。
処理結果を見ると、今度は A と表示されています。

同じように表示させたい値に A を指定したのに、123 と表示された時の場合と何が違うのでしょう?

値の部分を見比べてください。
123 と表示された時は A と書いて、A と表示された時は ”A” と書いています。
違いがわかりましたか?
そうです。 ” ”  (ダブルコーテーション) で囲っているか、いないかの違いです。

ダブルコーテーションを付けていない時は、指示した値は変数名として解釈されます。
それに対してダブルコーテーションを付けて囲った場合にはその内容がストリング (文字列) として解釈されます。
ストリングが指示された場合にはその内容がそのまま表示されますので、処理結果には A と表示されたわけです。

 

では、おさらいです。

これまでに3種類のオイクリッド言語コマンドについて見てきました。

代入

A := 123 ;

変数の内容を表示

PRINT ( A ) ;

ストリングを表示

PRINT ( "A" ) ;

これから設定しようとしている JDGMILL ではこの3種類のオイクリッド言語コマンドが理解できていれば十分です。

以下は応用です。特に PRINT コマンドに注目してください。
3つの変数とストリングを  , (カンマ) で区切って続けて書いています。

A := 123 ;

変数 A に 123 を代入

B := 456 ;

変数 B に 456 を代入

C := " TEST " ;

変数 C にストリング " TEST " を代入

PRINT ( A, B, C, " XYZ " ) ;

変数 A・B・C とストリング " XYZ " を続けて表示

結果は次のようになります。

このようにカンマで区切って表示したい値を並べると複数の値を1行にまとめて表示させる事ができます。

オイクリッド言語についてはここまでです。

次回、JDGMILL 講座その2では「JDGMILL 設定モード」について説明します。

目次 その2