ご注意:AutoCAD I/O は2016年6月に Design Automation API に名称変更されました。
このブログ上では、AutoCAD I/O Web サービス、AutoCAD I/O サンプル、の各タイトルで、ちょうど1年くらい前に AutoCAD I/O についてご紹介しています。今回、API のバージョンが V2 に上がりましたので、改めて AutoCAD I/O の仕組みと最新のサンプルをご案内したいと思います。バージョンアップといっても、日本ではまだ利用されている方も少ないので、まだ AutoCAD I/O 自体を知ってただく必要があるのです。
AutoCAD I/O とは、一言で説明するなら「クラウド上で動作する AutoCAD」です。実際に動作するのは、ユーザインタフェースを持ち、図面を表示する AutoCAD(acad.exe)ではなく、ユーザインタフェースを持たないコアモジュール accoreconsle.exe です。accoreconsole.exe についても過去のブログ記事 コンソール バージョンの AutoCAD でご紹介していますが、このコアモジュールは現在でも AutoCAD とともにインストールされているので、単体でテストすることが可能です。
ユーザインタフェースを持たない AutoCAD、accoreconsle.exe も ObjectARX や AutoCAD .NET API で作成されたアドイン アプリケーションをロードして実行することが出来ます。唯一の制限は、accoreconsole.exe で動作させるアドイン アプリケーションには、ダイアログ ボックスやポップアップ ウィンドウなど、一切のユーザ インタフェースを実装できない点です。あくまで、コマンド プロンプトで動作する内容をアドイン化する必要があります。
AutoCAD I/O は、一般ユーザが利用するサービスではなく、開発者向けの実行環境です。独自に開発したアドイン アプリケーションをクラウド上にアップロードしてバッチ処理で DWG ファイルを生成したり、既存のストレージから AutoCAD I/O の動作環境に DWG ファイルをダウンロードして、図面を修正、変更して、指定したストレージにアップロード(保存)することが出来ます。
アドイン アプリケーションやパラメータを AutoCAD I/O に受け渡す処理には、Open Data Protocol (OData) と呼ばれるプロトコルを使用します。AutoCAD I/O で OData を利用する際には、次の概念を理解する必要があります。
- Activity(アクティビティ)
AutoCAD I/O に処理させるジョブで、後述の WorkItem に関連付けられて指定されます。 - WorkItem(ワークアイテム)
関連付けされた Activity の内容によって、入力と出力のパラメータを指定することが出来ます。パラメータには、通常、編集対象の既存 DWG ファイルの入手先 URLと、編集後に DWG ファイルを保存するための URL を指定します。 - AppPackage(App パッケージ)
AutoCAD I/O に渡して、実行させるアドイン アプリケーションです。ObjectARX か .NET API で作成されて、自動ローダーでロードさせる仕組みも提供する必要があります。自動ローダーとは、PackageContents.xml ファイルを利用して AutoCAD へのアドイン ロードを実行する仕組みです。
もちろん、AutoCAD I/O での処理をは一瞬で完了するわけではありません。クラウド上の AutoCAD I/O が Activity で指定した処理を完了したか否か、REST API を使ったポーリングでトラックする必要があります。
さて、http://www.jigsawify.com/ から利用することが出来る、AutoCAD I/O を使った Jigsawify というユニークなサンプルがあります。
Jigsawify は、ページ中央にドラッグ&ドロップしたラスター画像ファイルから輪郭を抽出、新規生成した図面ファイル上に貼り付け、指定サイズでジグソーパズルを作成します。作成後の図面は、DWG ファイルか DXF ファイルとしてダウンロードすることが出来ます。例えば、TrustedDWG のアイコンを指定すると、次のような DWG ファイルを生成することが出来ます。パズルの各ピースを作成している部分も含め、CRX アプリケーションが処理しています。
Jigsawify はオートデスクの Kean Walmsley が作成したもので、彼のブログ Through the Interface で詳細に説明されています。Kean は、現在、オートデスクで Software Architect として働いていますが、以前 、ADN の開発サポート チームに在籍したこともあり、何度も来日していたので、ご存じの方もいらっしゃるかと思います。
彼は AutoCAD API の大家でもあり、彼のブログにも開発のヒントになる沢山のサンプルが記載されています。ぜひ、いくつかのキーワードでインターネット検索してみてください。Jigsawify のソース コードも https://github.com/KeanW/jigsawify ですべて公開されていますので、前述の概念がどのように実装されているか参考になるはずです。
By Toshiaki Isezaki
コメント