<?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>Heidenhain | じじぃの引出し</title>
	<atom:link href="https://www.kazuban.com/blog/tag/heidenhain/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kazuban.com/blog</link>
	<description>なにかしら、皆さんの参考になれば幸いです！</description>
	<lastBuildDate>Wed, 25 Dec 2024 02:15:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://www.kazuban.com/blog/wp-content/uploads/2020/05/cropped-ICON-1-32x32.png</url>
	<title>Heidenhain | じじぃの引出し</title>
	<link>https://www.kazuban.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ハイデンハインのサイクル機能</title>
		<link>https://www.kazuban.com/blog/heidenhain_cycle/</link>
					<comments>https://www.kazuban.com/blog/heidenhain_cycle/#comments</comments>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 18 Dec 2021 00:07:17 +0000</pubDate>
				<category><![CDATA[NC]]></category>
		<category><![CDATA[カスタムマクロ]]></category>
		<category><![CDATA[CAM]]></category>
		<category><![CDATA[Fanuc]]></category>
		<category><![CDATA[Fusion360]]></category>
		<category><![CDATA[Heidenhain]]></category>
		<category><![CDATA[NCプログラム]]></category>
		<category><![CDATA[ハイデンハイン]]></category>
		<category><![CDATA[ファナック]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[固定サイクル]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=6236</guid>

					<description><![CDATA[ファナック系では、G73やG81～の固定サイクルと呼ばれている、ドリル加工用サイクルがありますがハイデンハイン制御機には、さらに高機能なサイクルが用意されています。変数で加工形状をカスタマイズできる点は、カスタムマクロに [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ファナック系では、G73やG81～の固定サイクルと呼ばれている、ドリル加工用サイクルがありますが<br>ハイデンハイン制御機には、さらに高機能なサイクルが用意されています。<br>変数で加工形状をカスタマイズできる点は、カスタムマクロに似ていす。<br>多様なカスタムマクロが、標準で用意されているイメージです。<br>さらに、ドリルサイクルだけでなく、ポケットや測定用のサイクルも用意されています。<br>ファナック機では標準にない追加機能は、<span class="markerYellow">機械メーカーが提供</span>している場合が多いですが、<br>そうなるとどうしてもメーカー仕様になるので<span class="markerPink">互換性はありません。</span><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></li><li><a href="#toc2" tabindex="0">ドリル・タップサイクル</a><ol><li><a href="#toc3" tabindex="0">スレッドミル </a></li></ol></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><ol><li><a href="#toc8" tabindex="0">サイクル定義</a></li><li><a href="#toc9" tabindex="0">加工位置</a></li><li><a href="#toc10" tabindex="0">Fusion360 で出力してみた</a></li><li><a href="#toc11" tabindex="0">M12のタップ加工をプログラム化</a></li></ol></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ユーザーマニュアル入手</span></h2>



<p class="wp-block-paragraph"><a rel="noopener" href="https://www.heidenhain.com/" target="_blank">ハイデンハインのサイト</a>では、コントローラのマニュアルがダウンロードできます。</p>



<figure class="wp-block-image size-large is-resized"><a rel="noopener" href="https://www.heidenhain.com/" target="_blank"><img fetchpriority="high" decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2021/12/image-1024x279.png" alt="" class="wp-image-6240" width="620" height="168" srcset="https://www.kazuban.com/blog/wp-content/uploads/2021/12/image-1024x279.png 1024w, https://www.kazuban.com/blog/wp-content/uploads/2021/12/image-300x82.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2021/12/image-768x209.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2021/12/image.png 1197w" sizes="(max-width: 620px) 100vw, 620px" /></a></figure>



<p class="wp-block-paragraph">ホームページから、「Service&amp;Support」⇒ 「Downloads」⇒ 「Documentation」と進み<br>下へスクロールして、右側の「Categories」で「CNC Controls」で各言語に対応したマニュアルがダウンロードできます。<br>ただ残念ながら、日本語はないみたいです。<br>私は、<a rel="noopener" href="https://product.heidenhain.de/JPBC/image/FILEBASE_PUBLIC/533_190-22.pdf" target="_blank">こちらをダウンロードしました。</a></p>



<h2 class="wp-block-heading"><span id="toc2">ドリル・タップサイクル</span></h2>



<p class="wp-block-paragraph">ドリルやタップ用のサイクルは、ダウンロードしたマニュアルでは、<br>８．３項目、ページ３３１～　に説明があります。<br>英語ですが、単語とアイコンでだいたいわかると思います</p>



<ul class="wp-block-list"><li>240 CENTERING _______________________________Page 333</li><li>200 DRILLING _________________________________Page 335</li><li>201 REAMING _________________________________Page 337</li><li>202 BORING ___________________________________Page 339</li><li>203 UNIVERSAL DRILLING _____________________Page 341</li><li>204 BACK BORING _____________________________Page 343</li><li>205 UNIVERSAL PECKING ______________________Page 346</li><li>208 BORE MILLING _____________________________Page 349</li><li>206 TAPPING NEW _____________________________Page 351</li><li>207 RIGID TAPPING NEW ______________________Page 353</li><li>209 TAPPING W/ CHIP BRKG __________________Page 355</li><li>262 THREAD MILLING _________________________Page 359</li><li>263 THREAD MLLNG/CNTSNKG _______________Page 361</li><li>264 THREAD DRILLING/MLLNG _______________Page 365</li><li>265 HEL.THREAD DRLG/MLG __________________Page 369</li><li>267 OUTSIDE THREAD MLLNG ________________Page369</li></ul>



<p class="wp-block-paragraph">ファナックの固定サイクルに比べるとかなり豊富なのがわかると思います。</p>



<h3 class="wp-block-heading"><span id="toc3">スレッドミル<br> </span></h3>



<p class="wp-block-paragraph">ねじ切りサイクル。<br>国内では、OSGのプラネットカッターが有名です。<br>加工時間は増加しますが、破損時のリスク軽減や高硬度材へのネジ加工には有効だと思います。<br>特に、超硬材へのネジ加工を切削で行うには、現在ではこの方法しかないように思います！<br>では、NCプログラムはどうやって作成するでしょう。<br>国内機の場合、CAMが対応している場合にはその機能を利用したり、工具メーカーが公開している<br>支援ソフトなどを利用したり、ユーザー側でカスタムマクロを作成したりだと思いますが、ハイデンハインには、ねじ切りサイクルがすでに準備されています。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2021/12/threwadmill.png" alt="" class="wp-image-6257" width="526" height="210" srcset="https://www.kazuban.com/blog/wp-content/uploads/2021/12/threwadmill.png 592w, https://www.kazuban.com/blog/wp-content/uploads/2021/12/threwadmill-300x120.png 300w" sizes="(max-width: 526px) 100vw, 526px" /></figure>



<p class="wp-block-paragraph">Cycle 262、Page 359 ～に説明があります。<br>サイクルの使用方法は、後ほど説明しますが、「Q」で始まる指令は変数で、Qパラメータと呼ばれています。<br>ファナックの「#」と同様です。<br>この例では、「Q355」で工具の種類、「Q239」でネジピッチ、「Q201」でネジ深さ、<br>「Q200」でＲ点位置などが、この図で分かりますね。<br>これらの変数を設定する事で、ねじ切りを行うことができます。</p>



<h2 class="wp-block-heading"><span id="toc4">ポケットサイクル</span></h2>



<p class="wp-block-paragraph">穴加工だけではありません。<br>円や長方形、スロット形状もサイクルが用意されています。<br>ポケット用のサイクルは、ダウンロードしたマニュアルでは、<br>８．４項目、ページ３８２～　に説明があります。</p>



<ul class="wp-block-list"><li>251 RECTANGULAR POCKET ____________________Page 383</li><li>252 CIRCULAR POCKET _________________________Page 388</li><li>253 SLOT MILLING ______________________________Page 392</li><li>254 CIRCULAR SLOT ____________________________Page 397</li><li>212 POCKET FINISHING ________________________Page 402</li><li>213 STUD FINISHING __________________________Page 404</li><li>214 C. POCKET FINISHING _____________________Page 406</li><li>215 CIRCULAR STUD FINISHING _______________Page 406</li><li>210 SLOT RECIP. PLNG _________________________Page 410</li><li>211 CIRCULAR SLOT ____________________________Page 413</li></ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2021/12/PocketCycle.png" alt="" class="wp-image-6275" width="400" height="209" srcset="https://www.kazuban.com/blog/wp-content/uploads/2021/12/PocketCycle.png 1024w, https://www.kazuban.com/blog/wp-content/uploads/2021/12/PocketCycle-300x157.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2021/12/PocketCycle-768x403.png 768w" sizes="(max-width: 400px) 100vw, 400px" /></figure>



<p class="wp-block-paragraph">かなり豊富なサイクルが用意されています。<br>何種類かのサイクルを組み合わせる事で、ある程度の加工はCAMがなくてもできそうです。</p>



<h2 class="wp-block-heading"><span id="toc5">補正</span></h2>



<p class="wp-block-paragraph">サイクルからは少し外れますが、ハイデンハインは工具を<a rel="noopener" href="https://www.kazuban.com/bbs/heidenhain/heidenhain.cgi?mode=main&amp;no=11" target="_blank">「Tool Table」というテキストファイルで管理しています。</a><br>そのため、任意の<span class="markerPink">工具を交換しただけ</span>で、コントローラは工具情報を「Tool Table」から取得します。<br>内容で必須なのは、「工具長さ」「工具径」ですが、この値は手動で入力してもいいですが<br>工具自動測定仕様であれば、自動的に入力されます。<br>したがって、<span class="markerPink">工具交換しただけで、工具長補正は完成</span>し、工具径補正が必要なNCデータを実行する場合「Tool Table」の値を元に、工具径補正が行われます。<br>これは、上記で説明した、「スレッドミル」や「ポケット」サイクルにも対応されます。<br>D番号を忘れた！などのトラブルはかなり少なくなります。<br>ちょっと面白い仕様に、切込み角度の項目があります。<br>これは、指定工具が切込み可能な場合、切込み角度を設定する項目です。<br>傾斜切込みを行うサイクルを使用する場合、このデータが参照されます。<br>このように、ハイデンハインでは使用工具はどのような工具なのかを登録しておき<br>工具交換する事で、その内容が自動的に反映される仕組みです。<br><span class="markerPink">工具交換しただけでと言うところが、重要なポイント</span>で交換すれば、<br>工具長補正は完了状態なので、ワークの任意のZ点に<strong>手パ</strong>（ハンドル）で簡単に移動できます。<br>これは、タッチプローブでも同じです。</p>



<h2 class="wp-block-heading"><span id="toc6">タッチプローブサイクル</span></h2>



<p class="wp-block-paragraph">プローブ測定用のサイクルも用意されています。<br>ただし、上記で紹介したマニュアルには、載っていませんでした。<br><a rel="noopener" href="https://product.heidenhain.de/JPBC/image/FILEBASE_PUBLIC/670_388-20.pdf" target="_blank">こちらのマニュアルにありました。</a><br>タッチプローブ機能はオプションだからかもしれません。<br>ただ、特にEUではタッチプローブは必須の考えが強いように思います。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2021/12/Probe-e1638693336693.png" alt="" class="wp-image-6279" width="317" height="296"/></figure>



<p class="wp-block-paragraph">これは、ワーク測定用のサイクルですが、こちらもかなり充実していますね。<br>最近ファナック機はご無沙汰なので最近の状況は分かりませんが、<br>私が今までで立ち上げた、タッチプローブ仕様のファナック機では、<br>自動ワーク座標系設定やワーク測定は、機械メーカーのサービスマンが提供してくれた<br>マクロプログラムを使用する方法で教わりました。<br>ただどのメーカーも、単純にタッチした底面のワーク原点からの深さを表示するマクロがありませんでした。<br>例えば、ポケットの掘り込み加工後には、底面にタッチして、その深さを測定したくなります。<br>提供していただいたマクロの中には、２点を測定してその段差を出すマクロはありましたが、<br>やはり加工中では単純にタッチしただけで深さが知りたいですね。<br>これは、<span class="markerYellow">タッチプローブには、工具長の概念があまりない</span>のも要因のように思います。<br>しょうがないので、カスタムマクロで自作しましたが、ハイデンハインには上記のような<br>豊富なサイクルが用意されています。<br>サイクルを使うと、加工後自動測定するプログラムも比較的簡単に作成可能ですし<br>制御機提供のサイクルなので、おそらく、違うメーカーの機械や<br>違うメーカーの測定器であっても、同じプログラムで測定できると思います。</p>



<h2 class="wp-block-heading"><span id="toc7">プログラム例</span></h2>



<h3 class="wp-block-heading"><span id="toc8">サイクル定義</span></h3>



<p class="wp-block-paragraph">サイクルを利用するには、まず「CYCLE DEF サイクル番号」でサイクルの種類を指定し、<br>Qパラメータで条件を設定します。<br>「;」の右側はコメントになります。<br>また行末の「~」は次の行と連続している意味です。<br>先頭の「18」は行番号ですが、すべてが「18行」の一行です。<br>見やすくするための仕様ではないかと思っています。<br>マニュアルではコメントが英語ですがだいたい理解できると思います。</p>



<pre class="wp-block-preformatted has-medium-font-size"><strong>18 CYCL DEF 200 DRILLING ~
   Q200=+5 ;SET-UP CLEARANCE ~
   Q201=-19 ;DEPTH ~
   Q206=400 ;FEED RATE FOR PLUNGING ~
   Q202=+19 ;PLUNGING DEPTH ~
   Q210=0 ;DWELL AT TOP ~
   Q203=+0 ;SURFACE COORDINATE ~
   Q204=+50 ;2ND SET-UP CLEARANCE ~
   Q211=0 ;DWELL AT BOTTOM</strong></pre>



<p class="wp-block-paragraph">この例は、ドリルサイクルですが、ファナックの「G82」と「G83」が合体したようなサイクルです。</p>



<h3 class="wp-block-heading"><span id="toc9">加工位置</span></h3>



<p class="wp-block-paragraph">サイクルへは、「CYCL CALL POS」「M99」「 CYCL CALL PAT」の３種類の方法で加工位置を指定します<br>サイクルは、最後に定義されたものが、「CYCL CALL」により呼び出されます。<br>「CYCL CALL POS」で加工位置を定義します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>12 <strong>CYCL CALL POS X+30 Y+20 Z+0</strong> FMAX M3<br>13 <strong>CYCL CALL POS X+80 Y+50 Z+0</strong> FMAX</p></blockquote>



<p class="wp-block-paragraph">「M99」指令により、移動指令で移動した位置でサイクルを実行する事もできます</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>12 L X+30 Y+20 FMAX M3<br>13 CYCL CALL<br>14 L X+80 Y+50 FMAX<strong> M99</strong><br>15 L Z+100 FMAX M2</p></blockquote>



<p class="wp-block-paragraph">「FMAX」は「早送り」の意味です。<br> 「 CYCL CALL PAT」 は事前に、加工位置を書きだしたファイルを用意し、<br>そのファイルを指定する方法です。<br>センターとドリルのような、同じ位置に複数のサイクルを使用する場合に便利です。</p>



<pre class="wp-block-preformatted has-medium-font-size"><strong>6 TOOL CALL 1 Z S5000 
7 L Z+10 RO F5000 
8 SEL PATTERN “TAB1” 
9 CYCL DEF 200 DRILLING ~
  Q200=2 ;SET-UP CLEARANCE ~
  Q201=-2 ;DEPTH ~
  Q206=150 ;FEED RATE FOR PLNGNG ~
  Q202=2 ;PLUNGING DEPTH ~
  Q210=0 ;DWELL TIME AT TOP ~
  Q203=+0 ;SURFACE COORDINATE  ~
  Q204=10 ;2ND SET-UP CLEARANCE  ~
  Q211=0.2 ;DWELL TIME AT DEPTH ~
10 CYCL CALL PAT F5000 M3 ;　<em>Cycle call in connection with point table TAB1.PNT</em>
11 L Z+100 R0 FMAX M6
12 TOOL CALL 2 Z S5000</strong></pre>



<p class="wp-block-paragraph">加工位置ファイル「Point Table」は、「SEL PATTERN」で指定します。<br>呼び出し元と同じディレクトリにない場合には、フルパスで指定できます</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><br>SEL PATTERN “TNC:\DIRKT5\NUST35.PNT&#8221;</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">Fusion360 で出力してみた</span></h3>



<p class="wp-block-paragraph"> Fusion360、ポストライブラリには、「Heidenhain」用ポストも用意されています。<br>プレート素材に、適当な穴を開けたモデルを用意し、CAM処理させてみました。</p>



<pre class="wp-block-preformatted has-medium-font-size"><strong>0 BEGIN PGM 1001 MM
1 BLK FORM 0.1 Z X-150 Y-100 Z-50
2 BLK FORM 0.2 X+150 Y+100 Z+0
3 ;-------------------------------------
4 ;Tools
5 ; #92 D=20 - ZMIN=-51 - ZMAX=+50 - drill
6 ;-------------------------------------
7 ;
8 M5
9 TOOL CALL 92 Z S1590
10 L M140 MB MAX
11 M3
12 L X-110 Y-70 R0 FMAX
13 L Z+50 R0 FMAX
14 M7
15 CYCL DEF 32.0 TOLERANCE
16 CYCL DEF 32.1
17 CYCL DEF 200 DRILLING ~
   Q200=+5 ;SET-UP CLEARANCE ~
   Q201=-51 ;DEPTH ~
   Q206=160 ;FEED RATE FOR PLUNGING ~
   Q202=+20 ;INFEED DEPTH ~
   Q210=0 ;DWELL AT TOP ~
   Q203=+0 ;SURFACE COORDINATE ~
   Q204=+50 ;2ND SET-UP CLEARANCE ~
   Q211=0 ;DWELL AT BOTTOM
18 L FMAX M99
19 L Y+70 FMAX M99
20 L X+110 FMAX M99
21 L Y-70 FMAX M99
22 L Z+50 FMAX
23 M9
24 M5
25 L M140 MB MAX
26 M30
27 END PGM 1001 MM</strong></pre>



<p class="wp-block-paragraph">すごいですね～<br>私がハイデンハイン制御の５軸を立ち上げてた時には、穴あけデータは、<br>サイクルで出力できないCAMもあったと記憶しています。<br>深穴サイクルなど、直線補間「G01」でサイクル動作を置き換えたデータでした。<br>Fusion360のポストは、ハイデンハインサイクルの勉強にも使えそうです。</p>



<h3 class="wp-block-heading"><span id="toc11">M12のタップ加工をプログラム化</span></h3>



<p class="wp-block-paragraph">M12のタップ加工行うＮＣプログラムをサイクルを組み合わせて作ってみました。<br>加工位置用のファイル「P1.pnt」を編集する事で、任意箇所へタップ加工ができます。<br> 「P1.pnt」 は、制御機から作成できます。<br>マニュアルの「Point Tables」を参照してください。<br>たぶん、エディタなどでテキストを作成しても、使用できると思いますが<br>最初は書式がわからないと思うので、まずは制御機で作成すればテキスト化されるので<br>そのテキストファイルを修正する方法が簡単だと思います。<br>ただし、実機に触れる環境ではないので、<span class="markerPink">検証できておりません。<br>万が一、<strong>使用する場合には、十分確認してください。</strong></span></p>



<p class="has-black-color has-light-green-cyan-background-color has-text-color has-background wp-block-paragraph"><strong>もし、実証できる方がいらっしゃれば、不具合点などコメントいただければ、助かります！</strong></p>



<p class="wp-block-paragraph">P1.PNT
</p>



<pre class="wp-block-preformatted has-normal-font-size has-medium-font-size"><strong>BEGIN P1 .pnt MM
NR    X       Y       Z 
0     +31.5   -14     +0 
1     -15     -40     +0 
2     -31.5   +14     +0 
3     +15     +40     +0 
[END]</strong></pre>



<p class="wp-block-paragraph">M12_SKD11.h</p>



<pre class="wp-block-preformatted has-medium-font-size"><strong>0  BEGIN PGM M12_SKD11 MM 
1  BLK FORM 0.1 Z  X+0  Y+0  Z-80
2  BLK FORM 0.2  X+150  Y+25  Z+0
3  * --------------------------------
4  CYCL DEF 247 DATUM SETTING ~
    Q339=+1    ;DATUM NUMBER
5  L  A+0  C+0 F3000 M21
6  ;;;;;;;;;;;;;;;;;;;;;;
7  ;;;; CENTER ;;;;;;;;;;
8  ;;;;;;;;;;;;;;;;;;;;;;
9  Q1 = 45 ;Tool
10 Q2 = 640 ;SP
11 Q3 = 80 ;F_Feed
12 Q4 = -0.6 ;Z_Depth
13 ;;;;;;;;;;;;;;;;;;;;;;
14 ;;;; DRILL D=10.2 ;;;
15 ;;;;;;;;;;;;;;;;;;;;;;
16 Q5 = 101 ;Tool
17 Q6 = 620 ;SP
18 Q7 = 120 ;F_Feed
19 Q8 = -25 ;Z_Depth
20 Q9 = 10 ;Q_Peck
21 ;;;;;;;;;;;;;;;;;;;;;;
22 ;;;; CHAMFER ;;;;;;;;;
23 ;;;;;;;;;;;;;;;;;;;;;;
24 Q30 = 46 ;Tool
25 Q31 = 2200 ;SP
26 Q32 = 240 ;F_Feed
27 Q33 = 0.5 ;Chanfer_Length
28 Q34 = 1.5 ;Distance
29 Q35 = Q33 + Q34 ;Depth
30 Q36 = 8 ;Coolant
31 Q37 = 12 ;Hole DIA
32 ;;;;;;;;;;;;;;;;;;;;;;
33 ;;;; TAPP M12 ;;;;;;;
34 ;;;;;;;;;;;;;;;;;;;;;;
35 Q10 = 104 ;Tool
36 Q11 = 120 ;SP
37 Q12 = -10 ;Z_Depth
38 Q13 = 1.75 ;Pitch
39 Q14 = 8 ;Coolant
40 ;;;;;;;;;;;;;;;;;;;;;;
41 * --------------------------------
42 ;;;; CENTER LBL 1 ;;;;;;;;;;;;;;
43 ;;;; DRILL LBL 2 ;;;;;;;;;;;;;;
44 ;;;; C LBL 3 ;;;;;;;;;;;;;;
45 ;;;; TAPP LBL 4 ;;;;;;;;;;;;;;
46 * --------------------------------
47 FN 9: IF +1 EQU +1 GOTO LBL 1
48 * --------------------------------
49 ;;;; SET POSITION ;;;;;;;;;;;;;;;
50 LBL 11
51 SEL PATTERN "P1.pnt"
52 CYCL CALL PAT F5000
53 M5 M9
54 L M140 MB MAX
55 LBL 0
56 * --- CENTER -----------------------
57 LBL 1
58 * - CENTER
59 TOOL CALL Q1 Z SQ2
60 M9
61 CYCL DEF 200 DRILLING ~
    Q200=+5    ;SET-UP CLEARANCE ~
    Q201=+Q4   ;DEPTH ~
    Q206=+Q3   ;FEED RATE FOR PLNGNG ~
    Q202=+Q4   ;PLUNGING DEPTH ~
    Q210=+0    ;DWELL TIME AT TOP ~
    Q203=+0    ;SURFACE COORDINATE ~
    Q204=+50   ;2ND SET-UP CLEARANCE ~
    Q211=+0    ;DWELL TIME AT DEPTH
62 L M140 MB MAX
63 L  X+0  Y+0 F8000 M3
64 L  Z+50 F8000
65 M0
66 M13
67 CALL LBL 11
68 LBL 0
69 * ---DRILL ----------------------
70 LBL 2
71 TOOL CALL Q5 Z SQ6
72 M9
73 CYCL DEF 200 DRILLING ~
    Q200=+5    ;SET-UP CLEARANCE ~
    Q201=+Q8   ;DEPTH ~
    Q206=+Q7   ;FEED RATE FOR PLNGNG ~
    Q202=+Q9   ;PLUNGING DEPTH ~
    Q210=+0    ;DWELL TIME AT TOP ~
    Q203=+0    ;SURFACE COORDINATE ~
    Q204=+50   ;2ND SET-UP CLEARANCE ~
    Q211=+0    ;DWELL TIME AT DEPTH
74 L M140 MB MAX
75 L  X+0  Y+0 F8000 M3
76 L  Z+50 F8000
77 M0
78 M13
79 CALL LBL 11
80 LBL 0
81 * --- CHAMFER -------------------
82 LBL 3
83 TOOL CALL Q30 Z SQ31 DR+Q34
84 M9
85 L M140 MB MAX
86 L  X+0  Y+0 F8000
87 L  Z+50 F5000
88 CYCL DEF 208 BORE MILLING ~
    Q200=+2    ;SET-UP CLEARANCE ~
    Q201=-Q35  ;DEPTH ~
    Q206=+Q32  ;FEED RATE FOR PLNGNG ~
    Q334=+2    ;PLUNGING DEPTH ~
    Q203=+0    ;SURFACE COORDINATE ~
    Q204=+50   ;2ND SET-UP CLEARANCE ~
    Q335=+Q37  ;NOMINAL DIAMETER ~
    Q342=+Q37  ;ROUGHING DIAMETER
89 M0
90 M3 MQ36
91 CALL LBL 11
92 LBL 0
93 * --- TAPP ----------------------
94 LBL 4
95 TOOL CALL Q10 Z SQ11
96 M9
97 Q15 = Q13 * 1
98 CYCL DEF 209 TAPPING W/ CHIP BRKG ~
    Q200=+5    ;SET-UP CLEARANCE ~
    Q201=+Q12  ;DEPTH OF THREAD ~
    Q239=+Q13  ;THREAD PITCH ~
    Q203=+0    ;SURFACE COORDINATE ~
    Q204=+50   ;2ND SET-UP CLEARANCE ~
    Q257=+Q15  ;DEPTH FOR CHIP BRKNG ~
    Q256=+Q13  ;DIST FOR CHIP BRKNG ~
    Q336=+0    ;ANGLE OF SPINDLE
99 L M140 MB MAX
100 L  X+0  Y+0 F8000 M3
101 L  Z+50 F5000
102 M0
103 MQ14
104 CALL LBL 11
105 LBL 0
106 * --------------------------------
107 L M140 MB MAX
108 M2
109 END PGM M12_SKD11 MM 
</strong></pre>



<p class="wp-block-paragraph">こんなデータをタップ径や材質ごとに用意しておくと、座標を編集するだけで<br>多種類のタップ加工簡単にができます。<br>ファナックでも、マクロを作成すれば同様のデータは作成できますが<br>制御機のサイクルだけで作成できるところが、ユーザーにとってはありがたい所だと思います</p>



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



<p class="wp-block-paragraph">一度、ハイデンハイン機を触ると、ファナック機には戻れないと言う意見をよく聞きます。<br>工具管理方法の違いもそうですが、このようなサイクルを<span class="markerPink">制御機側が提供している点</span>は<br>重要なポイントだと思います。<br>これは、高精度輪郭精度なども同じかもしれません。<br>機械メーカーの味付けで、同じNCデータを流しても、終了時間はかなりかわりますね。<br>機械メーカーにとっては、自由度があり、差別化ができていいのかもしれませんが<br>いろんなメーカーの機械を選択したい、ユーザー側としては、データの互換性は気になります。<br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kazuban.com/blog/heidenhain_cycle/feed/</wfw:commentRss>
			<slash:comments>9</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>
