ドリル加工(途中)にドウェルを入れたい

ドリル加工(途中)にドウェルを入れたい

k-yamaguchiJ3GYK
Advocate Advocate
3,545件の閲覧回数
14件の返信
メッセージ1/15

ドリル加工(途中)にドウェルを入れたい

k-yamaguchiJ3GYK
Advocate
Advocate

皆様お世話になっております

 

ドウェルを.png

G01 G00で作成されたドリルプログラムで

「送り高さ」「ボトム高さ」の後にG04(ドウェル)を入れたいのですが

POST編集でこのような事は可能なのでしょうか。

 

ご教授をよろしくお願いいたします。

0 件のいいね
3,546件の閲覧回数
14件の返信
返信 (14)
メッセージ2/15

Bunga777
Mentor
Mentor

本来こちらの設定でその出力がされるはずなんですが、出てこないんですよね。

Fusion360 2023-01-19 11.58.34.png

出力結果を見ると、expandCyclePoint で固定サイクルをしないように出力していると思うんですが、 expandCyclePoint の中でこれらのDwell処理を含めてやっている筈なんですよねぇ……。
 
はて、、、何か他に設定が有るんだろうか??

 

メッセージ3/15

Bunga777
Mentor
Mentor

ああ、、、違いますね、すみません勘違いしてますね。

深穴ドリルで設定されているDwellはしっかり出力されてるんですね。

 

え~~っと、となると expandCyclePoint っていう関数を弄くらないとどうにもならないんですが、これがポストの中ではなくてもっと上位の関数群に入っているんで、そこを編集する方法があるのかどうか……。

 

この辺知ってますかね? @kandennti さん

メッセージ4/15

k-yamaguchiJ3GYK
Advocate
Advocate

@Bunga777 様

 

こんにちは

難しい内容みたいですね、、

 

「上位の関数群」の編集ですか、、

 

私にはまだ全くの領域です。。

0 件のいいね
メッセージ5/15

kandennti
Mentor
Mentor
解決済み

@Bunga777 さん

 

expandCyclePointを使わない方法があるらしいです。

 

こちらを見つけました。

https://forums.autodesk.com/t5/hsm-post-processor-forum/customize-expandcyclepoint/m-p/6094050#M5435 

haas.cpsの "tapping-with-chip-breaking"を参考にしろ

との事ですが、ズバリの答えが記載されていない為、

今眺めています。

メッセージ6/15

kandennti
Mentor
Mentor

@Bunga777 さん

 

時間が無いので途中です。ここに少し説明がありました。

https://cam.autodesk.com/posts/reference/cycles.html 

個人的に謎だった "cycle" はこれが該当するようです。

 

"deep-drilling"部のみで、elseは元のままです。

    case "deep-drilling":
      if (P > 0) {
        // expandCyclePoint(x, y, z);
        // **********
        var u = cycle.stock;
        var step = cycle.incrementalDepth;
        while (u > cycle.bottom) {
          if (step < cycle.minimumIncrementalDepth) {
            step = cycle.minimumIncrementalDepth;
          }
          u -= step;
          step -= cycle.incrementalDepthReduction;
          gCycleModal.reset(); // required
          if ((u - 0.001) <= cycle.bottom) {
            u = cycle.bottom;
          }

          feedOutput.reset()
          writeBlock(
            gFormat.format(01), zOutput.format(u), feedOutput.format(F)
          );
          writeBlock(
            gFormat.format(04), "P" + milliFormat.format(P)
          );
          writeBlock(
            gFormat.format(00), zOutput.format(cycle.retract)
          );
          writeBlock(
            gFormat.format(04), "P" + milliFormat.format(P)
          );
        };
        forceFeed();
        break;
      } else {
        writeBlock(
          gRetractModal.format(98), gCycleModal.format(83),
          getCommonCycle(x, y, z, cycle.retract, cycle.clearance),
          "Q" + xyzFormat.format(cycle.incrementalDepth),
          // conditional(P > 0, "P" + milliFormat.format(P)),
          feedOutput.format(F)
        );
      }
      break;

 

 ベタベタになっており、穴あけ方向がZ軸意外だと駄目なはずです。

ポスト処理したものはこちら。

1.png

元の各Z値が異なるのと、矢印部のG80は不要なはずなのですが

食い止め方が分かっていません。

 

"while" でZ値を計算しながら書き出していますが、bottomから
逆算してZ値のリストを先に作ってから書き出すと、元のZ値と
一致するような気がしますが、確認していません。
 
又、詳しく調べていませんが、"ペック深さ短縮" を設定しても
上記の状態では無視する事になると思います。
1.png
これは実際に使わないで欲しいです。
確認がかなり足りず、特に後の工程に影響する可能性が高いです。
メッセージ7/15

kandennti
Mentor
Mentor
解決済み

@k-yamaguchiJ3GYK さん。

 

添付されていたf3dファイルで同等な結果になる様にしつつ、ドウェルを

追加するようにしました。(左が元の状態、右が変更後の状態です)

1.png

 

「送り高さ」「ボトム高さ」等を変更した場合やG17以外の時に

