AutoLISP の新機能または変更点(AutoLISP)

AutoLISP の最新リリースで行われた変更の概要は次のとおりです。

AutoCAD 2024

新機能
  • 新しい関数および変更された関数はありません
  • Windows 版 AutoCAD LT で、AutoLISP と DCL がサポートされるようになりました

    既知の制限事項または AutoCAD との相違点の一部を次に示します。

    • ほとんどの VL*LA*VLAX*、および VLR* 関数がサポートされていますが、サードパーティ製オートメーション ライブラリの使用は AutoCAD LT ではサポートされていません。

      サポートされていない関数の概要を次に示します。

      • vlax-create-object
      • vlax-get-object
      • vlax-get-or-create-object
      • vlax-import-type-library
      • vla-GetInterfaceObject
      • 3D ソリッドや 3D サーフェス、らせん、マテリアル、マルチライン オブジェクトなど、AutoCAD でしか作成できないオブジェクトの作成および修正に関連する VLA* 関数
    • entmakeentmakexentmod 関数は、AutoCAD LT がサポートしているオブジェクトの作成および修正のみが可能です
    • カスタム ObjectARX および Managed .NET プログラムによって公開された AutoLISP 関数は使用できません
    • ActiveX の制限事項:
      • PreferencesProfiles オブジェクトは ActiveX 実装の一部として存在しますが、Windows 版 AutoCAD LT ではプロファイルがサポートされていないため、そのメソッドとプロパティはすべて削除されています
      • 3D メッシュ、サーフェス、ソリッドの作成はサポートされていません。3D オブジェクトの修正のサポートは制限されています
    • AutoLISP プログラムの開発に関する制限事項:
      • Visual LISP 統合開発環境(IDE)および VLIDE[VLISP 統合開発環境]/VLISP[VLISP エディタ]コマンドは、Windows 版 AutoCAD LT では使用できません
      • Visual Studio Code での AutoLISP Extension を使用したデバッグは、Windows 版 AutoCAD LT ではサポートされていません
    • AutoLISP プログラムの実装に関する制限事項:
      • MNL ファイルは、同じ名前の CUIx ファイルと一緒に自動的にロードされることはありませんが、AutoLISP の LOAD 関数を使用して、他の LISP ファイルからロードすることができます
      • コンパイル済み LSP ファイルは Windows 版 AutoCAD LT でもサポートされていますが、LSP ファイルのコンパイルは Windows 版 AutoCAD でのみ実行できます

    AutoCAD に限定された関数やコマンドを使用するプログラムについては、互換性の問題を回避するために、ロード先の製品を確認する必要があります。これは、システム変数 PROGRAM を使用して行うことができます。AutoCAD LT では acadlt の値が返されます。

    次の例では、コードが AutoCAD または AutoCAD LT にロードされるかどうかに基づいて DVB ファイルのロードおよび VBA マクロを実行するコマンドの定義を制限しています。

    (if (/= (strcase (getvar "PROGRAM") T) "acadlt")
      (progn
        (vl-load-com)
    
        ;; Load a DVB file
        (setq retVal (vl-catch-all-apply 'vl-vbaload (list (findfile "sample/vba/drawline.dvb"))))
    
        ;; If the DVB file was found, then define the function to run the function
        (if (not (vl-catch-all-error-p retVal))
          (defun c:DRAWLINE (/)(vl-vbarun "drawline"))
          (prompt "\ndrawline.dvb is missing")
        )
    
        (prompt "\nEnter DRAWLINE to run the VBA macro.")(princ)
      )
      (progn (prompt "\nVBA macros are not supported on AutoCAD LT.")(princ))
    )

AutoCAD 2023

AutoCAD 2022

新しい関数および変更された関数はありません。

AutoCAD 2021

新機能
  • AutoCAD AutoLISP Extension for Visual Studio (VS) Code - Windows または Mac OS 上で VS Code を使用して AutoLISP ファイルを編集およびデバッグできるようにします。AutoCAD AutoLISP Extension を使用して AutoLISP ファイルをデバッグするには、システム変数 LISPSYS を 1 または 2 に設定する必要があります。LISPSYS を 0 に設定すると、AutoLISP ファイルの編集とデバッグに従来の AutoLISP エンジンと Visual LISP IDE が使用されます。
  • Mac OS での DCL のサポート - DCL を使用して定義したダイアログ ボックスを AutoLISP で表示できるようになりました。Windows でサポートされているすべての DCL タイルは Mac OS でもサポートされていますが、Mac OS ではすべてのタイル属性がサポートされているわけではありません。
変更点

次の関数は、Unicode 文字列/コードをサポートするように更新されました。

  • ascii - 文字列の先頭文字を Unicode 文字コード(整数)に変換して返します。
  • chr - Unicode 文字コードを表す整数を 1 文字の文字列に変換します。
  • load - ファイル内の AutoLISP 式を評価します。
  • open - AutoLISP の入出力関数がアクセスできるようにファイルを開きます。ファイルの読み込み/書き込み時に使用する文字エンコーディングを指定できるようにする新しいオプション引数が追加されました。引数を指定しない場合、ファイルには従来の動作であるマルチバイト文字セット(MBCS)が含まれているとみなされます。
  • read-char - キーボード入力バッファまたは開いているファイルから読み込んだ ASCII 文字または Unicode 文字を表す整数を返します。
  • read-line - キーボードまたは開いているファイルから、行の終了マーカーが現れるまで、文字列を読み込みます。
  • strle - 文字列の文字数を示す整数を返します。
  • substr - 文字列の部分文字列を返します。
  • vl-directory-files - 指定されたフォルダ内のすべてのファイルをリストします。
  • vl-file-copy - あるファイルの内容を別のファイルにコピーまたは追加します。
  • vl-file-delete - ファイルを削除します。
  • vl-file-directory-p - ファイル名がフォルダを参照しているかどうかを調べます。
  • vl-file-rename - ファイル名を変更します。
  • vl-file-size - ファイルのサイズをバイト単位で返します。
  • vl-file-systime - 指定されたファイルが最後に更新された日時を返します。
  • vl-filename-mktemp - テンポラリ ファイルに使用される他と重複しないファイル名を返します。
  • vl-list->string - 整数のリストに関連付けられた Unicode 文字を文字列に結合します。
  • vl-mkdir - フォルダを作成します。
  • vl-string->list - 文字列を Unicode 文字コードのリストに変換します。
  • vl-string-elt - 文字列内の指定した位置にある文字の ASCII 表現を返します。
  • vl-string-mismatch - 指定した位置から始まる、2 つの文字列の最も長い共通の接頭語の長さを返します。
  • vl-string-position - 指定した Unicode 文字コードを持つ文字を文字列内で検索します。
  • vl-string-search - 指定したパターンを文字列内で検索します。
  • vl-string-subst - 文字列内の特定の文字列を他の文字列で置換します。
  • vl-string-translate - 文字列内の文字を指定された文字セットで置換します。
  • vl-vbaload - VBAプロジェクトをロードします。
  • vlisp-compile - AutoLISP ソース コードを FAS ファイルにコンパイルします。
  • write-char - スクリーンまたは開いているファイルに、1 Unicode 文字を書き出します。
  • write-line - スクリーンまたは開いているファイルに、文字列を書き出します。
旧機能
Visual LISP IDE (Windows のみ) - Visual LISP (VL) IDE は廃止され、将来のリリースでは削除されます。AutoCAD AutoLISP Extension for Visual Studio (VS) Code を使用して、新しい AutoLISP プログラムを作成したり、既存の AutoLISP プログラムを更新することをお勧めします。VL IDE を使用して AutoLISP ファイルを編集およびデバッグするには、LISPSYS を 0 に設定する必要があります。

AutoCAD 2020

新しい関数および変更された関数はありません。

AutoCAD 2019

新しい関数および変更された関数はありません。

AutoCAD 2018

新しい関数および変更された関数はありません。

AutoCAD 2017

新しい関数および変更された関数はありません。

AutoCAD 2016

変更点

    osnap - 指定された点にオブジェクト スナップ モードを適用して取得した 3D 点を返します。この関数は、qui モードを受け入れなくなりました。qui モードを使用すると、他のモードが指定されていても、nil の値が返されることになります。

旧機能
  • getcfg - acad20xx.cfg ファイルの AppData セクションからアプリケーション データを取得します。
  • setcfg - acad20xx.cfg ファイルの AppData セクションにアプリケーション データを書き出します。
注: getcfg 関数と setcfg は互換性を保つために現在も使用できますが、今後のリリースで削除される可能性があります。これらの代わりに vl-registry-read および vl-registry-write 関数を使用することをお勧めします。

AutoCAD 2015

新しい関数および変更された関数はありません。

AutoCAD 2014

新機能
  • findtrustedfile - 指定されたファイルを AutoCAD の信頼できるファイル パスで検索します。
  • showHTMLModalWindow - HTML ドキュメントを含むモーダル ウィンドウを表示します。新しい JavaScript API と一体で使用します。
変更点
  • findfile - AutoCAD のサポート ファイル パスと信頼できるファイル パスを検索します。関数は、新しい信頼できるアプリケーション パスを検索するように更新されました。

AutoCAD 2013

新機能
旧機能
  • vlax-product-key - AutoCAD の Windows レジストリ パスを返します。

AutoCAD 2012

新機能
  • command-s - AutoCAD コマンドと指定された入力を実行します。
  • *pop-error-mode* - *push-error-using-command* または *push-error-using-stack* に対する以前の呼び出しを終了するエラー処理関数。
  • *push-error-using-command* - カスタム *error* ハンドラ内での command 関数の使用を示すエラー処理関数。
  • *push-error-using-stack* - カスタム *error* ハンドラ内での AutoLISP スタックの変数の使用を示すエラー処理関数。

AutoCAD 2011

新機能

AutoCAD 2010

変更点
  • help - ヘルプ機能を呼び出します。HTML ドキュメントのサポートを追加するように関数が更新されました。

AutoCAD 2009

新機能
  • initcommandversion - 次のコマンドを指定したバージョンで実行します。