AutoCAD Web:AutoLISP 機能

着々と進化し続けている 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でのAutoLISP機能の使用画面を示す画像。左側にLISPメニューがあり、右側に平面図が表示されている。

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 式は、コマンド  プロンプトに直接入力して、内容を評価することも可能です。次画面では、オブジェクトを選択して拡張エンティティデータをリストから確認しています。

AutoCAD WebのLISPエディタ画面を表示している画像。左側には図形作成、修正、選択のツールアイコンがあり、右側にはコマンド入力とオブジェクトプロパティの概要が表示されている。

定義したコマンドをボタンなどのユーザ インタフェースに割り当てることは出来ませんが、「LISP を管理」から、ロードを自動化設定することは可能です。

AutoCAD WebアプリのLISP設定画面を表示し、ChColor.lspファイルの自動実行オプションを示すユーザーインターフェースのスクリーンショット。

初期実装ではありますが、ぜひ、お試しください。

  • オートデスクでクラウドと API というと「Forge」を思い浮かべる方もいらっしゃるかと思いますが、ここでご紹介した AutoCAD Web と AutoLISP の関係は、あくまで AutoCAD Web の機能拡張であって Forge とは特に関係ありません。

By Toshiaki Isezaki


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading