AutoCAD 2014 になって、AutoCAD API には新しく JavaScript API が加わりました。これで事実上 5 つめの API が AutoCAD 上で利用できるようになったわけですが、これとは別に、よく混乱の原因となる API の問題があります。それが、AutoCAD をベースとした業界別の製品が提供する API の存在です。
オートデスクは、AutoCAD API を使って、製造、建築、土木、電気などの業界別製品を販売しています。それぞれ、AutoCAD Mechanical、AutoCAD Architecture、AutoCAD Map3D や Civil 3D、AutoCAD Electrical が、これに該当します。それぞれの製品は、AutoCAD の機能を土台にして、API カスタマイズで業種に特化したコマンドや機能が盛り込まれています。

これら、AutoCAD ベース製品でも、標準の AutoCAD が持つ AutoCAD API を利用していただくことが可能です。ただし、カスタマイズの対象となるのは標準の AutoCAD がも持つ機能に関連するもののみで、業界別に盛り込まれた機能が、そのまま全ての API でカスタマイズできるとは限りません。
業界別の AutoCAD は、その専用機能を特定の API でのみ公開しています。理由はさまざまですが、買収よってオートデスクが手に入れた製品であったり、開発を始めた時期による、と考えていいのかも知れません。次の表は、AutoCAD ベースの業界別製品の専用機能は、どの AutoCAD API で公開されているか簡単にまとめたものです。

加えて、これらの API でも、業界別製品が提供するすべての専用機能が、API 公開されているわかではない、と考えるべきです。例えば、AutoCAD Mechanical は、1990 年代後半に、AutoCAD 用の機械設計用アプリケーションだった Genius という製品を買収したのが始まりです。買収後には、オートデスク自身はアドオン アプリケーションの開発をするようになり、製品名も変更しました。
Genius には、パワーディメンション と呼ばれる専用の寸法機能がありますが、残念ながら、パワーディメンションは API としては公開されていません。一方、買収後に実装された ストラクチャ といった機能は、Mechanical API として公開されています。先の表で、AutoCAD Mechanical の ObjectARX と ActiveX/COM が △ になっているのは、そういった意味合いがあります。もちろん、acedCommand() や (comnmand) といった関数、あるいは、sendStringToExecute() や SendMessage などの方法で、用意されている専用コマンドを呼び出すことは出来ますが、引数やパラメータ、戻値りのチェックによる分岐、といった詳細な制御ができるApplication Programming Interface としての利用は出来ません。
もし、AutoCAD ベースの業界別製品を用いて、用意された専用機能をカスタマイズしようとされる場合には、どのAPIで、どの範囲の API が公開されているか、事前に十分調べていただくことをお勧めします。
情報の入手先は、デスクトップ製品の新バージョン用 SDK の入手方法 で紹介した URL や、http://www.autodesk.co.jp/developerplatforms 配下のページ、ADN Extranet(http://adn.autodesk.com)などがあります。
By Toshiaki Isezaki

You must be logged in to post a comment.