製造現場の叫び?!

プログラム作成に入ります。座標値をもとめる式よりコーナー C面取りは条件として(+I,+J)、(+I,-J)、(-I,+J)、(-I,-J)の 4パターンあるこれをIF文をつかって分岐させる事にしてWHILE 文で荒加工の繰り返しを行うことにしました。 IF文は IF[#2GT0]GOTO10 なら#2が0より大きい時、行番号10 に行く。WHILE文は WHILE[#2GT0]DO1 といれたら必ず下の行に END1 を書き、#2が0より大きいならEND1までの間の行 を実行しなさい。ということです。下に流れ図を書いてみました。

改めて流れ図書くとよくわかるのですが、最終の荒加工経路、要らないです。 実際にプログラム作ったときはこのような図を書かずにつくりました。 だからすっきりしないプログラムができてしまったのだと反省しています。
これを基に以下にあるプログラムをつくってみました。

% O8015(SOKUMENN/KOUNAA-C)
G90
IF[#24EQ#0]GOTO30
IF[#25EQ#0]GOTO30
IF[#2EQ#0]GOTO30
IF[#3EQ#0]GOTO30
IF[#3GT2]GOTO30
IF[#3LT1]GOTO30
IF[#4EQ#0]GOTO30
IF[#5EQ#0]GOTO30
IF[#9EQ#0]GOTO30
IF[#11EQ#0]GOTO30
IF[#17EQ#0]GOTO30
IF[#20EQ#0]GOTO30
IF[#13EQ#0]GOTO30
GOTO50
N30#3000=175(INPUT ERROR)
N50
IF[#3EQ2]GOTO60
#2=#2+#17*2.0
N60
#140=ABS[#4]
#141=ABS[#5]
#100=ATAN[#141]/[#140](ARUFA)
#100=ABS[#100]
#101=90.0-#100(BEETA)
#102=#2/2(KOUGU-HANNKEI)
#103=#102+5.0
#105=#103*COS[#100]/SIN[#100]
#106=#102/SIN[#100]
#108=#103*COS[#101]/SIN[#101]
#109=#102/SIN[#101]

#111=#24+#4-#105+#106
#112=#25+#103
#113=#24+#103
#114=#25+#5-#108+#109
#115=#24+#4+#105-#106
#116=#25-#103
#117=#24-#103
#118=#25+#5+#108-#109

#120=ABS[#4]*SIN[#100](KAKOU/HABA)
#121=#120/#2/0.8(HABA/KOUGUKEI80)
#122=FUP[#121](KAKOU-KEIRO-SUU)

(ARA-KAKOU)

#125=#11/#20(KIRIKOMI/Z)
#126=#125
#124=#122

WHILE[#3EQ1]DO1
WHILE[#126LE#11]DO2
#124=#122
WHILE[#124GT1]DO3
#123=#124-1.0
IF[#4GT0]GOTO100
GOTO300
N100
IF[#5GT0]GOTO200
(+X-Y)
#130=#117
#131=#114+#109*#123
#132=#115-#106*#123
#133=#112
GOTO500
N200
(+X+Y)
#130=#115-#106*#123
#131=#116
#132=#117
#133=#118-#109*#123
GOTO500
N300
IF[#5GT0]GOTO400
(-X-Y)
#130=#111+#106*#123
#131=#112
#132=#113
#133=#114+#109*#123
GOTO500
N400
(-X+Y)
#130=#113
#131=#118-#109*#123
#132=#111+#106*#123
#133=#116
N500
G00X[#130]Y[#131]
G00Z[#9+5.0]
G01Z[#9-#126]F[#13]
G01X[#132]Y[#133]
G00Z[#9+50.0]
G00X[#24]Y[#25]
#124=#124-1.0
END3
IF[#4GT0]GOTO600
GOTO800
N600
IF[#5GT0]GOTO700
(+X-Y)
#130=#117
#131=#114
#132=#115
#133=#112
GOTO1000
N700
(+X+Y)
#130=#115
#131=#116
#132=#117
#133=#118
GOTO1000
N800
IF[#5GT0]GOTO900
(-X-Y)
#130=#111
#131=#112
#132=#113
#133=#114
GOTO1000
N900
(-X+Y)
#130=#113
#131=#118
#132=#111
#133=#116
N1000

G00X[#130]Y[#131]
G00Z[#9+5.0]
G01Z[#9-#126]F[#13]
G01X[#132]Y[#133]
G00Z[#9+50.0]
G00X[#24]Y[#25]
#126=#126+#125
END2
#3=#3+5.0
END1
(SIAGE)
WHILE[#3EQ2]DO1
IF[#4GT0]GOTO1600
GOTO1800
N1600
IF[#5GT0]GOTO1700
(+X-Y)
#130=#117
#131=#114
#132=#115
#133=#112
GOTO11000
N1700
(+X+Y)
#130=#115
#131=#116
#132=#117
#133=#118
GOTO11000
N1800
IF[#5GT0]GOTO1900
(-X-Y)
#130=#111
#131=#112
#132=#113
#133=#114
GOTO11000
N1900
(-X+Y)
#130=#113
#131=#118
#132=#111
#133=#116
N11000
G00X[#130][#131]
G00Z[#9+5.0]
G01Z[#9-#11]F[#13]
G01X[#132]Y[#133]
G00Z[#9+50.0]
G00X[#24]Y[#25]
#3=#3+5.0
END1
M99
%


今現在は以上のようなプログラムになっています。 始めは機械にいれて、マシンロックかけて確認したら途中で止まって修正の嵐。 なんとか無事プログラムが終了して、 NCの描画で色々条件をかえてチェックしてまたまた修正して 、そして削ってみました。無事削れました。
しかし問題点は仕上げしろ#17の扱いかたがおかしい事 工具径の10%以下に限定しておけば大丈夫だと思うのですが、 工具径と同じ仕上げ代いれたらしま模様に島が残ると思う(未確認)。 それと途中で記述したけど荒加工の経路の考え方が余分な事をしている。 時間作って直したい。(でもなかなか直さないのです。このプログラム作るのに3日かかった。)以上!


(追記) 勢いで、長穴(トラック)、四角穴(ポケット)、一端面、L字型、円弧(内径) も作成し機械で簡単なチェック済み。それとこのプログラム使ってみたい人がいましたら 使ってみて下さい。浜松合同のナスカ編集、通信の場合、このページの表示(V) のソースでノートパッドを開きプログラム以外を削除して保存してから保存した ファイルの拡張子を.dncにすれば使えると思います。なお、プログラムを使ってトラブルがおきても保障はしません。