この記事の難易度
AutoCADの作業効率を劇的に向上させる、.NET APIを活用したコマンド開発の世界へようこそ!
この記事では、AutoCAD 2024までの環境でオリジナルコマンドを作成する方法を、初心者にも分かりやすく解説します。
「AutoCADの標準機能では物足りない」「特定の作業をもっと効率化したい」そう感じたことはありませんか?
.NET APIを使えば、C#を使ってAutoCADの可能性を無限に広げることができます。
この記事では、開発環境の構築から、簡単なコーディング、AutoCADへのコマンド実装まで、具体的な手順を丁寧に解説します。
さらに、開発時の注意点や、効率的な開発のためのヒントも満載です。
コード自体は生成系AIを活用するので、プログラミング初心者でも安心して読み進められます。

AutoCADのコマンドのカスタマイズに挑戦し、作図効率を上げましょう!
Visual Studioのインストール
AutoCADでコマンド開発をするにはVisual Studioというコードを書くためのエディタが要ります。
このエディタはMicrosoft社が提供する統合開発環境 (IDE) で、Community版は個人開発者、学生、オープンソースプロジェクトへの貢献者などであれば無料で利用できます。
以下のリンクからダウンロード・インストールをしましょう。(インストールには1時間近くかかる場合があります)
インストールの際にワークロードを選択しますが、AutoCADの.NET開発をする場合は「.NETデスクトップ開発」にチェックを入れるようにしてください。


ワークロードはあとからでも修正できますよ!
AutoCADでHelloWorld!と表示させるコマンドの開発
先ほどダウンロードしたVisual Studioを使ってAutoCADの簡単なコマンドを開発します。
Visual Studioを開くと以下の画面が開くので「新しいプロジェクトの作成」を選択します。

次にプロジェクトテンプレートを選択します。
今回は「クラス ライブラリ(.NET Framework)」を選択してください。
見つからなければ検索欄を使ってください。また、プログラム言語はC#とします。

よく似たプロジェクトテンプレートに「クラス ライブラリ」というのがあります。
これだとコマンド開発ができないので注意してください!.NET Frameworkが必要!
次にプロジェクトの構成をします。
プロジェクト名、プログラムの保存先、などを設定してからフレームワークを選択します。
Windows10、11であれば.NET Framework4.8を選んでおけば問題ないです↓
問題なければ作成ボタンをクリックしましょう。

するとプロジェクトが自動で作成されます。
この中にClass1.csというファイルがあるのでダブルクリックで開いてください↓

初期コードが上画像のように書かれていればOKです!

この中にAutoCAD用のコマンドをコーディングしていきます。
コーディングをする前に参照ライブラリを追加します。
※参照を追加しないとAutoCAD用のAPIが使えないので忘れないようにしてください!
画面右のプロジェクト欄から「参照」を右クリックして「参照の追加」を選択します。

次に参照マネージャーからdllファイルを読み込みます。
読み込むファイルは「accoremgd.dll」、「acdbmgd.dll」、「acmgd.dll」です。最初は何も考えずこの3つさえ入れておけば、ほぼ問題ないです。
ファイルが見つからない場合は、「参照」を選択してファイルを探します。
例えばAutoCAD2024なら「C:\Program Files\Autodesk\AutoCAD 2024」の中に入ってます。

覚えなくてOKですが、それぞれのファイルの役割はこんな感じです↓
- accoremgd.dll:
AutoCAD のコア機能へのアクセスを提供。
基本図形、画層、ブロックなどの操作に必要なクラスが含まれる。 - acdbmgd.dll:
AutoCAD のデータベース機能へのアクセスを提供
図面データベースの操作、トランザクション管理などを行うためのクラスが含まれる。 - acmgd.dll:
AutoCAD のマネージド API のコア機能を提供
参照ライブラリを追加したら、画面右に各dllファイルが入ります。
次に各ファイルを選択して画面右下のプロパティから「ローカルにコピー」をFalseにします。


