<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>工具径補正 | じじぃの引出し</title>
	<atom:link href="https://www.kazuban.com/blog/tag/tool-diameter-compensation/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kazuban.com/blog</link>
	<description>なにかしら、皆さんの参考になれば幸いです！</description>
	<lastBuildDate>Mon, 10 Apr 2023 07:26:02 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.kazuban.com/blog/wp-content/uploads/2020/05/cropped-ICON-1-32x32.png</url>
	<title>工具径補正 | じじぃの引出し</title>
	<link>https://www.kazuban.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Fusion360 CAMの実践／切削加工用パス作成・底面（平坦部）、側面仕上編</title>
		<link>https://www.kazuban.com/blog/fusion360-path04/</link>
					<comments>https://www.kazuban.com/blog/fusion360-path04/#comments</comments>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Wed, 03 Jun 2020 05:13:13 +0000</pubDate>
				<category><![CDATA[Fusion360]]></category>
		<category><![CDATA[CAM]]></category>
		<category><![CDATA[ポストプロセッサ]]></category>
		<category><![CDATA[工具径補正]]></category>
		<category><![CDATA[平坦部]]></category>
		<category><![CDATA[輪郭]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=2779</guid>

					<description><![CDATA[目次 サンプルモデルと加工用図面平坦部の加工Fusion360 CAM の平坦部加工機能３Ｄグループ・平坦部加工境界高さパス工具径補正・側面輪郭加工２D輪郭閉じた輪郭開いた輪郭「高さ」設定工具径補正を使う「パス」設定NC [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">サンプルモデルと加工用図面</a></li><li><a href="#toc2" tabindex="0">平坦部の加工</a><ol><li><a href="#toc3" tabindex="0">Fusion360 CAM の平坦部加工機能</a></li><li><a href="#toc4" tabindex="0">３Ｄグループ・平坦部</a><ol><li><a href="#toc5" tabindex="0">加工境界</a></li><li><a href="#toc6" tabindex="0">高さ</a></li><li><a href="#toc7" tabindex="0">パス</a></li></ol></li></ol></li><li><a href="#toc8" tabindex="0">工具径補正・側面輪郭加工</a><ol><li><a href="#toc9" tabindex="0">２D輪郭</a><ol><li><a href="#toc10" tabindex="0">閉じた輪郭</a></li><li><a href="#toc11" tabindex="0">開いた輪郭</a></li><li><a href="#toc12" tabindex="0">「高さ」設定</a></li><li><a href="#toc13" tabindex="0">工具径補正を使う「パス」設定</a></li><li><a href="#toc14" tabindex="0">NCデータ作成</a></li></ol></li></ol></li><li><a href="#toc15" tabindex="0">まとめ</a><ol><ol><li><a href="#toc16" tabindex="0">Fusion360 CAM 実践 記事</a></li></ol></li></ol></li><li><a href="#toc17" tabindex="0"></a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1"><a rel="noopener" href="https://www.kazuban.com/soft/CAM_Sample.zip" target="_blank"><span style="color:#ece90d" class="has-inline-color">サンプルモデル</span></a>と加工用図面</span></h2>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2020/03/FusionCamSample.png"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/03/FusionCamSample-1024x745.png" alt=""/></a></figure>



<h2 class="wp-block-heading"><span id="toc2">平坦部の加工</span></h2>



<p class="wp-block-paragraph">ポケットの底面（平坦部）の加工パスを作成してみます。<br>ここでのの平坦部とは、緩斜面ではなく、完全なＸＹ平面と平行な水平面とします。<br>余談ですが、面精度が必要な水平面には、いつも苦労させられます。<br>スクエアやラジアスなどフラットがある工具では、カッターマークがつきやすく、爪が引っかかる程度でも３μ以上の深さになっている場合があります。<br>もしRa0.2程度の面精度で、右側のポケットのように、底Ｒがある形状であれば、ボールエンドミルのほうがいいかもしれません。<br>ただ、ボールでの加工の場合、工具中心は理論的い週速がゼロとなり摩耗しやすい欠点もあります。５軸機で、傾けて削りたいぐらいですね～。<br><br>今回は、加工時間も考慮して、左右ともフラットエンドミルで加工しようと思います。</p>



<h3 class="wp-block-heading"><span id="toc3">Fusion360 CAM の平坦部加工機能</span></h3>



<p class="wp-block-paragraph">Fusion360でのポケット平坦部加工の機能は、「２Ｄポケット」か「３Ｄグループ」の「平坦部」を使用する事が多いと思います。<br>サンプルのような平坦部がすぐに認識できる単純な形状の場合には、「２Ｄポケット」で、平坦部だと分かっている面を触る事で指定できます。<br>こちらのほうが、操作も簡単で、計算時間もほとんどかかりません。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/05/2D_Pockt-1024x483.png" alt=""/></figure>



<h3 class="wp-block-heading"><span id="toc4">３Ｄグループ・平坦部</span></h3>



<p class="wp-block-paragraph">「３Ｄグループ」の「平坦部」を利用すると、自動的にフラットな「水平面」を検出してくれますから、複雑な３D形状で段差がたくさんある場合には、選択する手間もないし、選択忘れなどもないので便利です。<br>ただ欠点としては、検出に計算時間がかかります。</p>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2020/05/3D_flat.png"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/05/3D_flat.png" alt=""/></a></figure>



<h4 class="wp-block-heading"><span id="toc5">加工境界</span></h4>



<p class="wp-block-paragraph">自動検出ですから、「加工境界」は「シルエット」で「高さ」は<br>「モデルボトム」「モデルトップ」でも、各段差の「水平面」を探し出してパス生成してくれます。</p>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2020/05/height.png"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/05/height.png" alt=""/></a></figure>



<p class="wp-block-paragraph">「加工境界」は閉じた領域であれば「モデル境界線」。<br>開いた領域の場合、スケッチで加工境界線を用意しておくと、「シルエット」よりも外側までパスを追加してくれます。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/Flat_Boundary-1024x724.png" alt=""/></figure>



<h4 class="wp-block-heading"><span id="toc6">高さ</span></h4>



<p class="wp-block-paragraph">ただし、「トップ高さ」を「モデルトップ」にして、モデル上面が水平面だった場合、上面の全領域にもパスが出力されます。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/05/TopFace.png" alt=""/></figure>



<p class="wp-block-paragraph"><br>もし必要ない場合には、「オフセット」で若干低い値、例えば「-0.01」などに設定すれば、最上面にはパスが出なくなります。</p>



<h4 class="wp-block-heading"><span id="toc7">パス</span></h4>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2020/06/FlatPasses.png"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/FlatPasses.png" alt=""/></a></figure>



<p class="wp-block-paragraph">「パス」の「公差」は少し検討が必要です。<br>精度的には「0.001」など、小さくしたくなりますが、この値によりかなり計算時間が増加します。<br>ちなみに、筆者の環境で「0.001」にすると、１分５０秒かかりました。<br>「0.01」では６秒、「0.1」にすれば２秒でした。<br>適当なポストでNCデータを作成してみると、確かにパスの長さは変わってきています。<br>ただ、３Ｄ曲面の加工と違い水平面の加工なので、パスの経路が違っていても、Z値は同じになるはずです。<br>Z値が同じと言うことは、一つの要素の長さが多少違っても、深さ精度にはそれほど影響はでないと思います。<br>NCのブロック数が違うので、実際には削ってみないと全く同じ精度になるとは言えませんが、出力時間が待てる程度で、小さく設定すればいいと思います。<br><br>「手動切削ピッチ」をチェックすれば、横方向の切込みピッチを調整できます。<br><br>また「モーフィングスパイラルを使用」をチェックすると、切り替わり目のない渦巻的なパスを出力してくれます。</p>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2020/06/Morphing_spiral.png"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/Morphing_spiral-794x1024.png" alt=""/></a></figure>



<p class="wp-block-paragraph">カッターマークは、経験的にパスからパスへの切り替わり時の鋭角的な動作の機械の加速度が変化する場合にでる比率が高いと思っています。<br>「モーフィングスパイラル」は、渦巻で広がっていくイメージなので、カッターマークが気になる場合には、試してみる価値はあると思います。<br>カッターマーク対策としては、アプローチ位置も、穴など加工済みの位置や、なるべく外側から進入してもらいたいですが、この位置はユーザーが自由に制御できないみたいです。<br>ちょっと残念ですね。今後のアップデートに期待しましょう！</p>



<h2 class="wp-block-heading"><span id="toc8">工具径補正・側面輪郭加工</span></h2>



<p class="wp-block-paragraph">ポケット側面を工具径補正を使って、仕上げる加工を考えてみます。</p>



<h3 class="wp-block-heading"><span id="toc9">２D輪郭</span></h3>



<p class="wp-block-paragraph">Fusion360では、工具径補正を利用する場合には、「２Dモード」の機能しか使えません。<br>たまに、３D等高線加工においても、基本的に工具中心でパスを出すが、工具径補正コードも出力し、調整程度の工具径補正を可能にできるCAMもありますが、３D加工の場合には工具の切削点の位置が変わるので理論的には使用できないと思います。</p>



<h4 class="wp-block-heading"><span id="toc10">閉じた輪郭</span></h4>



<p class="wp-block-paragraph">「２D輪郭」では、「工具」を選択後、「形状」タブで「加工輪郭」を選択します。<br>この輪郭も、事前に用意しておいた「スケッチ線」を選択してもいいですし、モデルから選択する事も可能です。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/2D_ClosedProfile.png" alt=""/></figure>



<p class="wp-block-paragraph">また選択する箇所は、「高さ」の「ボトム高さ」の設定で「選択された輪郭」が選べる事から、可能であれば、最終加工深さの輪郭を選択したほうが楽です。</p>



<h4 class="wp-block-heading"><span id="toc11">開いた輪郭</span></h4>



<p class="wp-block-paragraph">開いた形状の場合ちょっと面倒です。<br>つながっている境界線の場合、閉じた輪郭が自動選択されたり、この画像のように一要素しか選択されない場合があります。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/2D_OpenedProfile01.png" alt=""/></figure>



<p class="wp-block-paragraph">いずれにしもて、認識された輪郭を編集して「開いた輪郭」を選択する場合には、認識された青い線を再度「クリック」します。<br>すると、下画像①のようなアイコンが出現します。<br>上列アイコンの左側が「輪郭を閉じる」右側が「開いた輪郭」の意味です。<br>今回は、「右・開いた輪郭」を選択します。</p>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2020/06/2D_OpenedProfile02.png"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/2D_OpenedProfile02-1024x846.png" alt=""/></a></figure>



<p class="wp-block-paragraph">次に、②のように「開いた輪郭の最後の要素」を選択します。<br>最後の要素が選択できたら、③の「+」マークのアイコン「現在の輪郭を承認」をクリックすると、開いた輪郭が選択できます。</p>



<h4 class="wp-block-heading"><span id="toc12">「高さ」設定</span></h4>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/2D_Profile_Bottom.png" alt=""/></figure>



<p class="wp-block-paragraph">「輪郭選択」で、その輪郭の最終深さを選択している場合には、「高さ」の「ボトム高さ」設定で「選択された輪郭」が利用できます。<br>この場合であれば、複数の深さの輪郭加工を一度に設定できますが<br>それ以外では、高さごとに、機能を追加する事になります。</p>



<h4 class="wp-block-heading"><span id="toc13">工具径補正を使う「パス」設定</span></h4>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/2D_Profile_Passes.png" alt=""/></figure>



<p class="wp-block-paragraph">工具径補正パスを出力させるには、「パス」「補正タイプ」を「制御機」に設定します。<br>「摩耗補正」でも工具径補正コードを出力してくれます。<br>違いは、「制御機」は、選択した輪郭形状を<strong>工具中心</strong>が通るカッターパスとなります。<br>「摩耗補正」は、選択した輪郭形状から<strong>工具半径分オフセット</strong>されたカッターパスとなります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>したがって、「制御機」で作成したNCデータの場合には、機械側の工具径補正値は<br><strong>「工具半径」+「調整値」</strong><br>となります。</p></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>「摩耗補正」の場合には、<br><strong>「調整値」のみ</strong><br>となります。</p></blockquote>



<p class="wp-block-paragraph"><br>ファナックの場合、基本的には工具径補正は機械側で設定するのでミスの原因になりやすいです。<br>どちらで運用するかは、会社のやり方や担当者の考え方によって違うと思いますが、パス作成時には「加工指示書」などを発行し、加工側との意思の疎通が重要になります。<br>また、最終的なNCデータは、ポストプロセッサでも違ってきますから、実際の加工には、十分検証が必要です。<br><br>「仕上げ代」は、「径方向」と「軸方向（深さ方向）」の取り代を設定します。<br>「径方向」の値は、選択した輪郭をその値だけオフセットします。<br>「軸方向」は、「高さ」「ボトム高さ」で設定した値から調整します。</p>



<h4 class="wp-block-heading"><span id="toc14">NCデータ作成</span></h4>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2020/06/2D_Profile-1024x752.png" alt=""/></figure>



<p class="wp-block-paragraph">完成しました。<br>Fusion360に標準で用意されている「FANUC / fanuc」のポストプロセッサでNCデータを作成してみます。</p>



<pre class="wp-block-preformatted">%
O1001 (POSTTEST)
(T4 D=8. CR=0. - ZMIN=-13.95 - FLAT END MILL)
N10 G90 G94 G17 G49 G40
N15 G21
N20 G28 G91 Z0.
N25 G90
()
N30 T4 M06
(AP3D AE0.05D)
N35 S6000 M03
N40 G54
N45 M08
N50 G00 X-40. Y10.
N55 G43 Z50. H04
N60 G00 Z5.
N65 G01 Z1. F1630.
N70 Z-9.95
N75 <strong>G41 Y0. D04</strong>
N80 G03 X-30. Y10. J10.
N85 G01 Y20.
N90 G03 X-40. Y30. I-10.
N95 G01 X-60.
N100 G03 X-70. Y20. J-10.
N105 G01 Y-20.
N110 G03 X-60. Y-30. I10.
N115 G01 X-40.
N120 G03 X-30. Y-20. J10.
N125 G01 Y10.
N130 G03 X-40. Y20. I-10.
N135 G01 <strong>G40 Y10.</strong>
N140 G00 Z50.
N145 X183. Y30.
N150 Z5.
N155 G01 Z1. F1630.
N160 Z-13.95
N165<strong> G41 X193. D04</strong>
N170 G03 X183. Y40. I-10.
N175 G01 X80.
N180 G03 X60. Y20. J-20.
N185 G01 Y-20.
N190 G03 X80. Y-40. I20.
N195 G01 X180.
N200 X183.
N205 G03 X193. Y-30. J10.
N210 G01 <strong>G40 X183.</strong>
N215 G00 Z50.
N220 M09
N225 G28 G91 Z0.
N230 G90
N235 G49
N240 G28 G91 X0. Y0.
N245 G90
N250 M30
%</pre>



<p class="wp-block-paragraph">期待通り、工具径補正コードが出力されています。<br>このポストプロセッサは、標準で用意されているものですが、「Fanuc系」の機械であれば、このままでも使用できそうですね。<br>工具交換、工具長補正、回転、冷却コードなど、ちょっとした手直しは、ポストプロセッサを自社用にカスタマイズする事で希望のデータにできます。<br>Fusion360のポストプロセッサのカスタマイズ性は強力なので、かなり思い通りのNCデータにすることができると思います。<br>ポストプロセッサのカスタマイズ方法などは、いずれ記事にしようと思っています。</p>



<h2 class="wp-block-heading"><span id="toc15">まとめ</span></h2>



<p class="wp-block-paragraph">３D形状を削り出す場合には、補正や２D的な操作はあまり使用しないかもしれませんが、金型など組み合わさるパーツの加工には、幾何的な精度が必要になってきます。<br>その中でも、底面（深さ）と側面（輪郭）の精度は重要です。<br>CAMで出力させたNCデータだけでは満足できる精度では加工できません。<br>削った状態を確認しながら、機械側での調整が必要になります。<br>その場合は今回のような２D的なNCデータが必要になってきます。</p>



<hr class="wp-block-separator"/>



<h4 class="wp-block-heading"><span id="toc16">Fusion360 CAM 実践 記事</span></h4>



<hr class="wp-block-separator"/>



<div class="pager">
  <a class="prev page-numbers" href="https://www.kazuban.com/blog/fusion360-path03/">PREV</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/fusion360-path01/">1</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/fusion360-path02/">2</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/fusion360-path03/">3</a>
  <span aria-current="page" class="page-numbers current">4</span>
  <a class="page-numbers" href="https://www.kazuban.com/blog/fusion360-path05/">5</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/fusion360-path06/">6</a>
  <a class="next page-numbers" href="https://www.kazuban.com/blog/fusion360-path05/">NEXT</a>
</div>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading"><span id="toc17"></span></h2>



<hr class="wp-block-separator"/>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kazuban.com/blog/fusion360-path04/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>ＮＣプログラム／工具径補正</title>
		<link>https://www.kazuban.com/blog/dia-compensation/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 28 Dec 2019 01:16:44 +0000</pubDate>
				<category><![CDATA[NC]]></category>
		<category><![CDATA[Heidenhain]]></category>
		<category><![CDATA[NCプログラム]]></category>
		<category><![CDATA[Roeders]]></category>
		<category><![CDATA[ハイデンハイン]]></category>
		<category><![CDATA[ファナック]]></category>
		<category><![CDATA[工具径補正]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=1518</guid>

					<description><![CDATA[前回、図形を定義する基本的なＧコードの説明をしました。これで、工具経路の輪郭の定義はできるようになると思います。ただ、これは工具中心経路の定義なので、実際の加工を想定すると工具径も考慮する必要があります。また、マシニング [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://www.kazuban.com/blog/nc-gcode-02/">前回、図形を定義する基本的なＧコードの説明をしました。</a><br>これで、工具経路の輪郭の定義はできるようになると思います。<br>ただ、これは<span class="markerYellow">工具中心経路の定義なので</span>、実際の加工を想定すると工具径も考慮する必要があります。<br>また、マシニングセンターのような工具を自動で交換する機械の場合には、使用工具の長さも考慮しなければいけません。<br>前回までのＧコードで、工具径や工具長まで考慮してＮＣプログラムする事は可能ですが、使用工具を変更するたびに移動座標を修正する必要があり、実用的ではありません。<br>基本的な工具経路の輪郭を定義したＮＣプログラムを利用して、補正をかける事で加工に使用できるようになります。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">工具補正指令　／　工具径・工具長</a></li><li><a href="#toc2" tabindex="0">工具径補正</a><ol><li><a href="#toc3" tabindex="0">G41/G42/G40　／　工具径補正指令</a></li><li><a href="#toc4" tabindex="0">スタートアップ・キャンセル／工具径補正</a></li></ol></li><li><a href="#toc5" tabindex="0">工具径補正番号指令</a><ol><li><a href="#toc6" tabindex="0">ファナック／工具径補正番号</a></li><li><a href="#toc7" tabindex="0">ハイデンハイン・レダース／工具径補正</a></li><li><a href="#toc8" tabindex="0">ハイデンハイン iTNC530 の工具径補正指令</a></li><li><a href="#toc9" tabindex="0"> レダース RMS6 の工具径補正指令 </a></li><li><a href="#toc10" tabindex="0">補正量をプログラムで管理する</a></li></ol></li><li><a href="#toc11" tabindex="0">まとめ</a><ol><ol><li><a href="#toc12" tabindex="0">ＮＣプログラムの記事</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">工具補正指令　／　工具径・工具長</span></h2>



<p class="wp-block-paragraph">ＮＣプログラムは、既存の輪郭指令を利用して制御機側の設定で補正をかける事ができます。<br>この機能により、<span class="markerYellow">ＮＣプログラムの修正なしに、</span>使用工具や加工状況に合わせた経路で動作させる事が可能になります。<br>ただし、補正をかけるコードは、互換性があまりありません。<br>ファナック系とＯＳＰでも違いますし、<a href="https://www.kazuban.com/blog/fanuc-heidenhain-roeders/#outline__2_1">ハイデンハインやレダースでは工具管理方法の違い</a>から、補正値を設定しておく補正番号などありません。<br>まずはファナックでの説明を元に、他の制御機にも触れていこうと思います。<br>補正には、工具径補正と工具長補正があります。<br>工具径補正は工具の径方向（製品のサイズ）の調整用です。<br>工具長補正は工具の長さ（製品の深さ）の調整用です。</p>



<h2 class="wp-block-heading"><span id="toc2">工具径補正</span></h2>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/Compensation2.png" alt=""/></figure>



<p class="wp-block-paragraph">図面を描く場合と違って、加工しようとすると、工具の径を考慮する必要があります。<br>工具径が事前にわかっている場合には、上図<span style="color:white; background-color:blue;">青線</span>のように仕上がり寸法に対して、工具半径分オフセットした輪郭を定義する事で加工は可能になります。<br>ところが、<span class="markerYellow">工具径が不明な場合や加工精度が必要な場合</span>には<span class="markerPink">加工時の環境に合わせる必要</span>があります。<br>その都度データを修正していたのでは大変なので、機械コントローラ側で調整できる仕様を<strong>工具径補正</strong>といいます。<br>工具径補正ができる仕様の制御機では、基本輪郭データは適当でいいことになりますが、一般的には２種類の方法で輪郭データを作成します。<br>一つは、 工具径を考慮しない 仕上がり寸法<span style="color:blak; background-color:skyblue;">（図面通り）</span>でデータを作成する方法です。<br>この場合、加工時の補正は、<span class="markerPink">使用工具半径</span>を入力する事になります。<br>二つ目は、予定の基本工具径を考慮して、その工具半径分オフセットした形状でデータを作成する方法です。<br>この場合、<span class="markerPink">データ作成時の基本工具径と使用時の工具径の差</span>を補正として入力します。<br>ここでは、前者の方法で、図面寸法でデータを作成する方法で説明します。</p>



<h3 class="wp-block-heading"><span id="toc3">G41/G42/G40　／　工具径補正指令</span></h3>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/Compensation3.png" alt=""/></figure>



<p class="wp-block-paragraph">補正を使用する際には、<strong>工具の進行方向</strong>を考慮する必要があります。<br>加工する場合の工具をイメージして、工具の進行方向の左側に工具が来るような補正には<strong>「G41」</strong>、工具進行方向の右側に工具が来る場合には<strong>「G42」</strong>の指令を使用します。<br>「G41/G42」は指定されたブロックから、<span class="markerYellow">次のブロックを先読み</span>し移動方向（ベクトル）を認識してその方向に対して「右側・左側」へオフセットした工具経路が自動的に計算されます。<br>この工具経路のオフセットされた輪郭は<strong>「G40」</strong>コードが指令されるまで制御機により<strong>自動的</strong>に生成されます。<br>この指令により、「G41/G42」から「G40」までの工具経路は、補正として自動調整された経路となります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>「Ｇコード　グループ０７」<br>・G41　：　工具径補正左<br>・G42　：　工具径補正右<br>・G40　：　工具径補正キャンセル</p></blockquote>



<figure class="wp-block-video"><video height="652" style="aspect-ratio: 852 / 652;" width="852" controls src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/工具径補正.mp4"></video></figure>



<p class="wp-block-paragraph">では、<strong>補正量</strong>はどのようにして決定するのでしょうか？<br>これは、ファナック系とハイデンハイン・レダースでは方法が異なります。<br>ファナック系の場合は、<strong>「D」+「数字」</strong>で指令し、制御機で設定します。<br>例えば、「G01 G41 X10.0 Y20.3<strong> D01</strong>F2000」の指令では、制御機の補正設定画面の「D01」の設定箇所に設定されている数値が補正量となります。<br>ハイデンハインやレダースでは、工具管理方法が違うので、工具が呼ばれた時点で工具径を認識するようになっています。<br>したがって、<span class="markerPink">補正番号をわざわざ指定する必要はありません</span><br> 「G01 G41   X10.0 Y20.3<strong> </strong>F2000」でいいことになります。 </p>



<h3 class="wp-block-heading"><span id="toc4">スタートアップ・キャンセル／工具径補正</span></h3>



<p class="wp-block-paragraph">工具径補正は、「G41/G42」が指令されたブロックから次のブロックのベクトル（進行方向）を認識しその<span class="markerPink">ベクトルの法線方向</span>に工具補正量だけオフセットされたパス（経路）を自動生成します。<br>その時に注意が必要なのは、補正指令ブロックの直前の位置が重要です。<br>補正モードでない場合には、指令の座標位置へ移動しますが、補正モードではオフセットされた座標となりますから指令と違う座標へ移動するので思わぬ干渉が起きる場合があります</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G41_1.png" alt=""/></figure>



<p class="wp-block-paragraph">この例では、「P1 ⇒ P2 ⇒ P3 ⇒ P4  ⇒  P1」で製品の輪郭として定義してます。<br>加工に入る前に「P0」位置で工具を降し「P0 ⇒ P1」で工具径補正（G41)を指令します。<br>「P0」位置からいきなり製品輪郭へ移動させてます。<br>そうすると、 「P0 ⇒ P1」 へ移動する途中で制御機は次の動作（P1 ⇒ P2）の方向を先読みしその法線方向の座標を計算し、「P1」の座標を自動補正します。<br>これを<strong>スターアップ</strong>動作と呼びますが、<span class="markerYellow">スタート位置によっては、</span><span class="markerPink">思わぬ食込みが発生</span>する場合があります。<br>これは、「G40」を指令するキャンセルブロックでも同様で、キャンセル位置によっては食込みが発生します。<br>これをさける為には、オフセット決定する法線方向側の離れた位置をスタート位置（キャンセル位置）にするか、食込みが発生しないように、スターアップを考慮して輪郭を延長させたり、要素を追加したりします。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G41-0.png" alt=""/></figure>



<p class="wp-block-paragraph">上図でＮＣプログラムを作成してみます。</p>



<pre class="wp-block-preformatted">%
 O1000
 G17G90G00
 G00X0Y0Z50.0
 X62.0Y0           (P0)
 Z5.0
 G01Z-10.0F300
 G41D01X24.0Y25.0F500 (P1)
 X40.0Y80.0        (P2)
 X70.0Y60.0        (P3)
 X75.0Y25.0        (P4)
 X24.0Y25.0        (P1)
 G40X62.0Y0        (P0)
 M30
 %</pre>



<p class="wp-block-paragraph"><a href="http://www.trycut.com/">TRYCUT</a>と言うソフトで、シミュレーションしてみます。<br>TRYCUTの補正設定画面にも工具径補正「D01」に、使用工具の半径を設定しています。</p>



<figure class="wp-block-video"><video height="880" style="aspect-ratio: 1032 / 880;" width="1032" controls src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G41.mp4"></video></figure>



<p class="wp-block-paragraph">予想通り、「P0 ⇒ P1」のスタートアップ動作で「P1」付近で食込んでしまいました。</p>



<pre class="wp-block-preformatted"> X0Y0           (P0) </pre>



<p class="wp-block-paragraph">スタート位置を「X0Y0」に修正し、もう一度シミュレーションかけてみます。</p>



<figure class="wp-block-video"><video height="584" style="aspect-ratio: 824 / 584;" width="824" controls src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G41-2.mp4"></video></figure>



<p class="wp-block-paragraph">今度は、食込みませんでした。<br>このように、工具径補正を使用する場合には、<strong>スタートアップ（キャンセル）</strong>を意識する必要があります。<br>一般的には、<span class="markerPink">輪郭要素へ直接アプローチせず</span>に、進入円弧などを使用してスタートアップしたほうが安全です。<br>ＣＡＭによっては、補正を利用する場合、進入指令が必須なＣＡＭもあります。</p>



<pre class="wp-block-preformatted">%
 O1000
 G17G90G00
 G00X0Y0Z50.0
 X49.5Y15.0      
 Z5.0
 G01Z-10.0F300
 <strong>G41D01X59.5Y15.0F500 </strong>　<strong>(スタートアップ)</strong>　　
 <strong>G03X49.5Y25.0I-10.0  </strong> <strong> (進入円弧)</strong>
 G01X24.0Y25.0F500 
 X40.0Y80.0        
 X70.0Y60.0        
 X75.0Y25.0        
 X49.5        
<strong> G03X39.5Y15.0J-10.0 </strong>   <strong>(退出)</strong>
 <strong>G01G40X49.5Y15.0</strong>      <strong> (キャンセル)</strong>
 G00Z50.0
 M30
 %</pre>



<h2 class="wp-block-heading"><span id="toc5">工具径補正番号指令</span></h2>



<p class="wp-block-paragraph">工具径補正を利用する場合、その補正量を設定する必要がありますが、その設定方法は、コントローラによって違いがあります。<br>ここでは、もっとも一般的はファナック系とハイデンハイン、レダースでの設定方法を簡単に説明します。</p>



<h3 class="wp-block-heading"><span id="toc6">ファナック／工具径補正番号</span></h3>



<p class="wp-block-paragraph">ファナック系では、前述のように、「G41またはG42」と共に<strong>「D」+「数字」（Ｄ番号）</strong>で設定します。<br>Ｄ番号は、制御機側にＤ番号の設定テーブルが用意されていて、そこに補正量を設定しておきます。<br>工具径補正指令があった場合、その補正量を参考にオフセット経路を自動計算します。<br>このように、ファナックでは<span class="markerYellow">使用工具と工具径補正の関連性はなく、</span>Ｄ番号により管理されています。<br>これにより、ＮＣプログラムでＤ番号を変更する事で自由に補正量も変更できますが、Ｄ番号を間違えたり、設定値の入力ミスがあった場合には大変です。</p>



<h3 class="wp-block-heading"><span id="toc7">ハイデンハイン・レダース／工具径補正</span></h3>



<p class="wp-block-paragraph">ハイデンハインやレダースは、工具管理にファナックよりも複雑なデータバースを使用しています。<br>このデータベースには、いろいろな情報が含まれていますが、必須な情報として「工具の長さ」<strong>「工具直径」</strong>が含まれています。<br>使用工具に対してこの情報を持っているため、工具径補正においてもファナックのような<span class="markerPink">Ｄ番号により補正量の設定は必要ありません。</span><br>また、「工具長」や「工具径」の情報は基本的に、自動工具測定装置から自動的に設定されます。<br>国産機と違いヨーロッパでは<span class="markerYellow"> 自動工具測定装置は必須</span>の考えがあるようです。<br>また、使用工具情報を元にする事から、自動工具交換装置「ATC」付きマシン（マシニングセンター）がターゲットだと思われます。<br></p>



<h3 class="wp-block-heading"><span id="toc8">ハイデンハイン iTNC530 の工具径補正指令</span></h3>



<p class="wp-block-paragraph">ハイデンハインでは、「G41/G42」の代わりに「<strong>RL</strong>」(G41)、「<strong>RR</strong>」(G42) の指令を使用します。<br>「<strong>R0</strong>」が補正モードキャンセルです。<br>また、補正番号などはありません。<br>補正量は、呼び出した工具の<a rel="noopener" aria-label="管理テーブル (新しいタブで開く)" href="https://www.kazuban.com/bbs/heidenhain/heidenhain.cgi?mode=main&amp;no=11" target="_blank">管理テーブル</a>に情報があります。<br>工具テーブルの「R」項目に基本的には工具半径が入力されていて、制御機はその値をもとにオフセットします。<br>さらに「DR」項目で追加の補正量を設定できます。<br>さらに、工具を呼び出すコマンド「TOOL CALL」行に「DR」で直接数値を追加できます。<br>補正量＝「D : Tool table」+「DR : Tool Table」+「DR : Tool Call」となりTool Table からだけでなく、工具交換指令のNCプログラムからでも調整できます。<br>上のファナックのＧコードを、ハイデン言語で表してみます。</p>



<pre class="wp-block-preformatted">0 BEGIN PGM 1001 MM
 L X+0 Y+0 R0 FMAX
 L Z+50 R0 FMAX
 L X+49.5 Y+15 R0 FMAX
 L Z+5 FMAX
 L Z-10 F300
 <strong>L X+59.5 RL F500</strong>
 CC X+49.5 Y+15
 C X+49.5 Y+25.0 DR+
 L X+24 Y+25
 L X+40 Y+80
 L X+70 Y+60
 L X+75 Y+25
 L X+49.5
 CC X+49.5 Y+15
 C X+39.5 Y+15.0 DR+ F1000
 <strong>L X+49.5 Y+15 R0</strong>
 L Z+50 FMAX
 END PGM 1001 MM</pre>



<p class="wp-block-paragraph">ハイデンハインでは、直線補間は「L」で指令しますので、G言語に対してL言語と呼ばれることもあります。</p>



<h3 class="wp-block-heading"><span id="toc9"> レダース RMS6 の工具径補正指令 </span></h3>



<p class="wp-block-paragraph">レダース言語の、プログラム構文は上の二つとは全く違います。<br>ＮＣプログラムと言うよりは、プログラミング言語の「VB」や「JavaScript」に似ているように思います。<br>ただ、工具経路を指令する移動の指令は、<span class="markerBlue">ファナックのＧコードとハイデンハインのＬ言語の両方</span>を理解できます。<br>したがって、座標系や工具交換、などの準備機能をレダース言語で指令すれば、加工の工具移動指令は、ファナックかハイデンハインのコードを若干編集する程度で使用できます。<br>下記では上のファナックのＧコードを、レダースが動作する言語で表してみます。 </p>



<pre class="wp-block-preformatted"> G17 G90 G00
 SH
 CCI
 G00 X49.5 Y15.
 Z50.
 Z5.
 G01 Z-10. F300.
<strong> G41 X59.5 F500.</strong>
 G03 X49.5 Y25. I-10.
 G01 X24.
 X40. Y80.
 X70. Y60.
 X75. Y25.
 X49.5
 G03 X39.5 Y15. J-10. F1000.
 <strong>G01 G40 X49.5</strong>
 G00 Z50.
 SH
 CCA
 M30</pre>



<p class="wp-block-paragraph">このように、ほとんどファナックと同様のコードが使用可能です。<br>これが、ハイデンハイン言語も同様に使用可なのは驚きです。<br>ただファナックと違うのは、<span class="markerPink">工具径補正番号がありません</span>ね。<br>こちらも。ハイデンハインと同様に工具管理データベースに工具径も登録されていて、補正は使用工具により自動的に設定できるためです</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/ToolType-2.png" alt=""/></figure>



<p class="wp-block-paragraph">この仕様によって、工具交換後「Tdm -auto」の指令だけで補正量は決定されます。<br>補正量は、「G41/G42」指令により自動的に工具半径分がオフセットされます。<br>また、「G41 -R=0.02」のように、工具半径に補正量を追加することもできますし、工具半径が不明な場合には、その値が直接使用されます。<br>さらに、「SET_OFFSET_R」という指令を使うと、オフセット量を直接指定できます。<br>直接「 SET_OFFSET_R =5.02 -abs」とできますし、変数も使用可能です。<br>「$DIAM_」というシステム変数で、スピンドルにある実際の工具径がわかるので、その１/２に調整量を付加することで、補正量を調整したりできます。</p>



<pre class="wp-block-preformatted">・
・
$Offset_C = ($DIAM_)/2 + 0.05
SET_OFFSET_R=$Offset_C -abs
G01 G41 X59.5 Y0.0 F1000 
・
・</pre>



<p class="wp-block-paragraph">この指令で、<span class="markerPink">実際の</span>「工具半径 + 0.05」の補正を設定できます。</p>



<h3 class="wp-block-heading"><span id="toc10">補正量をプログラムで管理する</span></h3>



<p class="wp-block-paragraph">このように、ハイデンハインやレダースの言語を見てみると、<span class="markerYellow">補正量はNCプログラムで定義する</span>のが基本的な考え方のように思います。<br>対して、ファナック系では、コントローラ側の補正画面で設定するのが一般的です。<br>後者の場合、自由度はあがりますが入力忘れや入力ミスの場合、大きな被害がでる場合が考えられます。<br>特に、NCデータ作成側と、機械操作側が違う担当者の場合には、補正番号の伝達方法は重要になりますね。<br>完全でなくても、<span class="markerPink">安全率を見込んだ補正量はNCプログラムに定義</span>しておいたほうが安心だと思います。<br>もちろん、ファナックの場合でも、システム変数を利用すれば同様の事ができます。<br>具体的には、「G10」のコードや「#11001～」や「#2201～」のシステム変数に代入することで定義できます<br>ただし、この大事な変数が制御機のバージョンやオプションによって番号が変わってしまうは、困ったもんです。</p>



<h2 class="wp-block-heading"><span id="toc11">まとめ</span></h2>



<p class="wp-block-paragraph">今回は、工具径補正の説明をしました。<br>ファナック系だけではく、ハイデンハインやレダースの指令も簡単に紹介しました。<br>一番の違いは、工具径補正番号（D番号）の有無ですね。<br>利用方法によって、いろいろな意見があると思いますが、自動化を目指そうと思うと、工具を持ってきただけで、基準の補正量が決定できる仕様が有利だと思っています。</p>



[adchord]



<h4 class="wp-block-heading"><span id="toc12">ＮＣプログラムの記事</span></h4>



<div class="pager">
  <a class="prev page-numbers" href="https://www.kazuban.com/blog/nc-gcode-02/">PREV</a>

  <a class="page-numbers" href="https://www.kazuban.com/blog/nc-gcode-01/">1</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/nc-gcode-02/">2</a>
  <!-- <a class="page-numbers" href="https://www.kazuban.com/blog/dia-compensation/">3</a> -->
  <span aria-current="page" class="page-numbers current">3</span>
  <a class="page-numbers" href="https://www.kazuban.com/blog/lenrth-compensation/">4</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/main-sub-pro/">5</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/sub-to-package/">6</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/nc-program-g91/">7</a>

  <a class="next page-numbers" href="https://www.kazuban.com/blog/lenrth-compensation/">NEXT</a>
</div>
]]></content:encoded>
					
		
		<enclosure url="https://www.kazuban.com/blog/wp-content/uploads/2019/12/工具径補正.mp4" length="218077" type="video/mp4" />
<enclosure url="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G41.mp4" length="2710248" type="video/mp4" />
<enclosure url="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G41-2.mp4" length="2197819" type="video/mp4" />

			</item>
	</channel>
</rss>
