AutoCADで.lspファイルを読み込む場合に必要な設定

はじめに

AutoCADを使っていると、コマンドラインツール accoreconsole.exe を利用してスクリプトやLISPファイルを実行し、自動化するシナリオが多くあります。しかし、正しく設定がされていないと、思わぬところでエラーが発生し、スクリプトの実行がうまくいかないことがあります。本記事では、VisualStudio2022とVB.Netを使用して、AutoCAD2024でLISPファイルを読み込み、図面を保存し、AutoCADを終了するスクリプトを実行する方法について解説します。また、発生する可能性のある問題とその解決策についても説明します。

前提条件

開発ツール:VisualStudio2022

開発言語:Vb.Net

AutoCADバージョン:AutoCAD2024

現象

AutoCADのコマンドラインツール accoreconsole.exe を使用してLISPファイルを読み込み、図面を保存したらAutoCADを終了するスクリプトの処理がうまくいかず、進まなくなった。

※accoreconsole.exe…AutoCADをコマンドラインで操作できるツール。これを使うと、AutoCADの図面をグラフィカルユーザーインターフェイス(GUI)なしで処理することが可能。通常のAutoCADの画面を開かずにスクリプトを使って図面の作成や編集、保存などを自動で行うことができる。

コード

以下がコードになります。

Imports System.IO
Imports System.Diagnostics

Module AutoCADScriptRunner
    Sub Main()
        ' 必要なファイルパスを定義
        Dim acadPath As String = "C:\Path\To\AutoCAD\accoreconsole.exe"
        Dim lspFilePath As String = "C:\Path\To\Your\file.lsp"

        ' accoreconsole.exe を使ってLISPファイルを直接実行
        RunAutoCADLisp(acadPath, lspFilePath)
    End Sub

    Sub RunAutoCADLisp(acadPath As String, lspFilePath As String)
        Try
            Dim process As New Process
            process.StartInfo.FileName = acadPath
            process.StartInfo.Arguments = $"/i ""{lspFilePath}"""
            process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
            process.Start()
            process.WaitForExit()
        Catch ex As Exception
            MsgBox("LISPファイルの実行中にエラーが発生しました: " & ex.Message, MsgBoxStyle.Exclamation, "Error")
        End Try
    End Sub
End Module

原因

原因はAutoCAD側の設定にありました。

AutoCADで.lspファイルを読み込む場合、SECURELOAD設定が「0」になっている必要があったのですが、私が動かしていたAutoCADは「1」になっていました。SECURELOADは、AutoCADが外部プログラム(特にスクリプトやLISPファイル)を読み込むときのセキュリティレベルを制御する設定です。

「1」はそのためスクリプトの実行がブロックされることを意味し、これが原因でした。

対処

以下の手順で、SECURELOADの設定を「0」に変更します。

①AutoCAD2024を起動する。

②赤枠内にSecureloadと入力する。

➂値に「0」を入力しEnterを押下。

 ①~③を行った後、再度実行すると.lspファイルの処理がされるようになりました。

まとめ

AutoCADの自動化において、コマンドラインツール accoreconsole.exe を使用することで、効率的に作業を行うことができます。しかし、正しい設定がされていないと、スクリプトの実行がうまくいかないことがあります。特に、SECURELOAD設定が「0」になっていることを確認することは重要です。本記事で紹介した手順を踏むことで、問題を解決し、スクリプトを正常に実行できるようになります。

最後に、AutoCADの自動化を行う際には、常にセキュリティ設定を確認し、必要な設定を行うことを忘れないようにしましょう。これにより、安全かつ効率的に作業を進めることができます。