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