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

【AutoCAD 2025】.NET 8 コマンド開発:PluginVsixを使った初心者向けチュートリアル

【AutoCAD 2025】.NET 8 コマンド開発:PluginVsixを使った初心者向けチュートリアル

この記事の難易度

AutoCAD 2025へのアップデートで、開発環境が大きく変わりました!

具体的にはこれまでの「.NET Framework」から、最新の「.NET 8」へ移行されます。
これは開発者にとって大きな転換期となります。

この記事では、AutoCAD 2025での.NET 8開発について、初心者の方にも分かりやすく解説します。

開発環境の構築から、実際のコーディング、そして注意点まで、AutoCAD 2025での開発をスムーズに進めるための情報が満載です。

こたろー
こたろー

この記事を読んで、AutoCAD2025での.NET開発をスムーズに始めましょう。

AutoCAD2024までの.NETコマンド開発については過去の記事を参照ください↓

スポンサーリンク

 

AutoCAD2025から.NET8を採用!

AutoCAD 2025から、これまで使われていた「.NET Framework」から、より新しく高性能な「.NET 8」に変わりました。

この変更によってざっくりですが、より速く動くプログラムが作れるようになったり、最新のC#の便利な機能も使えるようになります。

.NET8への変化

これまでの相違点をまとめるとこんな感じです↓

比較項目.NET Framework
(〜AutoCAD 2024)
.NET 8
(AutoCAD 2025〜)
Visual Studio
バージョン
2017、2019、2022など
(.NET Framework向け)
2022以降
(.NET 8対応)
互換性古いDLLが使える従来のDLLはそのまま使えない場合あり
パフォーマンス安定しているがやや重いより高速&軽量
アドイン開発従来通りアセンブリ構成・参照の見直しが必要
将来性保守的・安定志向モダン開発・最新技術への対応

開発にはVisual Studio 2022以降が必要で、以前作ったアドイン(追加機能)を使いたい場合は、新しい環境に合わせて作り直す必要があるなど注意点も多いです。

こたろー
こたろー

最初は少し難しく感じるかもしれませんが、将来的に
簡単で効率的な開発ができるようになります!

 

.NET Framework4.8でAutoCAD2025の参照ファイルを読み込むと?

これまでの.NET Framework 4.8でAutoCAD2025の.NET API開発ができるか?検証します。
Visual Studioの設定方法については過去の記事を参照ください。

参照ライブラリの追加

Visual Studioでクラスライブラリを新規作成して、参照の追加をしてAutoCAD用のライブラリを入れます。Visual Studio画面右の参照を右クリックして「参照の追加」を選択してください。

Visual Studio参照の追加

次に参照マネージャーからdllファイルを読み込みます。

読み込むファイルは「accoremgd.dll」「acdbmgd.dll」「acmgd.dll」です。

ファイルが見つからない場合は、「参照」を選択してファイルを探します。
例えばAutoCAD2025の場合「C:\Program Files\Autodesk\AutoCAD 2025」の中に入ってます。

dllファイルにチェックを入れてOKボタンを押しましょう↓

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

コマンドのコーディング

AutoCAD2025の参照ファイルを追加してからコーディングをします。
今回はコマンドラインに「HelloWorld!」と表示させるコードをC#で作成します。

面倒なのでChatGPTに書いてもらいました。こんな感じです↓

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!");
        }
    }
}

ところがこのコードを書いてみたところ、「MarshalByRefObjectへの参照では⋯」というエラーが出てしまい、ビルドできません…

AutoCAD2025のdllを参照したときのエラー
こたろー
こたろー

このようにAutoCAD2025のdllファイルを参照するとエラーが起きます。
AutoCAD2024までだったらこれで動くのに…

 

AutoCAD2025では.NET開発はどうすればいいのか?

PluginVsixのインストール

.NET Framework4.8ではAutoCAD2025のdllファイルは参照できません。

そこで.NET 8 に対応した AutoCAD 2025 用のPluginVsixをインストールすると使えるようになります。こちらからインストールしてください。 

インストーラーが開いたらVisual Studio Community 2022にチェックを入れてInstallをクリックします。

VISX Installer AutoCAD 2025 Template

インストールが完了したらCloseをクリックします。

VSIX インストール完了!

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

