【AutoCAD】ダイナミックブロックまとめ記事10選 について図面がダウンロードできない不具合を修正しました。

AutoCAD .NET API コマンド開発入門:初心者向けチュートリアル

AutoCAD .NET API コマンド開発入門:初心者向けチュートリアル

この記事の難易度

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を開くと以下の画面が開くので「新しいプロジェクトの作成」を選択します。

Visual Studio 新しいプロジェクトの作成

次にプロジェクトテンプレートを選択します。
今回は「クラス ライブラリ(.NET Framework)」を選択してください。

見つからなければ検索欄を使ってください。また、プログラム言語はC#とします。

クラスライブラリ(.NET Framework)

よく似たプロジェクトテンプレートに「クラス ライブラリ」というのがあります。
これだとコマンド開発ができないので注意してください!.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」の中に入ってます。

参照マネージャーでdllファイルを追加

覚えなくて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#のコードはこちらになります↓面倒な方はこのままコピペしてください。

C# HelloWorldコマンド
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ファイルの場所について
こたろー
こたろー

このdllファイルをAutoCADで読み込めばコマンドを追加できます!

AutoCADでコマンドを実行

それでは開発したコードをAutoCADに読み込んでコマンドを実行しましょう。

先ほど作ったdllファイルを読み込むにはコマンドラインから「NETLOAD」と入力します。すると「この実行ファイルの公開元が確認できないとともに⋯」というメッセージが出ます。

「常にロードする」「1回ロードする」を選択すればOK。

NETLOADコマンドで実行ファイルの読み込み

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

コマンドの実行
こたろー
こたろー

オリジナルのコマンドが動いた!

このような手順でコマンドを開発していきます。

C#を使ったことない方は一見難しいと思うかも知れません。
しかし、今の時代ChatGPTGeminiなどの生成系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の再起動は注意のこと

こたろー
こたろー

以上、こたろーでした。 


スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA