C# DXF

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
警告 NU1701 パッケージ ‘netDXF 2.2.0.1’ はプロジェクトのターゲット フレームワーク ‘net6.0-windows7.0’ ではなく ‘.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8’ を使用して復元されました。このパッケージは、使用しているプロジェクトとの完全な互換性がない可能性があります。

DXFデータ(CADデータ)詳細情報

DXFファイルフォーマット

構文

0
SECTION
2
ENTITIES
0
3DFACE
8
(レイヤー名)
10
(1点目の頂点座標値のX成分値)
20
(1点目の頂点座標値のY座標値)
30
(1点目の頂点座標値のZ座標値)
11
(2点目の頂点座標値のX成分値)
21
(2点目の頂点座標値のY成分値)
31
(2点目の頂点座標値のZ成分値)
12
(3点目の頂点座標値のX成分値)
22
(3点目の頂点座標値のY成分値)
32
(3点目の頂点座標値のZ成分値)
13
(4点目の頂点座標値のX成分値)
23
(4点目の頂点座標値のY成分値)
33
(4点目の頂点座標値のZ成分値)
62
(色番号)
0
3DFACE
8
(レイヤー名)
10
(1点目の頂点座標値のX成分値)
20
(1点目の頂点座標値のY座標値)
30
(1点目の頂点座標値のZ座標値)
11
(2点目の頂点座標値のX成分値)
21
(2点目の頂点座標値のY成分値)
31
(2点目の頂点座標値のZ成分値)
12
(3点目の頂点座標値のX成分値)
22
(3点目の頂点座標値のY成分値)
32
(3点目の頂点座標値のZ成分値)
13
(4点目の頂点座標値のX成分値)
23
(4点目の頂点座標値のY成分値)
33
(4点目の頂点座標値のZ成分値)
62
(色番号)
0
ENDSEC
0
EOF

解説

2行で一つのデータグループという形式になっています。
1行目がグループコード
2行目がグループデータ
となっています。

セクションというデータのまとまりがあります。
1つのセクションは、
 グループコード 0 、グループデータ SECTION というデータグループに始まり、
 グループコード 0 、グループデータ ENDSEC というデータグループで終わります。
セクションには、HEADERセクション、TABLESセクション、BLOCKSセクション、ENTITIESセクションがあります。
セクションの種類は、グループコード 2 のデータグループのグループデータで指定します。
 グループコード 2、グループデータ HEADER は、そのセクションがHEADERセクションであることを表します。
 グループコード 2、グループデータ TABLES は、そのセクションがTABLESセクションであることを表します。
 グループコード 2、グループデータ BLOCKS は、そのセクションがBLOCKSセクションであることを表します。
 グループコード 2、グループデータ ENTITIES は、そのセクションがENTITIESセクションであることを表します。

HEADERセクション
このセクションで図面に関する一般情報を記述します。
各パラメターには、変数名と関連値があります。
TABLESセクション
このセクションで名前のついた項目の定義を記述します。
o ラインタイプのテーブル(LTYPE)
o レイヤーのテーブル(LAYER)
o テキストスタイルのテーブル(STYLE)
o 視点のテーブル(VIEW)
o ユーザ座標系のテーブル(UCS)
o ビューポート構成のテーブル(VPORT)
o 寸法スタイルのテーブル(DIMSTYLE)
o アプリケーション識別のテーブル(APPID)
BLOCKSセクション
このセクションで、図面中の各ブロックを作るエンティティを表現する、ブロック定義エンティティを記述します。
ENTITESセクション
このセクションで、どんなブロックリファレンスをも含む、ドローイングエンティティを記述します。
DXFファイルフォーマットのすべてを解説するのは困難なので、3Dモデル表現に関するフォーマット部分にフォーカスして解説します。

ENTITIESセクション
3Dモデル表現に関係のあるセクションは、ENTITIESセクションです。

エンティティ記述は、エンティティのタイプを表すデータグループで始まります。
エンティティのタイプを表すデータグループのグループコードは 0 です。
エンティティのタイプを表すグループデータ、
LINE、POINT、CIRCLE、ARC、TRACE、SOLID、TEXT、SHAPE、BLOCK、ENDBLK、INSERT、ATTDEF、ATTRIB、POLYLINE、VERTEX、SEQEND、3DFACE、VIEWPORT、DIMENSION、Linear、Angular、Diameter、Radius、Ordinate
などがあります。
すべてのエンティティは、レイヤー名を表す記述があります。レイヤー名を表すデータグループのグループコードは 8 です。
それぞれのエンティティは、立面図情報、太さ情報、線種情報、色情報を指定する記述があるかもしれません。
3DFACEエンティティ
1枚の面データを表すエンティティとして、3DFACEエンティティがあります。
グループコード 0、グループデータ 3DFACE
ENTITIESセクション内、もしくは、BLOCKSセクション内で、本記述があったときには、1枚の面データの記述の開始を表します。
1枚の面データの記述は、次にグループコード 0のデータグループが現れるまで続きます。
(他のセクション内で本記述があったときに、何を表すかに関しては、公式の仕様書を参照ください。)
グループコード 10(、20、30)、グループデータ (頂点座標値の1成分値)
1枚の面データの記述中の、グループコードが10(、20、30)のデータグループのグループデータは、その面の1点目のX(、Y、Z)座標値を表します。
グループコード 11(、21、31)、グループデータ (頂点座標値の1成分値)
1枚の面データの記述中の、グループコードが11(、21、31)のデータグループのグループデータは、その面の2点目のX(、Y、Z)座標値を表します。
グループコード 12(、22、32)、グループデータ (頂点座標値の1成分値)
1枚の面データの記述中の、グループコードが12(、22、32)のデータグループのグループデータは、その面の3点目のX(、Y、Z)座標値を表します。
グループコード 13(、23、33)、グループデータ (頂点座標値の1成分値)
1枚の面データの記述中の、グループコードが13(、23、33)のデータグループのグループデータは、その面の4点目のX(、Y、Z)座標値を表します。

