<?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-length-correction/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kazuban.com/blog</link>
	<description>なにかしら、皆さんの参考になれば幸いです！</description>
	<lastBuildDate>Wed, 03 May 2023 00:00:01 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</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>ＮＣプログラム／工具長補正</title>
		<link>https://www.kazuban.com/blog/length-compensation/</link>
					<comments>https://www.kazuban.com/blog/length-compensation/#comments</comments>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Wed, 15 Jan 2020 02:10:33 +0000</pubDate>
				<category><![CDATA[NC]]></category>
		<category><![CDATA[NCプログラム]]></category>
		<category><![CDATA[ファナック]]></category>
		<category><![CDATA[工具長補正]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=1626</guid>

					<description><![CDATA[前回は「工具径補正」について説明しました。これは、定義されている輪郭（工具経路）を制御機に再定義（オフセット）させる指令です。この機能により、使用工具径や加工状況に合わせて「輪郭」を再定義し直す処理が省略できます。ただし [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><a href="https://www.kazuban.com/blog/dia-compensation/">前回は「工具径補正」について説明しました</a>。<br>これは、定義されている輪郭（工具経路）を制御機に再定義（オフセット）させる指令です。<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-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><ol><li><a href="#toc2" tabindex="0">工具先端位置を機械に教える</a></li><li><a href="#toc3" tabindex="0">マシニングセンターはすべての工具を合わせる</a></li><li><a href="#toc4" tabindex="0">工具長補正値</a></li><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><li><a href="#toc8" tabindex="0"> 工具長補正 ／　ファナック</a><ol><li><a href="#toc9" tabindex="0"> G43/G44/G49　／　工具長補正指令</a></li><li><a href="#toc10" tabindex="0">  G28　／　 リファレンス点（機械原点）復帰  </a></li></ol></li><li><a href="#toc11" tabindex="0"> 工具長補正 ／ハイデンハイン・レダース</a></li><li><a href="#toc12" tabindex="0">まとめ</a><ol><ol><li><a href="#toc13" tabindex="0"> ＮＣプログラムの記事 </a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">  工具長補正の概要 </span></h2>



<p>この指令は「ATC / 自動工具交換」装置を持つＮＣ工作機械（マシニングセンター）には必要な機能です。 <br>工具径補正は、加工においては必須ではありませんが、工具長補正はマシニングセンターで<span class="markerYellow">自動工具交換させて加工する場合には必須</span>となります。 <br>最近ではほとんど見なくなりましたが、手動で工具交換を行う「ＮＣフライス盤」や逆に最近普及してきた趣味レベルでも人気な「卓上ＣＮＣフライス盤」には必ずしも必要な機能ではありません。</p>



<h3 class="wp-block-heading"><span id="toc2">工具先端位置を機械に教える</span></h3>



<p>工具で加工する場合、工具先端位置と加工物（ワーク）の位置関係は非常に重要です。<br>例えば、ワークの最上面を「Z0.000」でプログラムした場合、「G01 Z0.000」の指令では工具先端がワーク最上面まで確実に移動しなければいけません。<br>通常「ＮＣフライス盤」ではこの設定を手動で行います。 <br>方法はいろいろあると思いますが、一つの方法としては、<strong>厚さが分かっている</strong>ブロック（ゲージ）をワークの上面に載せて、そのブロックに工具を近づけていき、ギリギリ接触する高さの位置を、<strong>ブロックの厚さと同じ数値</strong>に設定します。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="718" height="568" src="https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長１.png" alt="" class="wp-image-1634" srcset="https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長１.png 718w, https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長１-300x237.png 300w" sizes="(max-width: 718px) 100vw, 718px" /></figure>



<p>この例では、５０ｍｍ厚のブロック（ゲージ）に接触する位置へ工具先端を移動させた位置を「Z50.000」に設定します。<br>この設定で 「G90 G01 Z0.000」 のプログラム指令を実行するすれば、工具先端はワークの最上面に移動する事になります。</p>



<h3 class="wp-block-heading"><span id="toc3">マシニングセンターはすべての工具を合わせる</span></h3>



<p>一本ごとに手動で工具取付を行う、ＮＣフライス盤の場合は上記のような方法での加工が一般的です。<br>自動で工具交換（ＡＴＣ）を行うマシニングセンターの場合でも、<span class="markerBlue">工具交換だけ装置にやらせて、</span>工具先端位置設定はその都度行う事で加工は可能です。<br>ただしこれでは、マシニングセンターの真骨頂である、多数の工具を<strong>自動</strong>交換しながら<strong>自動</strong>加工する事ができませんね。<br>この自動加工を実現するには、<span class="markerPink">使用するすべての工具先端位置を合わせる</span>必要があります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="777" height="396" src="https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長.png" alt="" class="wp-image-1636" srcset="https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長.png 777w, https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長-300x153.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長-768x391.png 768w" sizes="(max-width: 777px) 100vw, 777px" /></figure>



<p>これを実現する機能が、工具長補正指令です。</p>



<h3 class="wp-block-heading"><span id="toc4">工具長補正値</span></h3>



<p>工具長補正の基本的な考え方は、「各工具の長さの差」を登録しておき、<span class="markerPink">その<strong>「差」</strong>をもとに工具が下りてくる量を自動調整する事</span>です。<br>では、登録する「長さの差」を算出する基準長さはどこでしょうか？<br>実はこれは、長さを測定する<span class="markerYellow">基準位置が同じであれば、どこでもいいです。</span><br>長さを測定する方法は、いくつかあります。</p>



<ol class="wp-block-list">
<li>機械の任意の位置へ、各工具先端が到達した位置座標から求める</li>



<li>基準になる工具（マスター工具）との長さの差から求める</li>



<li>主軸端面から各工具先端までの長さの差から求める</li>
</ol>



<p>思いつくところでは、この３種類でしょうか？<br>１．は 自動工具長測定装置がこのイメージですが、主軸端面位置と自動工具長測定装置の位置差を考慮すれば、３．と同じ数値になります。<br>２．は基準工具との差になります。<br>いずれにしても、各工具の<strong>「長さの差」</strong>がわかれば補正はできます。<br>ここで重要なのは、<strong>「差」</strong>を計算する場合、どこを<strong>「0」</strong>にするか？です。<br>主軸端面であれば、主軸端面。マスター工具であればマスター工具先端。<br>次にこの「0」にする基準を決定したら、<span class="markerYellow">その基準位置とワーク（加工物）基準位置を合わせます。</span><br> これは、上記のＮＣフライスと同様の方法で設定できると思います。<br> 工具基準と使用工具との「差」を求め、工具基準と加工基準を合わせる事によって、いろいろな長さの工具を使用してもその「差」で調整が可能となります。<br>ただし、<span class="markerPink">マスター工具を基準とした場合、工具長の差で工具長補正値は<strong>「プラス・マイナス」</strong>混同する</span>可能性がでてきます。<br>これは、後々混乱する原因になりやすいので、私の意見では、<span class="markerYellow">「主軸端面」</span>をお勧めします。<br>主軸端面を<strong>最短</strong>のマスター工具と考えれば、全ての工具の補正値の<span class="markerPink">「符号」は同じ</span>になります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="669" height="681" src="https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長補正値.png" alt="" class="wp-image-1638" srcset="https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長補正値.png 669w, https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長補正値-295x300.png 295w" sizes="(max-width: 669px) 100vw, 669px" /></figure>



<h3 class="wp-block-heading"><span id="toc5">工具長補正の測定方法</span></h3>



<p>最近では、自動工具長測定装置がついている機械が多くなってきていますから、こちらに任せるのが一番簡単ですが、手動で測定する事も可能です。<br>自動の場合には、主軸端面と自動測定装置の位置をパラメータとして登録しておくことで可能となります。<br>おそらく機械納入時には機械メーカーが設定済みだと思います。<br>手動の場合には、<strong>「機械座標系」</strong>を使用する方法があります。<br>機械座標は、機械の決められた場所（機械原点）からの絶対座標です。<br>この機械座標系を利用して、主軸端面と工具先端までの距離を求めます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="693" height="583" src="https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長補正方法-1.png" alt="" class="wp-image-1645" srcset="https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長補正方法-1.png 693w, https://www.kazuban.com/blog/wp-content/uploads/2020/01/工具長補正方法-1-300x252.png 300w" sizes="(max-width: 693px) 100vw, 693px" /></figure>



<p>求める時には、制御機で「機械座標系」が表示される画面にしておいて、主軸端面と工具先端が同じ基準高さの位置に来た時の機械座標を読み取り<strong>引き算</strong>する事で求められますが、重要な事が一つあります。<br>上にも書きましたが<span class="markerPink">「工具長補正値」の<strong>「符号」</strong></span>です。</p>



<p class="has-very-light-gray-background-color has-background">主軸端面を基準とした場合、引き算する順序で<strong>「＋・－」</strong>は変わってきますが、順序を同じにすれば必ず<span class="markerPink">どちらかに統一</span>されるばずです。<br>この「符号」によって、先に説明する「工具長補正指令（<strong>G43,G44</strong>）」コードが変わってきます。</p>



<p>この作業を使用工具本数分行います。<br>ここで求めた工具長さを制御機の工具径補正設定画面に設定します。</p>



<h3 class="wp-block-heading"><span id="toc6">工具長補正値の登録</span></h3>



<p><a href="https://www.kazuban.com/blog/dia-compensation/">工具径補正と同様</a>に、指令的に工具長補正の方法は、「ファナック系」と「ハイデンハイン・レダース」では違います。<br> ファナック系では、<strong>「H」+「数字」（H番号）</strong>で設定します。<br>H番号は、制御機側にH番号の設定テーブルが用意されていて、そこに補正量を設定しておきます。<br>工具長補正指令があった場合、その補正量をもとに工具の下りてくる量が調整されます。<br>このように、<span class="markerYellow">ファナックでは使用工具と工具長補正との関連性はなく、H番号により管理</span>されています。<br>これにより、ＮＣプログラムでH番号を変更する事で自由に補正量も変更できますが、H番号を間違えたり、設定値の入力ミスがあった場合には大変です。 </p>



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



<p> ハイデンハインやレダースは、工具管理にファナックよりも複雑なデータベースを使用しています。<br>このデータベースには、いろいろな情報が含まれていますが、必須な情報として「<strong>工具の長さ</strong>」<strong>「</strong>工具直径<strong>」</strong>が含まれています。<br>使用工具に対してこの情報を持っているため、<span class="markerYellow">工具長補正においてもファナックのようなH番号の指令は必要ありません。</span><br>また、「工具長」や「工具径」の情報は基本的に、自動工具測定装置から自動的に設定されます。<br>国産機と違いヨーロッパでは&nbsp;自動工具測定装置は必須の考えがあるようです。</p>



<h2 class="wp-block-heading"><span id="toc8"> 工具長補正 ／　ファナック</span></h2>



<p>工具ごとの工具長補正の指令は、ファナック系だけに必要な指令です。<br>上記のように、工具データベースで工具長を管理している「ハイデンハインやレダース」では必要ありません。<br>ハイデンハインでは、工具交換した時点で工具長補正は完了していますし、レダースではどの工具を持ってきても「Tlc -auto」の指令で完了します。</p>



<h3 class="wp-block-heading"><span id="toc9"> G43/G44/G49　／　工具長補正指令</span></h3>



<p> 「G43/G44」指令と共に、補正値が設定されている「H番号」で指令します。 <br>ここで、上記の工具長補正値の「符号」が重要になってきます。<br><strong>「G43」</strong>指令は、<strong>「工具長補正＋」</strong>なので、<span class="markerPink">補正値の「符号」がそもまま</span>使用されます。<br>具体的には、補正値が「＋」の場合には、Ｚ軸上昇方向に補正します。<br>逆に<span class="markerPink">「G44」を使用すると、下降し最悪突っ込みます。</span><br>したがって、主軸端面から工具先端までを補正値として「＋」符号で登録している場合には「G43」を使うのが一般的な仕様となります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p> 「Ｇコード　グループ０８」 <br> ・G43　：　 工具長補正＋ <br> ・G44　：　 工具長補正−  <br> ・G49　：　 工具長補正キャンセル    </p>
</blockquote>



<p>具体的な指令の例では、「G00 G43 Z50.0 H01」のように指令します。<br>この例では、「Z50.0」まで移動する間に、「H01」に設定されいる設定値の「＋」方向に補正され工具先端が「Z50.0」位置で完了となります。<br>この補正は、「G49」でキャンセルされるまで有効となります。<br>「G28」などの原点復帰指令でもキャンセルされますが、古い機種などとの汎用性やキャンセルさせた！の気持ちも込めて私は多少冗長でも「G49」指令は使用する事にしています。<br>「G49」キャンセル指令には注意点があります。<br>最近はほとんど動作なしで補正をキャンセルしてくれると思いますが、古い機械では<span class="markerPink">キャンセルに動作を伴う</span>機種があったように記憶しています。<br>具体的には、「G43」で「＋」補正させた場合、「G49」キャンセルでは補正を無効にするため、「ー」方向に移動する可能性があります。<br>例えば、長さが「50mm」の工具を補正した場合、Ｚ軸上方向に「50mm」上がります。<br>この補正をキャンセルした場合、「50mm」下降する可能性があります。<br>これはキャンセル位置によっては加工物に突き刺さる事になりかねません。<br>移動動作のないキャンセルが一般的かと思いますが、安全を考慮して<span class="markerYellow">Ｚ軸は安全位置まで上昇させた後の「キャンセル」指令</span>をお勧めします。</p>



<h3 class="wp-block-heading"><span id="toc10">  G28　／　 リファレンス点（機械原点）復帰  </span></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p> 「Ｇコード　グループ００」 <br> 
・G28　：　 リファレンス点自動復帰<br> 
</p>
</blockquote>



<p>「G28」指令は、指定軸、<strong>指定座標を中間点</strong>としてその位置へ移動後、指定軸の機械原点へ移動させる指令です。<br>Ｚ軸の機械原点が、機械最上部の安全位置にある場合には、この指令を使用して退避させるのが簡単で確実です。<br>ただし、機械によっては、必ずしも機械原点が安全位置に設定されていない場合もあるので事前の調査は必要です。<br><strong>「G91 Z0」</strong>の指令で <strong>「現在のZ位置から」</strong>の意味になりますから、この指令と「G28」を組み合わせる事で<strong>「現在位置からＺ軸機械原点へ移動」</strong>と言う意味になります。<br>この指令で退避させた後に、工具長キャンセルしたほうが安全です。</p>



<pre class="wp-block-preformatted">G17G90G00
T01
M06
G91G28Z0        ( Z軸機械原点へ移動 )
G90X0Y0
G43Z50.H01      ( H01 の補正量で　工具先端が Z50.まで移動 )
・
・              ( 加工 ) 
・
G91G28Z0        ( 加工終了後  Z軸機械原点へ移動  )
G49             ( 工具長補正キャンセル )
・
・</pre>



<p>工具長補正と工具長キャンセルの指令は、こんな感じでしょうか。<br> ところで、<span class="markerBlue">オークマOSPの場合の工具長補正は「G43」でなく「G56」で、機械原点移動の指令はありません。</span><br>ただし、機械のリミットオーバーの場合でもアラームにならないため、とりあえず退避させたい場合には、大きな数値で退避させるのも一つの方法です。 <br>「G91Z1000.0」の感じです。<br>このように、工具長補正指令は工具径補正よりも互換性は低いですね。</p>



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



<p><a href="https://www.kazuban.com/blog/dia-compensation/">工具径補正の記事</a>でも書きましたが、ハイデンハインやレダースでは工具の長さは工具データベースで管理されています。<br>したがって、制御機は工具を交換した時点でその長さ情報を把握していますから、ファナック系のように、「H01」のような補正番号は必要ありません。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="718" height="445" src="https://www.kazuban.com/blog/wp-content/uploads/2020/01/Roeders_ToolData-1.png" alt="" class="wp-image-1669" srcset="https://www.kazuban.com/blog/wp-content/uploads/2020/01/Roeders_ToolData-1.png 718w, https://www.kazuban.com/blog/wp-content/uploads/2020/01/Roeders_ToolData-1-300x186.png 300w" sizes="(max-width: 718px) 100vw, 718px" /><figcaption class="wp-element-caption"><em><span style="text-decoration: underline;">レダース、工具管理画面</span></em></figcaption></figure>



<p>特に、ハイデンハインの場合は<span class="markerYellow"><strong>工具交換が完了</strong>した時点で<strong>工具長補正は完了</strong></span>しています。<br>完了しているので、プログラム指令だけでなく、<strong>ハンドルモード（手パ）</strong>でも工具長補正が適応された座標系で作業できます。<br>ファナック機の場合、プログラムで補正をかけてもハンドルモードに切換えるスイッチでモード切換えを行うと、工具長補正がリセットされてしまう機械もあります。相対座標位置をプリセットする事で代用できますが結構面倒ですね。</p>



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



<p> 今回は、工具長補正の説明をしました。<br>ファナック系だけではく、ハイデンハインやレダースの指令も簡単に紹介しましたが、やはり大きな違いは工具径補正と同様で、工具長補正番号（H番号）の有無ですね。<br>工具径補正と違い、マシニングセンターにおいては<span class="markerPink">工具長補正は必須</span>ですから、その必須な項目に対して、NCプログラム工程と加工工程と言う別の工程において「補正番号」を合わせなければならないのは、仕様的にどうかと思います。<br>やはり、使用工具を持ってきたら 長さぐらいは、 制御機が把握している仕様が一般的だと思いますが、皆さんはどう思われるでしょう？<br>もしかしたら、ファナック系の制御機を使っていても、別のソフトでカプセル化して、ハイデンハインのような仕様を実現している機械もあるかもしれません。<br>すでにこのような基本NCのデメリットを隠蔽してユーザーが使いやすいようなソフトでカバーする制御機も増えてきていると思います。</p>


<div class="ad-box block-box"><div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>広告</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-8553338673765819"
  data-ad-slot="9850068070"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>
</div>


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



<div class="pager">
  <a class="prev page-numbers" href="https://www.kazuban.com/blog/dia-compensation/">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>
  <!-- <a class="page-numbers" href="https://www.kazuban.com/blog/lenrth-compensation/">4</a> -->
  <span aria-current="page" class="page-numbers current">4</span>
  <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/main-sub-pro/">NEXT</a>
</div>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kazuban.com/blog/length-compensation/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
