スペース ( 空白 ) の処理 その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 ... 終わり
|