メッセージ1/15
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- パーマリンクを表示
- 印刷
- 報告
皆様お世話になっております
G01 G00で作成されたドリルプログラムで
「送り高さ」「ボトム高さ」の後にG04(ドウェル)を入れたいのですが
POST編集でこのような事は可能なのでしょうか。
ご教授をよろしくお願いいたします。
解決済! 解決策の投稿を見る。
皆様お世話になっております
G01 G00で作成されたドリルプログラムで
「送り高さ」「ボトム高さ」の後にG04(ドウェル)を入れたいのですが
POST編集でこのような事は可能なのでしょうか。
ご教授をよろしくお願いいたします。
解決済! 解決策の投稿を見る。
本来こちらの設定でその出力がされるはずなんですが、出てこないんですよね。
ああ、、、違いますね、すみません勘違いしてますね。
深穴ドリルで設定されているDwellはしっかり出力されてるんですね。
え~~っと、となると expandCyclePoint っていう関数を弄くらないとどうにもならないんですが、これがポストの中ではなくてもっと上位の関数群に入っているんで、そこを編集する方法があるのかどうか……。
この辺知ってますかね? @kandennti さん
@Bunga777 さん
expandCyclePointを使わない方法があるらしいです。
こちらを見つけました。
https://forums.autodesk.com/t5/hsm-post-processor-forum/customize-expandcyclepoint/m-p/6094050#M5435
haas.cpsの "tapping-with-chip-breaking"を参考にしろ
との事ですが、ズバリの答えが記載されていない為、
今眺めています。
@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軸意外だと駄目なはずです。
ポスト処理したものはこちら。
元の各Z値が異なるのと、矢印部のG80は不要なはずなのですが
食い止め方が分かっていません。
添付されていたf3dファイルで同等な結果になる様にしつつ、ドウェルを
追加するようにしました。(左が元の状態、右が変更後の状態です)
「送り高さ」「ボトム高さ」等を変更した場合やG17以外の時に
正しい結果が得られるかどうかを確認しておりません。
コメントの"DEEP-DRILLING-START" - "DEEP-DRILLING-END" 間に
何か影響が出るかも知れませんので、注意してください。
(特に"G01 Zxx Fxx"の前の行)
なるほど、CycleのプロパティとしてCAMで指示した値が入っているんですね。
こうやって計算して使っちゃって良いってことか……。
なるほど、なるほど。
これは良いことを知りました(^o^)
@kandennti さんが持ってきたこのコードは、例のHaasのポストに入っていたコードってことですかね?
私も後で調べてやってみようと思います。
そうですね、それがHaasっていうメーカーのポストです。
@kandennti さんが教えてくださったスレッドに
haas.cps を調べて、「tapping-with-chip-breaking」の実装を探してください。これは、計算を行い、展開された NC コードを出力する方法を示しています。
てな書き込みがありましたから、私はまだHaas.cps内を調べていませんが、コード内を検索すれば該当するコードが出てくると思います。時間があったら見て教えてくださいな。(ちょっと私自身が今仕事で追われていてなかなか時間がとれず)
なぜHaasのポストにだけこの処理が実装されているのか?が不思議です。
Fusion360のポストとしてAutocadで公開されているHSMWorksのポスト郡がどういう経緯でここに公開されているのか?が分からないのでなんとも言えませんが、少なくともHaasのポストを手掛けた方がかなりマシニングの加工とプログラミングに精通している方なんだなぁって気がします。
@k-yamaguchiJ3GYK さん @Bunga777 さん
>なぜHaasのポストにだけこの処理が実装されているのか?が不思議です。
恐らくなのですが、Autodesk社が所有している機械がHaasなのだろうと
思います。(両社共にアメリカ)動画で見た記憶があります。
実機でテストが出来るので、テストした上で他のcpsファイルに展開して
いるような気がします。
かなり自信が無い為、簡単なご説明を。
こちらはhaas.cpsの物ですが、G17~G19に対応させる為に赤印部分を利用しました。
緑矢印部は、不要な座標値が出力されるので使いませんでした。
ひょっとしたら、斜め方向に穴あけする際に都合が悪い可能性があります。
G0G1の動きなので黄色の"gRetractModal"は不要と考えました。
こちらは編集したものです。赤矢印部分ですが一度リトラクト後、
次の穴加工位置までG0で降りてくる座標です。
ここは前ステップで加工した位置より "+2mm" にしています。
ここがこれで良いのかが分かっていません。
本来であればR点に設定された高さにすべきに感じましたが、
調べきれませんでした。(眠かった・・・)
又、こちらで不要なG80の消し方が分からないと書きましたが
こちらの
cycleExpanded = true;
にする事で出力されない事が分かりました。
これはonCycleEnd関数の処理で影響します。
ひょっとしたらですが強制的にtrueにしている為、一つの穴あけで
複数の穴を指定した場合、正しくない処理をするかもしれません。
確認していませんので、よろしくお願いします。
ちなみに、F1にはHaasのチームがあります。
2021年のドライバーはルーキー2名と大ギャンブルしましたが、
2023年はベテラン2名です!(ミックで良かったと思うけど)
postの解説をありがとうございます!
職人さんは技術の出し惜しみのイメージがあるのですが
積み重ねて出来た知識をこの様に教えて頂ける事に感謝しかありません!!
今回のながれでHaas機械の存在を知しりました、
そしてF1チームがある事こともw
いろいろな情報もありがとうございますっ
週末、、いまから呑みながらpost勉強はじめます~