今日は、AutoCAD 2014 の新機能 ~ その 3 で紹介した JavaScript API についてご案内しましょう。5 番目の API となる JavaScript API は、AutoCAD にとって、初めて Web 開発者に AutoCAD カスタマイズの門戸を開く役割を担います。
CAD のカスタマイズと言うと、Web やデータベースといった一般的なシステム開発をおこなう開発者にとって、少々敷居の高い印象を与えてしまっているようです。なぜなら、図面や図形、座標やベクトルといった独特の要素に加えて、CAD ソフトウェアの中に、ある意味、完成された OS のような世界が存在しているからです。例えば、その中で OS と同じようにコマンドを実行していくことができますし、独自のユーザ インタフェースや API が 4 つも持っています(いままで)。Windows や Mac といった OS をプラットフォームと呼びますが、AutoCAD を開発プラットフォームとして捉えば、歴史や奥行きなどから、どうしてもハードルが高くなりがちです。
Web 開発の世界はどうでしょう。かなり広範囲な話になってしまいますが、クライアント コンピュータ側での実行を担うプラットフォームという側面として見るなら、Web ブラウザをプラットフォームとして考えることが出来ると思います。そんな Web プラットフォームを AutoCAD に取り込んだのが、AutoCAD JavaScript API です。
Web を中心に開発をしている開発者の中には、クラウド コンピューティングに精通している方もいらっしゃるかと思います。そんな経験豊富な開発者の方に、オートデスクが推進しているクラウド サービスに参加いただけたらうれしい限りです(いろいろと今後出てきますので)。Web プラットフォームから AutoCAD にチャレンジしていただければ、少しはハードルを下げられるのでは、という期待もあります。
といっても、いままで AutoCAD を開発プラットフォームとして利用してきていただいた方にも、AutoCAD JavaScript API を知っていただきたいので、まずは、JavaScript について簡単にご紹介しましょう。
JavaScript とは?
ここで JavaScript について詳細に説明することはできませんが、概要だけをお伝えしておきます。 まず、誤解を解くために、Wikipedia に記載されている JavaScript についてご一読いただくことをお勧めします。知っておいていただきたいのは、JavaScript は、言語仕様上、Oracle 社の Java とは無関係であるという点です。
そもそも JavaScript は、Web ブラウザで動作するインタプリタ言語です。AutoCAD で言えば、AutoLISP のようなイメージを持っていただくといいかも知れません。一番の特徴は HTML と共に動的な Web コンテンツ(Webページ)を作成できるという点です。このため、HTML のタグと共に利用する必要があります。次のコードは、<script> タグを使って、HTML ファイルの中に JavaScript の警告ダイアログを表示します。
<script language=”text/JavaScript”> |
実際には、HTML として <HTML> タグと <BODY> タグも必要になるので、次のような感じになります。
<html> |
JavaScript の中でも変数を多用します。この変数について、JavaScript では「弱い型付け」と呼ばれる特徴があります。C++、C#、VB.NET のように宣言時にあらかじめ型をしてせずに、値を代入しておくことができます。逆に言えば、変数に値を代入することで、その型が動的に決定されます。
<html> |
この点でも AutoLISP の変数の扱いや VBA の Variant 型に似ていると感じるかもしれません。
さて、JavaScript でも配列を利用することができます。この場合、配列の各要素を指定するための添え字は、0 が基底となります。x[0]、x[1]、のような感じです。また、同様に、初期化にも対応します。
<script language=”JavaScript”> |
そして、JavaScript は C 言語のような関数を定義して、別の場所から呼び出すことが出来ます。次の例では、最初の <script> タグ内で Hello 関数を定義して、別の <script> タグで Hello 関数を呼び出しています。
<script language="JavaScript"> |
AutoCAD JavaScript API の利用
AutoCAD 2014 で登場した JavaScript API は、AutoCAD JavaScript API の第一世代です。今後、数年をかけて実装を強化していきます。AutoCAD JavaScript API は、HTML ファイル内から <script> タグを使って http://www.autocadws.com/jsapi/v1/Autodesk.AutoCAD.js から参照することができます。
<html> <script |
現在、デベロッパガイドが残念ながら用意できていませんが、http://www.autocadws.com/jsapi/v1/docs/index.html から英語のリファレンス マニュアルを参照することが出来るようになっています。
実際のプログラム作成では、ライブラリとして公開された Acad 名前空間の関数を呼び出し、その戻り値を参照しながら処理を進めていきます。このとき、各関数は AutoLISP のリスト式に相当するパッケージを使って、多数の情報を返します。JavaScript では、このパッケージに JSON (JavaScript Object Notation)を利用します。
JSON は括弧で構造化された複数データの集合で、JavaScript の parse 関数で内容を抽出していくことができます。この部分を AutoLISP に当てはめるなら、(car)、(cdr)、(nth) といった要素の取り出し関数に似ています。
開発エディタ
AutoCAD 上で JavaScript API を作成するに際には、当然、エディタが必要になります。ただ、AutoCAD は JavaScript 用の専用エディタないし、統合開発環境(IDE)は用意していませんので、独自に用意していただく必要があります。
特に推奨する開発エディタは存在しませんが、無償の開発環境が多数公開されていますので、適宜、お使いの Web ブラウザとの組み合わせも含めて、ダウンロードして評価してみることをお勧めします。下記は代表的な JavaScript の無償エディタです。
Visual Studio Express 2012 for Web
http://www.microsoft.com/visualstudio/jpn#products/visual-studio-express-for-web
NetBeans
http://ja.netbeans.org/
Firebug
https://addons.mozilla.jp/firefox/details/1843
次回は、具体的な AutoCAD JavaScript API のコードを使用して利用方法を見ていきます。
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。