サイトアイコン CAD日記

Teigha改めODAでDWGをDXFに変換するプログラムをつくってみよう!【Part.1】

Teigha改めODA(Open Design Alliance)は有料のライブラリー。商用利用するならば、最低でも年間1500ドル(初年度2000ドル)を要する。この場合、配布本数が100本に限られてしまうので、無制限に配布できる年間3000ドル(初年度5000ドル)の契約をすることになるだろう。
一方、商用利用しない場合なら無料または安価に利用できる。60日間のお試しなら無料。教育目的なら1年間無料。組織内で使うなら年間100ドル(初年度250ドル)で2年間使い続けられる。
くわしくは、以下のサイトを参照されたし。
Membership Options

【開発環境】
Visual Studio Community 2017
C++ によるデスクトップ開発
x86用とx64用のVisual C++ MFC
以上、無料で構築可能。とは言え、CADに関わるビジネスユースだったら有料版のVisual Studioを使えるか。。

【ODA(Teigha改め)モジュール】
Kernel and Drawing (2019 Update 2)
Drawings_vc15_amd64dll.zip
Drawings_vc15_amd64dlldbg.zip
Kernel_vc15_amd64dll.zip
Kernel_vc15_amd64dlldbg.zip
Windows 64bitのみを対象とする。もちろん32bit用もあるが、これから作るアプリなら64bitだけでよいはず。
Visual Studio 2017用を対象とする。2005以降すべてが用意されている。
dll版をreleaseとDebugを対象とする。スタティックリンクするmtとmdも用意されているが、実装面での制約がいろいろあって面倒。

【フォルダ構成】
ODATest ※任意のフォルダ
└─SampleExe ※これから作るアプリケーション
└─ODA2019upd2 ※ODAモジュールを配置(zipを解凍する場所。4つのzip内にはヘッダーやソースコードなどが重複しているので、解凍時に上書きしてよい。)

【Visula Studioで新規プロジェクト作成】
Visual C++ ⇒ MFC/ATL ⇒ MFCアプリケーションとして、ODATest内にSampleExeという名前を指定する。ウイザードであれこれ出てくるので、ダイアログベースとして、共有DLLでMFCを使用とする。その他こまかい設定についてはご自由に。なるべくシンプルにしたほうが余計な問題に遭遇せずに済む。

【プロジェクトのダイアログリソース】
以下のように、変換元ファイルを選択して変換実行できるというシンプルなインターフェースとする。

変換先は同一パスで拡張子だけ異なるようにすることで、面倒なインターフェースをつくる必要がない。
同じDWGでバージョン違いを保存するなんてことも今後考えられるが、それは後々の話ということで。

というプランで、ODAモジュールを除いたVC++のサンプルコードを公開するつもり。ODAモジュールの利用を最小限にしてわかりやすいサンプルコードにするのがタイヘンそう。はじめてODAを使うって人が、とっかかりがよくなることを目指すわけだ。ODAとしてやらなければいけないことはけっこういろいろあって、ずいぶん前にやったことを思い出す必要があるので、脳が衰え気味のアラフィフオヤジとしてはけっこうな作業になる。

Part.2はこちら。

モバイルバージョンを終了