CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発 DWG

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

投稿日:2019年1月13日 更新日:

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はこちら。

-ソフト開発, DWG

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

PDFアレコレで画面の拡大・縮小・移動ができるようにした

PDFアレコレをバージョンアップ。約4か月ぶり。 Ver3.05 2021/6/20 ・PDFの描画位置を左右上下にセンタリングするようにした(以前は左上)。 ・Ctrl+マウスホイール上下操作によっ …

no image

PMサーバー版リリース

ペーパーモデル化ツールサーバー版の宣伝。 詳しくは、kensetsu21のこちらのサイト(PDF)をご覧あれ。 クライアントは、サーバー上の共有フォルダにファイルを ドラッグ&ドロップするだけ。 サー …

VC2017でWindowsの環境変数を取得する方法

C++のUnicodeプロジェクトにおいて、_wgetenvでWindowsの環境変数が取得できるのはわかる。 こんなソースがあって、ビルドしたらエラーになった。 void CMFCApplicati …

no image

C#勉強中

Cから入ってC++になり、C#をやることになりました。時代はWebアプリケーションということなので。同じCという文字がついているので、まぁ同じようなもんでしょ、と楽観的観測でいたのですが...。初めて …

PDFアレコレVer1系は1.02で打ち止めとするにあたって最後の強化をした

iTextSharp7を組み込んでVer2にしようというプランに移行するにあたって、心残りだったところをVer1.02として強化しておいた。