JDGMILL講座 その9
スペース ( 空白 ) の処理

その7その8 ではプログラムの先頭部分について見てきました。
その中で、プログラム中に PRINT("G00 G90 G17 G49 G40 G80"); のように出力する内容にスペース ( 空白 ) を含んでいるものが
ありました。

PRINT("%");
PRINT(PID,"(",PARTXT,")");
PRINT("(", DMNAM, ")" );
PRINT("(", DPPNA, DVERS, ")" );
PRINT("(", DNCF, ")" );
PRINT("(", DATE, DTIM, ")" );
PRINT("G00 G90 G17 G49 G40 G80");
PRINT("G28 G91 Z0");

しかし、実際に出力された NC データを見てみるとスペース ( 空白 ) が無くなっています。
これはどういう事でしょう?

%
O9001( JDGMILL-TEST )
( Standard )
( DGMILL 2003 )
( D:\eukuser\test.ppp )
( 31-Jul-2003 16:27:54 )
G00G90G17G49G40G80
G28G91Z0

JDGMILL ではプログラム中のスペースの部分をすべて詰めて NC データを出力する仕様になっています。
そのため、PRINT コマンドの中でいくらスペースを入れても NC データにはスペースは出力されません。

一般的な NC 制御装置ではスペースは意味を持たないため、通常は省略して使用されます。
これには NC データのサイズをできる限り小さくするという目的もあります。

しかし、特殊な制御装置などでどうしてもスペースを入れないといけない場合もあるでしょう。
そのような時はどうすればいいのでしょうか?
そういう時はスペースの代わりに || ( パイプラインを2文字続けて並べる ) を書けば、その部分にスペースが出力されるように
なります。
( パイプラインはSHIFTキーを押しながら\キーを押すと出ます。)

では、プログラムを次のように変えてみましょう。

PRINT("%");
PRINT(PID,"(",PARTXT,")");
PRINT("(", DMNAM, ")" );
PRINT("(", DPPNA, DVERS, ")" );
PRINT("(", DNCF, ")" );
PRINT("(", DATE, DTIM, ")" );
PRINT("G00||G90||G17||G49||G40||G80");
PRINT("G28 G91 Z0");

以前と違うのは、スペースの代わりに || を入れている点です。
このプログラムで出力される N Cデータは以下のようになります。

%
O9001( JDGMILL-TEST )
( Standard )
( DGMILL 2003 )
( D:\eukuser\test.ppp )
( 31-Jul-2003 16:27:54 )
G00 G90 G17 G49 G40 G80
G28G91Z0

スペースは基本的に出力しないように設定して、必要に応じてその箇所だけに || を使ってスペースを出すようにすると良いでしょう。

プログラム中にいくらスペースを入れても NC データには出ませんので、この特性をうまく利用してプログラムを見やすく書くことも
できます。
以下の2つのプログラムは同じNCデータが出力されるプログラムです。違いはスペースを間に挿入しているか、いないかです。

スペースなし スペースあり

PRINT("G90G00X0Y0Z100.");
PRINT("G00Z50.");
PRINT("X20.Y30.");
PRINT("Z5.");
PRINT("G01Z0F250");
PRINT("X50.Y60.");

PRINT( " G90 G00 X0 Y0 Z100. " );
PRINT( " G00 Z50.            " );
PRINT( " X20. Y30.           " );
PRINT( " Z5.                 " );
PRINT( " G01 Z0 F250         " );
PRINT( " X50. Y60.           " );

どちらのプログラムの方がわかりやすいですか?

 

JDGMILL講座 その9 ... 終わり

その8 目次 その10