インストールが終わったらVisual Studioを再度開いて新しいプロジェクトの作成をクリックします。

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

プロジェクトテンプレートの選択画面に移るので、検索欄から「AutoCAD」と入力します。
するとAutoCAD 2025 Plugin CSAutoCAD 2025 Plugin VBが追加されました!

ちなみにCSはプログラミング言語のC#、VBはVisual Basicに対応しています。
(今回はC#でコーディングするのでCSでプロジェクトを作成しました)

プロジェクトテンプレートの選択

参照ライブラリの確認

プロジェクトが作成できたら、画面右のパッケージ > AutoCAD.NET(25.0.1) > コンパイル時のアセンブリを選択するとAcMgd.dllが入っていることがわかります。

他にもAcCoreMgd.dllAcDbMgd.dllなど開発に必要なdllファイルが既に入ってます!

dllファイルの確認
こたろー
こたろー

参照ファイルを追加する必要がなくなるので、楽になりました。
このままコーディングできます!

コマンドのコーディング

コーディングをするときは「myCommands.cs」というファイルが自動でできるのでこのファイルを編集します。

プロジェクトテンプレートでAutoCAD 2025 Plugin CSを選択するとApplicationServices、DatabaseServices、Runtimeなどはじめから入っています。

myCommands.csを編集
こたろー
こたろー

わざわざ書かなくていいので楽ですね!
コードはpublic class MyCommandsの中に書いてください。

 

AutoCAD2025でコーディングする際の注意点

プロジェクトテンプレートでAutoCAD 2025 Plugin CSを選択した場合の注意点があります。
それはAutoCAD2024までのライブラリの呼び出し方法が一部変わることです。

例えばAutoCAD2024までの場合でApplicationServicesのApplicationを呼び出すときには以下のコードを使っていました↓

AutoCAD2024までのApplicationServices.Applicationの呼び出し
// AutoCAD用のライブラリを追加する(ApplicationServices.Application)
using Autodesk.AutoCAD.ApplicationServices;

ところが、このコードを書くとエラーが出ます。

AutoCAD2024までの表記でコーディングした場合
こたろー
こたろー

他のライブラリと名前が同じなので判定ができないみたいです…

なので、AutoCAD2025からは以下のようにライブラリを呼び出してください↓

AutoCAD2025からのApplicationServices.Applicationの呼び出し
// AutoCAD用のライブラリを追加(ApplicationServices.Application)
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;

するとこのようにエラーはなくなります。

AutoCAD2025からの表記
C# HelloWorldコマンド(AutoCAD2025から)
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;

[assembly: CommandClass(typeof(AutoCAD_2025_Plugin_CS1.MyCommands))]
[assembly: ExtensionApplication(typeof(AutoCAD_2025_Plugin_CS1.PluginExtension))]

namespace AutoCAD_2025_Plugin_CS1
{
    public class MyCommands
    {
        // HelloWorldコマンドを追加する
        [CommandMethod("HelloWorld")]
        public void HelloWorld()
        {
            Editor ed = AcadApp.DocumentManager.MdiActiveDocument.Editor;
            ed.WriteMessage("\nHelloWorld!");
        }
    }
}
こたろー
こたろー

public class MyCommandsの中のコードだけコピペすればOKです!

コマンドラインに文字列を表示させるEditorを使うときは、Editor ed = AcadApp.DocumentManager.MdiActiveDocument.Editor;という感じでAcadAppを参照するようにしてください。

 

まとめ

今回は「【AutoCAD 2025】.NET 8 コマンド開発:PluginVsixを使った初心者向けチュートリアル」を説明しました。

・AutoCAD 2025では、従来の.NET Frameworkから.NET 8へ移行
 パフォーマンスの向上や最新のC#機能の利用が可能に!

 
・NET 8での開発には、Visual Studio 2022以降が必要
 ‐ 従来の.NET Frameworkで作成されたアドインは、新しい環境に合わせて再構築
 ‐ ライブラリの呼び出し方が一部変更されたので注意!

 
・AutoCAD 2025用のPluginVsixをインストールすることで.NET 8に対応した開発環境が容易に構築できる

こたろー
こたろー

以上、こたろーでした。 


スポンサーリンク

コメントを残す

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

CAPTCHA