参考

DXFファイルフォーマット

DXF書式

DXFとはCAD図面のファイルフォーマットのひとつです。
テキスト形式なのでCADを使用しなくても図面ファイルを作成できます。
図形部分のデータを作成し、定型のヘッダーとフッターで挟むことでDXFファイルを作成できます。

図形部分のデータ作成方法

色番号は以下の数値を使用します 

色番号

線種は以下の文字列を使用します 

線種実線破線(陰線)一点鎖線二点鎖線
線種名CONTINUOUSHIDDENCENTERPHANTOM

「直線」「円」「円弧」「点」「文字列」の要素を連続してテキストを作成します。

直線

0
LINE
8
1 ←レイヤー名
6
CONTINUOUS ←線種名
62
3 ←色番号
10
100.0 ←開始点X座標値
20
200.0 ←開始点Y座標値
11
400.0 ←終了点X座標値
21
500.0 ←終了点Y座標値

0
CIRCLE
8
1 ←レイヤー名
6
CONTINUOUS ←線種名
62
3 ←色番号
10
100.0 ←中心点X座標値
20
200.0 ←中心点X座標値
40
50.0 ←半径

円弧

0
ARC
8
1 ←レイヤー名
6
CONTINUOUS ←線種名
62
3 ←色番号
10
100.0 ←中心点X座標値
20
200.0 ←中心点X座標値
40
50.0 ←半径
50
45.0 ←開始角度(°)
51
300.0 ←終了角度(°)

0
POINT
8
1 ←レイヤー名
62
3 ←色番号
10
100.0 ←描画点X座標値
20
200.0 ←描画点Y座標値

文字列

0
TEXT
8
1 ←レイヤー名
62
3 ←色番号
1
This is a pen. ←文字列
10
100.0 ←挿入点X座標値
20
200.0 ←挿入点Y座標値
40
3.5 ←文字高さ
41
1.2 ←X方向の相対尺度
50
30.0 ←文字の回転角度(°)

参考

DXFファイル

XF書式

NCデータをDXF変換するためのDXFフォーマットを解説します

C# OpenCV

.NET(VB.NET,C#,C++・CLI)からOpenCVを使う方法

  • .NETのラッパーライブラリを使う
  • 自作でラッパーライブラリを作成する
  • C++/CLIから直接使う

実際にはOpenCvSharpを使う事になる

http://code.google.com/p/opencvsharp/

OpenCvSharpインストール

「メニュー」-「プロジェクト」-「NuGetパッケージの管理」

参照を選択し「OpenCvSharp」と入力する

インストール対象として、「OpenCvSharp4」「OpenCvSharp4.runtime.win」「OpenCvSharp4.Windows」が存在しますが、今回は「OpenCvSharp4.Windows」のみをインストールします。全てインストールしてもOKです。

インストール後に依存関係のパッケージを見ると、OpenCvSharpがインストールされている事が判ります。

参考

C#(.NET)からOpenCVを使う方法、OpenCvSharpのインストール方法

C# Xinput

DirectInputとXinput

DirectInput

コントローラーの入力方式ではポピュラーなタイプで、これまでのゲーム機の多く採用されてきた方式。レースゲームに使用できるハンドル型コントローラーなどの特殊なタイプにも対応しているのが特徴です。

Xinput

マイクロソフトが新しく開発した入力方式です。基本的にはマイクロソフトが販売している、Xboxのコントローラーにデザインを想定した作りものになっています。そのためボタン配置、振動設定などの変更が必要なく遊ぶことが可能です。

参考

https://thebest-1.com/a4936/

C# プロジェクト作成

プロジェクト新規作成時何を選ぶべきか?

3つの違いを区別

呼称GUIFramework構造描画技術
1Windowsフォームアプリケーション (.NET Framework)WinForms.NET Frameworkロジック埋込GDI
GDI+
2WindowsフォームアプリWinForms.NET Core
.NET 5.0~
ロジック埋込GDI
GDI+
3WPFアプリケーションWPF.NET Core
.NET 5.0~
ロジック分離Direct3D

Windowsフォームアプリケーション (.NET Framework)

.NET Framework 4.8までしか選択できない。古いバージョンを作る時に使う。

Windowsフォームアプリ

GUIは従来通りにWinFormsを採用なら、こちらを選ぶ

WPFアプリケーション

参考

何が同じで、何が違うのか? – Windowsフォームアプリケーション、Windowsフォームアプリ、そしてWPFアプリケーション

ANA マイレージクラブ ポイント使用

マイルを使った購入種類

航空券のみの購入

問合せ先 国内線の予約センター 0570-029-767

ホテルのみの購入

問合せ先 マイレージクラブセンター 0570-029-767 音声ー3

航空券+ホテル購入

問合せ先 ツアーデスク 050-3172-2341

ポイントを使って航空券購入