<?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>DXF | じじぃの引出し</title>
	<atom:link href="https://www.kazuban.com/blog/tag/dxf/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kazuban.com/blog</link>
	<description>なにかしら、皆さんの参考になれば幸いです！</description>
	<lastBuildDate>Mon, 10 Apr 2023 07:08:19 +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>DXF | じじぃの引出し</title>
	<link>https://www.kazuban.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>NCデータをＤＸＦ変換するためのDXFフォーマットを解説します</title>
		<link>https://www.kazuban.com/blog/nc-check-to-dxf/</link>
					<comments>https://www.kazuban.com/blog/nc-check-to-dxf/#comments</comments>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 31 Oct 2020 05:49:21 +0000</pubDate>
				<category><![CDATA[NC]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[DXF]]></category>
		<category><![CDATA[NCプログラム]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=3570</guid>

					<description><![CDATA[前回公開した、ＮＣデータ確認ソフトに、少し名前を変更しＤＸＦ変換機能を追加しました。 「NcCheck2Dxf Ver3.41」こちらからダウンロードできます。 機能追加にあたり、ＤＸＦファイルの情報を集めなおしたので、 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://www.kazuban.com/blog/nc-check-ver2/" target="_blank">前回公開した、ＮＣデータ確認ソフト</a>に、少し名前を変更しＤＸＦ変換機能を追加しました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><br><a href="#DownLoad"><strong>「NcCheck2Dxf Ver3.41」こちらからダウンロードできます。</strong></a></p></blockquote>



<p class="wp-block-paragraph"><br>機能追加にあたり、ＤＸＦファイルの情報を集めなおしたので、今回はＤＸＦについての記事を書いてみます。<br><br>以前の記事で、ＤＸＦには少し触れていますので、興味ある方は下記もご覧ください。</p>



<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-じじぃの引出し"><div class="wp-block-embed__wrapper">

<a href="https://www.kazuban.com/blog/get-circle/" title="DXFから、穴情報を取出す" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="180" height="180" src="https://www.kazuban.com/blog/wp-content/uploads/2020/05/256.bmp" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">DXFから、穴情報を取出す</div><div class="blogcard-snippet internal-blogcard-snippet">外出自粛のなか、DXFデータの円要素を読み込み、穴情報を取り出すソフトを作成してみました。CADなどで描いた「円要素」を穴と捉え、位置や直径などを取り出します。取り出した情報ファイルはテキストやエクセルの他に、簡易的なＮＣデータも自動作成する仕様としました。DXFファイル「DXF」は「Autodes...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kazuban.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.kazuban.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.03</div></div></div></div></a>
</div></figure>



<p class="wp-block-paragraph">こちらは、ＤＸＦファイルから、円要素のみを穴情報として取り出し、簡易的な穴加工用ＮＣデータを作成するソフトでした。<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></li><li><a href="#toc3" tabindex="0">DXFの構成</a></li><li><a href="#toc4" tabindex="0">HEADER（ヘッダ） セクション</a></li><li><a href="#toc5" tabindex="0">TABLES（テーブル）セクション</a><ol><li><a href="#toc6" tabindex="0">LTYPE（線種）テーブル</a><ol><li><a href="#toc7" tabindex="0">実線の定義</a></li><li><a href="#toc8" tabindex="0">点線の定義</a></li><li><a href="#toc9" tabindex="0">一点鎖線（センターライン）の定義</a></li><li><a href="#toc10" tabindex="0">ＬＴＹＰＥテーブルの終了</a></li></ol></li><li><a href="#toc11" tabindex="0">LAYER（画層）テーブル</a></li><li><a href="#toc12" tabindex="0">STYLE（文字スタイル）テーブル</a></li></ol></li><li><a href="#toc13" tabindex="0">ENTITIES（図形）セクション</a><ol><li><a href="#toc14" tabindex="0">共通のグループコード</a></li><li><a href="#toc15" tabindex="0">LINE（線分）</a></li><li><a href="#toc16" tabindex="0">ARC（円弧）</a></li><li><a href="#toc17" tabindex="0">CIRCLE（円）</a></li></ol></li><li><a href="#toc18" tabindex="0">EOF（ファイルの終了）</a></li><li><a href="#toc19" tabindex="0">NcCheck に ＤＸＦ変換機能追加しました。</a><ol><ol><li><a href="#toc20" 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">DXFはAutodesk社のAutoCADの図面情報が記述されているテキストファイルで、他ＣＡＤとの互換性を重視して規定しているフォーマットです。<br>そのため多くのＣＡＤがサポートしているので、事実上の標準フォーマットと言えるデータ構造です。</p>



<h2 class="wp-block-heading"><span id="toc2">ＤＸＦを構成するグループ</span></h2>



<p class="wp-block-paragraph">ＤＸＦはグループの集まりです。<br>２行で１グループの構成で、最初がグループコード、次がグループ値です。<br>グループコードは、右寄せで３文字になるように左をスペースで埋めた正の整数です。<br>グループ値は、グループコードによりその変数の型が異なります。<br>古い情報ですが、下記のように決められています。</p>



<pre class="wp-block-preformatted">グループ・コード　　グループ値
++++++++++++++++++++++++++++++++++++++++++++++++
0 ～ 9   　　　　文字列
　　　　0　　　　ファイルの分離符号、データの開始
　　　　1　　　　一つのデータに対する最初の文字の値
　　　　2　　　　名前（属性名称、複合図形名など）
　　　3-5　　　　その他の文字の値あるいは名前の値
　　　　6　　　　線種名
　　　　7　　　　字体名
　　　　8　　　　画層名
　　　　9　　　　変数名を特定（HEADERセクションのみ）
--------------------------------------------------
10～59　　  　　浮動小数点
　　　　10　　　最初のＸ座標（線分、円中心、文字始点など）
　　11-18　　　その他のＸ座標
　　　　20　　　最初のＹ座標
　　21-28　　　その他のＸ座標
　　　　30　　　最初のＺ座標
　　31-36　　　その他のＸ座標
　　　　38　　　0でなければ、この図形の高度
　　　　39　　　0でなければ、この図形の厚さ
　　40～48　　　浮動小数点値（文字高さ、尺度など）
　　　　49　　　反復される値（LTYPE ダッシュの長さなど）
　　50～58　　　角度
-----------------------------------------------------
60～79　    　　整数 
　　　　62　　　色番号 
　　　　66　　　後続図面ありフラグ
　　70～78　　　反復数、フラグ、ビット、モードなど整数値 
-------------------------------------------------------  </pre>



<p class="wp-block-paragraph"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a64.htm" target="_blank">AutoCAD 2011の情報は、こちらに公開されています。</a><br>各データテーブルの記入項目、ファイル分離符号は、常にグループコード「  0」で始まり、次の行に項目を説明する名前が続きます。</p>



<h2 class="wp-block-heading"><span id="toc3">DXFの構成</span></h2>



<p class="wp-block-paragraph">一般的なDXFファイルの構成は、以下のようなイメージです。<br>DXFバージョンによっては、他にもいくつかのセクションがあるようですが変換ソフトでは、下記から「BLOCKS」を除いた、３つのセクションで構成しようと思います。</p>



<pre class="wp-block-preformatted">----------------------------------------
HEADER　セクション
　　図面の情報データ、空間など
----------------------------------------
TABLES　セクション
　　線種、色、レイヤー、スタイルなど
----------------------------------------
BLOCKS　セクション
　　ブロック図形のデータ
----------------------------------------
ENTITIES　セクション
　　線・円弧など、図面データ
----------------------------------------
END OF FILE
　　ファイルの終わり
----------------------------------------</pre>



<p class="wp-block-paragraph" id="block-eeab9481-5247-470b-b1bb-31b65ee5a492">一つのセクションは、<br>　0<br>SECTION<br>で始まり。<br>　0<br>ENDSEC<br>で終わります。</p>



<h2 class="wp-block-heading"><span id="toc4"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WSfacf1429558a55de185c428100849a0ab7-5f05.htm" target="_blank"><span class="has-inline-color has-black-color"><span style="text-decoration: underline;">HEADER（ヘッダ） セクション</span></span></a></span></h2>



<p class="wp-block-paragraph">HEADERセクションは、図面に関する変数設定が記述されます。<br><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a6f.htm" data-type="URL" data-id="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a6f.htm" target="_blank">AutoCAD 2011 の情報がこちらにあります</a>が、別のＣＡＤで吐き出したＤＸＦファイルのヘッダー部分をそのまま使用しても問題ないと思いますが、<br><a href="#DownLoad">公開の変換ソフト</a>では、図形要素が主な目的なので、このセクションは省略しても手持ちのＣＡＤでの読み込みは問題ありませんでした。<br>私は、「$ACADVER」のAutoCAD のバージョン番号のみ定義する事にします。<br>なるべく古いDXF形式のほうが互換性はありそうなので、新しい機能は使用せず「AC1006」バージョン程度の指令とします。</p>



<pre class="wp-block-preformatted">  0
SECTION
  2
HEADER
  9
$ACADVER
  1
AC1006
  0
ENDSEC</pre>



<h2 class="wp-block-heading"><span id="toc5"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WSfacf1429558a55de185c428100849a0ab7-5e1a.htm" target="_blank"><span class="has-inline-color has-black-color"><span style="text-decoration: underline;">TABLES（テーブル）セクション</span></span></a></span></h2>



<p class="wp-block-paragraph">TABLESセクションには、いくつかのTABLEが含まれます。<br><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WSfacf1429558a55de185c428100849a0ab7-5e1a.htm" target="_blank">AutoCAD 2011 のTABLEセクション</a><br>ここでは、「LTYPE（線種）」「LAYER（画層）」のみを設定します。<br>各TABLE の順番は変化するかもしれませんが、「LTYPE」は常に「LAYER」より先に定義します。</p>



<h3 class="wp-block-heading"><span id="toc6"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a4f.htm" target="_blank">LTYPE（線種）テーブル</a></span></h3>



<p class="wp-block-paragraph">LTYPEテーブルは、グループ「  2」に続いて「LTYPE」が指示され、続いて「 70」の後に、「LTYPE（線種）」の最大数を指定します。</p>



<pre class="wp-block-preformatted">  0
SECTION
  2
TABLES
  0
TABLE
  2
LTYPE
 70
     6</pre>



<p class="wp-block-paragraph">次に「  0」に続いて具体的な「線種」を定義していきます。<br>他ＣＡＤが吐き出したＤＸＦファイルを参考にしました。<br>種類は一般的な「CONTINUOS：実線」「DOT：点線」「HIDDEN：隠れ線」「DASHED：破線」「CENTER：一点鎖線」「PHANTOM：二点鎖線」の６種類とします。<br>種類は「  2」に続いて、線種名「CONTINUOS」などを設定し<br>次に「 70」に続いては標準フラグ値の設定ですが、<a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a4f.htm" target="_blank">AutoCADコマンド用みたいで無視してよいとの事</a>なので「0」にしました。<br>次に「  3」に続いて、線種の説明「Solid line」などを定義します。<br>次に「 72」に続いては、位置合わせコードとなっていますが、常に「65」のようです。<br>次は「 73」に続いて、線種パターンの要素数です。<br>要素数は、プロッタで描く場合を想像し「ペンダウン」の場合と「ペンアップ」の場合をそれぞれ１と数えます。<br>ただし、「実線」の場合は少し特殊で「0」となるようです。<br>続いて、「 40」でパターンの全長、「 49」で「ペンアップ・ダウン」の長さを指定します。<br>ペンダウンはプラス符号、ペンアップはマイナス符号になります。<br>ここも、「実線」の場合は、「0.0」になるようです。</p>



<h4 class="wp-block-heading"><span id="toc7">実線の定義</span></h4>



<pre class="wp-block-preformatted">  0
LTYPE
  2
CONTINUOUS
 70
      0
  3
Solid line __________
 72
     65
 73
      0
 40
0.0</pre>



<h4 class="wp-block-heading"><span id="toc8">点線の定義</span></h4>



<p class="wp-block-paragraph">点線は、「ペンダウン：0.1」「ペンアップ：1.0」としてみます。</p>



<pre class="wp-block-preformatted">  0
LTYPE
  2
DOT
 70
0
  3
Dot line ..........
 72
     65
 73
      2
 40
1.1
 49
0.1
 49
-1.0</pre>



<h4 class="wp-block-heading"><span id="toc9">一点鎖線（センターライン）の定義</span></h4>



<p class="wp-block-paragraph">一点鎖線は、「ペンダウン：5.0」「ペンアップ：1.0」「ペンダウン：1.0」「ペンアップ：1.0」とします。</p>



<pre class="wp-block-preformatted">  0
LTYPE
  2
CENTER
 70
     64
  3
Center line ___ _ ___
 72
     65
 73
      4
 40
8.0
 49
5.0
 49
-1.0
 49
1.0
 49
-1.0</pre>



<h4 class="wp-block-heading"><span id="toc10">ＬＴＹＰＥテーブルの終了</span></h4>



<p class="wp-block-paragraph">各テーブルの終了は「  0」に続き「ENDTAB」を定義します。</p>



<pre class="wp-block-preformatted">  0
ENDTAB</pre>



<h3 class="wp-block-heading"><span id="toc11"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a51.htm" target="_blank">LAYER（画層）テーブル</a></span></h3>



<p class="wp-block-paragraph">LAYERテーブルも、まずはグループ「  2」に続いて「LAYER」が指示され、続いて「 70」の後に、「LAYER（画層）」の最大数を指定します。</p>



<pre class="wp-block-preformatted">  0
TABLE
  2
LAYER
 70
     20</pre>



<p class="wp-block-paragraph">続いて、レイヤーの名前や色、事前に設定されている線種を定義します。<br>「  2」に続いて適当なレイヤー名、次に「 70」に続いては「LTYPE」と同様に「  0」でよさそうです。<br>次に「 62」に続いて色番号を定義します。<br>基本的な色番号は</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>１：赤<br>２：黄<br>３：緑<br>４：水<br>５：青<br>６：紫<br>７：白</p></blockquote>



<p class="wp-block-paragraph">となります。<br>次は「  6」に続いて、「LTYPE」で定義された線種名を指定します。<br>テーブル終了は同様に「  0」「ENDTAB」で終了します。</p>



<pre class="wp-block-preformatted">  0
LAYER
  2
Move
 70
      0
 62
      1
  6
DOT
  0
LAYER
  2
Center
 70
      0
 62
      7
  6
CENTER
  0
ENDTAB</pre>



<h3 class="wp-block-heading"><span id="toc12"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a4d.htm" target="_blank">STYLE（文字スタイル）テーブル</a></span></h3>



<p class="wp-block-paragraph">ここも最初のSTYLEテーブルの宣言は同様で、「  2」に続いてスタイル名を定義するのも同じです。<br>作成するＤＸＦデータに「文字」を使用しない場合には、このテーブルは不要かもしれませんが、とりあえず１つだけ「STANDARD」の名前で定義しておこうと思います。</p>



<pre class="wp-block-preformatted">  0
TABLE
  2
STYLE
 70
      1
  0
STYLE
  2
STANDARD
 70
      0
 40
0.0
 41
1.0
 50
0.0
 71
      0
 42
1.0
  3
TXT
  4
BIGFONT
  0
ENDTAB
</pre>



<h2 class="wp-block-heading"><span id="toc13"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WSfacf1429558a55de185c428100849a0ab7-5df0.htm" target="_blank"><span class="has-inline-color has-black-color"><span style="text-decoration: underline;">ENTITIES（図形）セクション</span></span></a></span></h2>



<p class="wp-block-paragraph">ここからようやく図形要素を定義していきます。<br>前述の線種やレイヤーなどの属性が必要なければ、「ENTITIES」セクションだけでもいいということになります。<br>「ENTITIES」は、かなり多数の図形要素を定義できますが、２Ｄレベルの図形をＤＸＦに変換する目的であれば、<br>直線（LINE）、円（CIRCLE）、円弧（ARC）、点(POINT)、程度でいいと思いますが、図形の最大最小や加工時間など、コメントなどもＤＸＦ内に含めたい場合には、文字列（TEXT）もあると便利ですね。<br>また、AC1012（R13）のバージョンあたりから、サブクラスマーカーと呼ばれるグループコードが標準化されたようですが、ここではそれ以前の単純な方法を使っていきたいと思います。</p>



<h3 class="wp-block-heading"><span id="toc14">共通のグループコード</span></h3>



<p class="wp-block-paragraph">まずは、上述のセクションと同様に、<br>「  0」「SECTION」「  2」「ENTITIES」として図形セクションの定義が始まる事を宣言します。<br>その後、「  0」に続いて「図形タイプ」（LINE など）、<br>「  8」に続いて「レイヤー名」<br>その次から、図形の座標値が定義されていきます。<br>座標は、「10」「20」「30」それぞれに続いて始点や中心の「X,Y,Z」座標。<br>「11」「21」「31」は終点の「X,Y,Z」座標。<br>「40」は円弧半径。「50」「51」は円弧の「開始・終点角度」となります。</p>



<h3 class="wp-block-heading"><span id="toc15"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-79fe.htm" target="_blank">LINE（線分）</a></span></h3>



<p class="wp-block-paragraph">「ENTITIES」セクション宣言後、「  0」に続いて、図形タイプ「LINE」を指示します。<br>次に「  8」の次で「LAYER」で定義済みのレイヤー名を指定する事で、この線分を任意のレイヤーに含める事ができます。<br>「 62」や「  6」のグループコードを使用して、この線分のみの「色番号」や「線種」を指定する事もできます。<br>設定しなくても、問題はありません。<br>次の「 10」「 20」「 30」で線分の開始点の「X , Y , Z」座標を設定します。<br>Ｚ軸が必要ない場合は、省略できます。<br>続けて、「 11」「 21」「 31」で線分の終点を指示します。</p>



<pre class="wp-block-preformatted">  0
ENDSEC
  0
SECTION
  2
ENTITIES
  0
LINE
  8
Center
 10
-20.1230
 20
0.0000
 11
20.7890
 21
0.0000
  0
LINE
  8
Center
 10
0.0000
 20
-20.5670
 11
0.0000
 21
20.8960
  0
ENDSEC</pre>



<h3 class="wp-block-heading"><span id="toc16"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a35.htm" target="_blank">ARC（円弧）</a></span></h3>



<p class="wp-block-paragraph">円弧も線分と基本的には定義の方法は同様ですが、<br>図形タイプが「ARC」になり、「 10」「 20」「 30」のグループコードは円弧の中心座標となります。<br>次に「 40」で円弧半径を定義し、「 50」「 51」で円弧の開始角度、終了角度を指示します。<br>真円の場合には、次に説明する「CIRCLE」を使用するのが基本ですが、「ARC」でも「50」「51」を「0.0 , 0.0」や「0.0 , 360.0」とする事で真円と認識してくれるＣＡＤもありましたが、図形を描いてくれないＣＡＤもありました。<br>やはり、円と円弧は別に定義したほうがよさそうですね。</p>



<pre class="wp-block-preformatted">  0
ARC
  8
Nomal
 10
0.0000
 20
0.0000
 40
50.0000
 50
15.1230
51
260.5670</pre>



<h3 class="wp-block-heading"><span id="toc17"><a rel="noopener" href="http://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a2d.htm" target="_blank">CIRCLE（円）</a></span></h3>



<p class="wp-block-paragraph">円は、円弧に比べると図形タイプを「CIRCLE」とし、「 50」「 51」のグループコードが省略された形になっています。</p>



<pre class="wp-block-preformatted">  0
CIRCLE
  8
Nomal
 10
0.0000
 20
0.0000
 40
50.0000</pre>



<h2 class="wp-block-heading"><span id="toc18">EOF（ファイルの終了）</span></h2>



<p class="wp-block-paragraph">最後に、「End Of File」ファイル終了コードを挿入して終了となります。</p>



<pre class="wp-block-preformatted">  0
EOF</pre>



<p class="wp-block-paragraph">ＮＣデータからＤＸＦファイルを作成するには、この程度の仕様でいいと思います。</p>



<a id="DownLoad"></a><h2><span id="toc19">NcCheck に ＤＸＦ変換機能追加しました。</span></h2>



<p class="wp-block-paragraph"><a href="https://www.kazuban.com/blog/nc-check-ver2/" data-type="URL" data-id="https://www.kazuban.com/blog/nc-check-ver2/">前回公開した、「NcCheck.exe Ver2.6」</a>にＤＸＦ変換機能を追加し<br><s>「NcCheck2Dxf.exe Ver3.2」として公開します。</s><br>ウィンドウサイズとフォント状態を記憶する仕様としました。<br><s>「NcCheck2Dxf.exe Ver3.4」として公開します。</s><br>「NcCheck2Dxf.exe Ver3.41」として公開します。<br></p>



<h4 class="wp-block-heading"><span id="toc20">ダウンロード</span></h4>



<p class="wp-block-paragraph">Vector には登録申請中です。<br>登録終了しましたら、こちらにアドレスをリンクします</p>



<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img fetchpriority="high" decoding="async" width="449" height="263" src="https://www.kazuban.com/blog/wp-content/uploads/2020/11/NcCheck2Dxf_032.png" alt="" class="wp-image-3698 size-full" srcset="https://www.kazuban.com/blog/wp-content/uploads/2020/11/NcCheck2Dxf_032.png 449w, https://www.kazuban.com/blog/wp-content/uploads/2020/11/NcCheck2Dxf_032-300x176.png 300w" sizes="(max-width: 449px) 100vw, 449px" /></figure><div class="wp-block-media-text__content">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<ul class="wp-block-list" id="block-4ac3bcb2-17f8-48c6-928e-3f5172f0b6d2"><li><a href="https://www.kazuban.com/blog/free_soft/#Soft06">こちらからダウンロードできます</a></li><li>始めて実行する時には、セキュリティのメッセージが出ると思います。</li><li>「詳細情報」から「実行」をクリックしてください。</li></ul>
</div></div>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kazuban.com/blog/nc-check-to-dxf/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>DXFから、穴情報を取出す</title>
		<link>https://www.kazuban.com/blog/get-circle/</link>
					<comments>https://www.kazuban.com/blog/get-circle/#comments</comments>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sun, 03 May 2020 07:30:23 +0000</pubDate>
				<category><![CDATA[NC]]></category>
		<category><![CDATA[DXF]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Fanuc]]></category>
		<category><![CDATA[エクセル]]></category>
		<category><![CDATA[サブプログラム]]></category>
		<category><![CDATA[ファナック]]></category>
		<category><![CDATA[メインプログラム]]></category>
		<category><![CDATA[固定サイクル]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=2442</guid>

					<description><![CDATA[外出自粛のなか、DXFデータの円要素を読み込み、穴情報を取り出すソフトを作成してみました。CADなどで描いた「円要素」を穴と捉え、位置や直径などを取り出します。取り出した情報ファイルはテキストやエクセルの他に、簡易的なＮ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">外出自粛のなか、DXFデータの円要素を読み込み、穴情報を取り出すソフトを作成してみました。<br>CADなどで描いた「円要素」を穴と捉え、位置や直径などを取り出します。<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">DXFファイル</a><ol><li><a href="#toc2" tabindex="0">DXFファイルを覗いてみる</a></li><li><a href="#toc3" tabindex="0">円情報はどこにある？</a></li></ol></li><li><a href="#toc4" tabindex="0">穴情報取り出しソフトGetCircleFromDxf.exe</a><ol><li><a href="#toc5" tabindex="0">C++Builder</a></li><li><a href="#toc6" tabindex="0">こんなソフト</a></li><li><a href="#toc7" tabindex="0">ダウンロード</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">DXFファイル</span></h2>



<p class="wp-block-paragraph">「DXF」は「Autodesk社」が開発した、CAD間でやり取りできる、データ構造の一種ですが、事実上の標準フォーマットになっていてほとんどのCADで読み書きできます。<br>DXFには、テキストとバイナリ形式が存在するようですが、ここで紹介するのは、テキスト形式に限定させていただきます。</p>



<h3 class="wp-block-heading"><span id="toc2">DXFファイルを覗いてみる</span></h3>



<p class="wp-block-paragraph">テキスト形式のDXFファイルであれば、メモ帳やエディタなどで開く事ができます。</p>



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



<p class="wp-block-paragraph">DXFファイルは、ほとんどのCADであれば、作成する事ができると思いますし、このサイトでも取り上げてる、「Fusion360」でも作成可能です。<br>スケッチモードで適当な図形（今回は穴がテーマなので円など）を描いて、<br>「スケッチ１」⇒ マウス右クリックから「DXF形式で保存」で作成できます。</p>



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



<p class="wp-block-paragraph">Fusion360で作成された「DXFファイル」をエディタなどで開いてみます。<br>意味は置いといて、数字と単語が羅列されています。<br>このDXFフォーマットの詳しい内容は理解していませんが、<span class="markerPink">２行が一組</span>で意味があるようです。<br>ここでは詳細の説明はできませんので、ご了承ください。<br>興味ありましたら、<a href="https://help.autodesk.com/view/ACD/2019/JPN/?guid=GUID-235B22E0-A567-4CF6-92D3-38A2306D73F3">Autodeskのサイトなど</a>から検索してみてください。</p>



<h3 class="wp-block-heading"><span id="toc3">円情報はどこにある？</span></h3>



<p class="wp-block-paragraph">ここでのテーマは、<span class="markerYellow">DXFから穴情報を取り出す</span>事です。<br>通常、加工図面では、穴は円で描かれていると思うので、まずは円情報を探してみます。<br>DXF形式の、「円」のキーワードは「<strong>CIRCLE</strong>」になります。<br>ちなにみ、「<strong>CIRCLE</strong>」は閉じている図形です。<span class="markerPink">閉じていない場合には「ARC」</span>となりますので注意してください。<br>では、「閉じた円」が含まれるDXFファイルを作成し、「<strong>CIRCLE</strong>」文字列を検索してみます。<br> <span class="markerYellow">位置や円径などは単純でないほうが分析しやすい</span>です <br><br></p>



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



<p class="wp-block-paragraph">「<strong>CIRCLE」</strong>と「<strong>AcDbCircle</strong>」が見つかりました。<br>私自身、DXF形式を理解しているわけではないので、正確な説明はできませんが、「円」の情報はこの２つのキーワードから取り出すことができそうです。<br>この例で分析してみると、「0」「CIRCLE」「5」「100」と続き、その後<br>「8」「0」「100」「AcDbCircle」「10」「-44.847&#8230;」「20」「34.949&#8230;」が見つかります。<br>この値を<span class="markerPink">元図面と比較するとルールが見えて</span>きます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>「10」の次が円中心のＸ座標。<br>「20」の次が円中心のＹ座標。<br>「30」の次が円中心のＺ座標。<br>「40」の次が円の半径。</p></blockquote>



<p class="wp-block-paragraph">これが分かれば、「DXFファイル」から「<strong>AcDbCircle</strong>」を検索し、その次の行から「10」「20」・・のキーワードで、穴の中心と径の情報を取り出す事ができますね。<br>ただ「<strong>AcDbCircle</strong>」は<strong>サブクラス</strong>としての定義みたいなので、単純な「<strong>CIRCLE</strong>」セクションに直接図形情報がある場合もあるようです。<br>ソフトを開発する場合、より汎用性を求めるなら、そちらにも対応しておいたほうがいいかもしれません。</p>



<h2 class="wp-block-heading"><span id="toc4">穴情報取り出しソフト<br>GetCircleFromDxf.exe</span></h2>



<p class="wp-block-paragraph">DXFの円定義方法がわかったので、このルールを基に穴の位置と径の情報として取り出すソフトを作成しました。</p>



<h3 class="wp-block-heading"><span id="toc5">C++Builder</span></h3>



<p class="wp-block-paragraph">開発環境は、C++Builder Community Editiond です。<br>個人使用の場合には、１年間無料で使用できます。<br>ライセンス更新もできますからソフト開発の勉強にはもってこいです<br></p>



<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-じじぃの引出し"><div class="wp-block-embed__wrapper">

<a href="https://www.kazuban.com/blog/cbuilder-license-update/" title="C++Builder Community Edition　のライセンス更新" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="70" src="https://www.kazuban.com/blog/wp-content/uploads/2019/07/10_3_1.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/07/10_3_1.png 630w, https://www.kazuban.com/blog/wp-content/uploads/2019/07/10_3_1-300x65.png 300w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">C++Builder Community Edition　のライセンス更新</div><div class="blogcard-snippet internal-blogcard-snippet">会社では開発環境として、「C++Builder EX6」を使用しています私はソフトウェア開発が商売ではなく、加工が楽になるような、NCデータやNC機械や測定器などのユーティリティソフトを作成していますC++の統合開発環境としては、やはりMSのVisual C++ がメジャーだと思いますが私は、二昔以...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kazuban.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.kazuban.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.07.29</div></div></div></div></a>
</div></figure>



<h3 class="wp-block-heading"><span id="toc6">こんなソフト</span></h3>



<p class="wp-block-paragraph">まずは、起動した、ウィンドウに「DXFファイル」を<span class="markerPink">ドロップ</span>します</p>



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



<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/Soft02.png" alt=""/></figure>



<p class="wp-block-paragraph">デフォルトでは、「Text」と「Excel」がチェックされています<br>必要ない場合には、チェックを外します。<br>「円座標取出し」ボタンで、ドロップした「DXFファイル」と同じフォルダに、穴の<strong>中心位置と穴径</strong>の情報ファイルが出力されます。<br>簡易的なテンプレートデータですが、「NcData」をチェックすると、<strong>ファナック系</strong>のＮＣデータを作成します。</p>



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



<p class="wp-block-paragraph">ＮＣデータは、<span class="markerYellow"> ファナックをターゲット</span>にしています<br>メインプロで工具交換や回転など行い、サブプロには、穴径で分別した穴位置を指令するような構成です</p>



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



<p class="wp-block-paragraph">ＮＣプログラムの構成やメイン・サブプログラムについては下記で詳しく説明しています。<br>興味あれはご覧ください。</p>



<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-じじぃの引出し"><div class="wp-block-embed__wrapper">

<a href="https://www.kazuban.com/blog/main-sub-pro/" title="NCプログラム／プログラム構成" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="244" height="180" src="https://www.kazuban.com/blog/wp-content/uploads/2021/01/Milling2.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2021/01/Milling2.png 1022w, https://www.kazuban.com/blog/wp-content/uploads/2021/01/Milling2-300x221.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2021/01/Milling2-768x567.png 768w" sizes="(max-width: 244px) 100vw, 244px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">NCプログラム／プログラム構成</div><div class="blogcard-snippet internal-blogcard-snippet">NCプログラムの構成は、大きく分けると２種類にわける事ができます。一つは加工に必要な準備機能で、もう一つは、実際の加工経路の動作指令です。さらに、マシニングセンターを対象にすると、準備機能は４つに分ける事ができます。CAMのポストプロセッサを編集する場合やプログラム全体の構成を検討する際、この基本構...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kazuban.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.kazuban.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.01.28</div></div></div></div></a>
</div></figure>



<p class="wp-block-paragraph"><span class="markerPink">「DXF」では「<strong>穴の属性</strong>」までは認識できない</span>ので、メインプロは、単純な固定サイクルコードを出力するのみです。<br>固定サイクルの種別、加工深さ、加工条件などは、<span class="markerPink">編集が必要</span>です。</p>



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



<p class="wp-block-paragraph">実際の条件などの出力は「DXF」の情報だけでは、取得できないので「DXF」だけで求めるＮＣデータを作成する事はできませんが<br>ＮＣコードの出力順序など若干のカスタマイズはできるようにしました。<br>実行ファイルと同梱されている、「TempFile」の中の４つのテキストファイルでカスタマイズできます。</p>



<pre class="wp-block-preformatted">・「Header.txt」
　メインプロ全体の、始まりのコードです。Ｏ番号や初期化コードを指令。

・「Footer.txt」
　メインプロ全体の、終了のコード。キャンセルや「M30」。

・「ToolBegin.txt」
　工具交換など、各工程の始まりのコード。
  工具交換、回転、工具長補正、固定サイクルなど。

・「ToolEnd.txt」
　各工程の終了コード、回転・冷却のキャンセルなど。</pre>



<h3 class="wp-block-heading"><span id="toc7">ダウンロード</span></h3>



<p class="wp-block-paragraph"><a href="https://www.kazuban.com/blog/free_soft/#Soft03">こちらから、ダウンロードできます。</a><br>単純な穴あけ加工や、穴位置の最終確認などには、使えるかもしれません。<br>「Vector」にも登録しました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><a rel="noopener" href="https://www.vector.co.jp/soft/winnt/business/se521263.html" target="_blank"><strong>「Vector」はこちらから、ダウンロードできます。</strong></a></p></blockquote>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kazuban.com/blog/get-circle/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