正しい結果が得られるかどうかを確認しておりません。

 

コメントの"DEEP-DRILLING-START" - "DEEP-DRILLING-END" 間に

何か影響が出るかも知れませんので、注意してください。

(特に"G01 Zxx Fxx"の前の行)

メッセージ8/15

k-yamaguchiJ3GYK
Advocate
Advocate

@kandennti 様

 

大変難しい内容に対応して頂き有難う御座います。

 

いろいろな条件を設定して確認をします。


頂いた.cpsデータは私自身の勉強にも使わせて頂きます。

 

本当に有難うございました!

 

 

メッセージ9/15

Bunga777
Mentor
Mentor

なるほど、CycleのプロパティとしてCAMで指示した値が入っているんですね。

 

こうやって計算して使っちゃって良いってことか……。

なるほど、なるほど。

 

これは良いことを知りました(^o^)

 

@kandennti さんが持ってきたこのコードは、例のHaasのポストに入っていたコードってことですかね?

私も後で調べてやってみようと思います。

メッセージ10/15

k-yamaguchiJ3GYK
Advocate
Advocate

@Bunga777 様

 

「haas.cps」とは??

フリーでの入手可能なものなのでしょうか

 

教えて頂けないでしょうか

よろしくお願いします。

 

0 件のいいね
メッセージ11/15

k-yamaguchiJ3GYK
Advocate
Advocate

これのことでしょうか?

HAAS.png

 

0 件のいいね
メッセージ12/15

Bunga777
Mentor
Mentor
解決済み

そうですね、それがHaasっていうメーカーのポストです。

 

@kandennti さんが教えてくださったスレッドに

 


haas.cps を調べて、「tapping-with-chip-breaking」の実装を探してください。これは、計算を行い、展開された NC コードを出力する方法を示しています。

てな書き込みがありましたから、私はまだHaas.cps内を調べていませんが、コード内を検索すれば該当するコードが出てくると思います。時間があったら見て教えてくださいな。(ちょっと私自身が今仕事で追われていてなかなか時間がとれず)

 

なぜHaasのポストにだけこの処理が実装されているのか?が不思議です。

Fusion360のポストとしてAutocadで公開されているHSMWorksのポスト郡がどういう経緯でここに公開されているのか?が分からないのでなんとも言えませんが、少なくともHaasのポストを手掛けた方がかなりマシニングの加工とプログラミングに精通している方なんだなぁって気がします。

 

メッセージ13/15

k-yamaguchiJ3GYK
Advocate
Advocate

@Bunga777 様

 

ご確認ありがとうございます。

 

手探りながら調べてみます!

 

 

 

 

0 件のいいね
メッセージ14/15

kandennti
Mentor
Mentor
解決済み

@k-yamaguchiJ3GYK さん @Bunga777 さん

 

>なぜHaasのポストにだけこの処理が実装されているのか?が不思議です。

恐らくなのですが、Autodesk社が所有している機械がHaasなのだろうと

思います。(両社共にアメリカ)動画で見た記憶があります。

実機でテストが出来るので、テストした上で他のcpsファイルに展開して

いるような気がします。

 

 

かなり自信が無い為、簡単なご説明を。

1.png

こちらはhaas.cpsの物ですが、G17~G19に対応させる為に赤印部分を利用しました。

緑矢印部は、不要な座標値が出力されるので使いませんでした。

ひょっとしたら、斜め方向に穴あけする際に都合が悪い可能性があります。

G0G1の動きなので黄色の"gRetractModal"は不要と考えました。

 

 

1.png

こちらは編集したものです。赤矢印部分ですが一度リトラクト後、

次の穴加工位置までG0で降りてくる座標です。

ここは前ステップで加工した位置より "+2mm" にしています。

ここがこれで良いのかが分かっていません。

本来であればR点に設定された高さにすべきに感じましたが、

調べきれませんでした。(眠かった・・・)

 

又、こちらで不要なG80の消し方が分からないと書きましたが

https://forums.autodesk.com/t5/fusion-360-ri-ben-yu/doriru-jia-gong-tu-zhong-nidoueruwo-ruretai/m-p/... 

こちらの

cycleExpanded = true;

にする事で出力されない事が分かりました。

1.png

これはonCycleEnd関数の処理で影響します。

ひょっとしたらですが強制的にtrueにしている為、一つの穴あけで

複数の穴を指定した場合、正しくない処理をするかもしれません。

確認していませんので、よろしくお願いします。

 

 

ちなみに、F1にはHaasのチームがあります。

2021年のドライバーはルーキー2名と大ギャンブルしましたが、

2023年はベテラン2名です!(ミックで良かったと思うけど)

メッセージ15/15

k-yamaguchiJ3GYK
Advocate
Advocate

@kandennti 様

 

postの解説をありがとうございます!


職人さんは技術の出し惜しみのイメージがあるのですが
積み重ねて出来た知識をこの様に教えて頂ける事に感謝しかありません!!

 

今回のながれでHaas機械の存在を知しりました、
そしてF1チームがある事こともw

 

いろいろな情報もありがとうございますっ


週末、、いまから呑みながらpost勉強はじめます~