ローカルにコピーをTrueにすると、実行時に要らないファイルが増えます。
あとの章で説明します!
ライブラリを追加したので簡単なコーディングを行います。追加するのは2つです。
1つ目はライブラリの追加です。参照を追加するとAutoCADのAPIをコーディングできます。
using Autodesk.AutoCAD.ApplicationServices;みたいなところです。
2つ目はコマンド名の設定と中身の関数のコーディングです。
細かい説明は割愛しますが、今回は「HelloWorld」というコマンドを実行すると「HelloWorld!」という文字が出力されます。

C#のコードはこちらになります↓面倒な方はこのままコピペしてください。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// AutoCAD用のライブラリを追加する
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
namespace HelloWorld
{ public class Class1 {
// HelloWorldコマンドを追加する [CommandMethod("HelloWorld")] public void HelloWorld() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage("\nHelloWorld!"); } }
}

「AutoCADでHelloWorld!とコマンドラインに表示させるコードを書いて」
とChatGPTに伝えるとコーディングしてくれます!
コーディングが終わったらビルドをしてプログラムを書き出します。
ビルドをするにはプロジェクト名を右クリックして「リビルド」を実行します。
画面下の出力欄で「正常終了」と表示されればOKです!

ビルドされたファイルを見てみましょう。
ファイルはプロジェクト名を右クリックして「エクスプローラーでフォルダを開く」を選択します。すると該当のフォルダに飛んで「HelloWorld.dll」というファイルが出来上がりました!


このdllファイルをAutoCADで読み込めばコマンドを追加できます!
それでは開発したコードをAutoCADに読み込んでコマンドを実行しましょう。
先ほど作ったdllファイルを読み込むにはコマンドラインから「NETLOAD」と入力します。すると「この実行ファイルの公開元が確認できないとともに⋯」というメッセージが出ます。
「常にロードする」か「1回ロードする」を選択すればOK。

ファイルをロードしたら先ほど開発した「HELLOWORLD」というコマンドを打ち込みましょう。するとコマンドラインに「HelloWorld!」という文字列が表示されました!


オリジナルのコマンドが動いた!
このような手順でコマンドを開発していきます。
C#を使ったことない方は一見難しいと思うかも知れません。
しかし、今の時代ChatGPTやGeminiなどの生成系AIがあるので実現したい内容を言語化できればある程度コードを書いてくれます。AIのコードを少しずつ修正していくのがオススメです!
.NET開発の注意点
ここではAutoCADの.NET開発をするときの注意点を説明しました。
まずは参照ライブラリを追加するときの注意点です。
前の章では参照ライブラリ(accoremgd、acdbmgd、acmgdなど)を追加するときにローカルにコピーをFalseにしてくださいと説明しました。

誤ってローカルにコピーをTrueにしたらどうなるのでしょうか?
Trueにすると、フォルダに余計なファイルが大量に保存されます↓


要らないファイルが増えると面倒です。
ローカルにコピーをFalseにしましょう!
次にビルドをするときの注意点です。
コードをビルドをして「NETLOAD」コマンドでdllファイルを読み込んだとします。
そしてAutoCADを開いたままコードを修正してもう一度ビルドをするとします。
すると、エラーがこのように表示されます↓

とても面倒なのですがコードを修正する場合、毎回AutoCADを再起動しないといけません。

毎回AutoCADを閉じるのが面倒だから、Autodeskさんには直してほしい⋯
まとめ
今回は「AutoCAD .NET API コマンド開発入門:初心者向けチュートリアル」を説明しました。
・Visual Studioを設定し、.NET Frameworkライブラリを参照する
・C#でAutoCADの機能を拡張するカスタムコマンドを作成できる
効率的な開発のために、生成系AIによるコード生成と修正がオススメ!
・参照ライブラリのローカルコピー設定や、ビルド時のAutoCADの再起動は注意のこと

以上、こたろーでした。