着々と進化し続けている AutoCAD Web アプリ、最近 AutoLISP 機能が追加されてましたので、簡単にご紹介しておきます。
※AutoCAD Web アプリの AutoLISP 機能の利用には、AutoCAD Plus(AutoCAD including specialized toolsets)サブスクリプションが必要になりました。
ここでいう AutoLISP 機能とは、デスクトップ版 AutoCAD で作成済の AutoLISP ファイル(.lsp)を実行する機能を指します。AutoCAD Web 自体に AutoLISP の編集やデバッグ機能はありません。また、実行出来る機能はプラットフォーム非依存な関数に限定されます。(vl-*) あるいは (vla-*) などの Windows 固有関数は使用出来ません。また、Web ブラウザをプラットフォームにするため、ポップアップにあたる DCL ファイルを使ったダイアログ表示も利用することが出来ませんが、コマンド プロンプトを介したリスト操作によるオブジェクト作成、操作/編集や情報取得などが可能です。
あらかじめ用意した .lsp があれば、サインイン中のアカウントにアップロードして、開いたドキュメントにロード後、AutoLISP 内に定義したコマンドをコマンド プロンプトに入力して使用することが出来ます。アカウントにアップロードは毎回おこなう必要はありません。
例えば、選択したオブジェクトを TrueColor 色(RGB:81, 203, 61) に色変更する、SetTrueColor コマンドを定義した ChColor.lsp ファイルの実行手順は次のとおりです。
AutoCAD Web の「プロパティ」パネルでは、カラーインデックス色を 1(赤)~ 9(グレー)までしか指定できませんが、この AutoLISP は次のように DXF グループコード 420 を直接リスト操作して、RGB:81, 203, 61 を指定することは出来ます。
(defun TrueColor-make ( r g b / )(+ (lsh (fix r) 16)(lsh (fix g) 8)(fix b)))(defun C:STC (/)(setq ename (entsel "\nオブジェクトを選択:"))(setq datalist (entget (car ename)))(setq oldcolor (assoc 420 datalist))(setq newcolor (cons 420 (TrueColor-make 81 203 61)))(if (= oldcolor nil)(setq newlist (append datalist (list newcolor)))(setq newlist (subst newcolor oldcolor datalist)))(entmod newlist)(princ))
- AutoCAD Web のユーザ インタフェースから RGB 色を指定することは(今のところ)出来ません。
AutoLISP 式は、コマンド プロンプトに直接入力して、内容を評価することも可能です。次画面では、オブジェクトを選択して拡張エンティティデータをリストから確認しています。
定義したコマンドをボタンなどのユーザ インタフェースに割り当てることは出来ませんが、「LISP を管理」から、ロードを自動化設定することは可能です。
初期実装ではありますが、ぜひ、お試しください。
- オートデスクでクラウドと API というと「Forge」を思い浮かべる方もいらっしゃるかと思いますが、ここでご紹介した AutoCAD Web と AutoLISP の関係は、あくまで AutoCAD Web の機能拡張であって Forge とは特に関係ありません。
By Toshiaki Isezaki
コメント