この記事の難易度
AutoCADを日常的に使っていると「円の一部だけ描きたい!」という場面、意外と多いですよね。
例えば、配管の一部を断面で示したいときや、機械部品の一部だけを補助線で描きたいときなど。
そんなとき便利なのが「円弧(Arc)」です。
.NET APIを使えば、中心・半径で作る円弧を自動作図できます!
この記事では、基本的な円弧の作図方法をサンプルコード付きで解説します。
- 円弧(Arc)の基本的なコーディング(中心・半径・角度を指定)
- 応用例(部品配置や図面テンプレートへの活用など)
※事前準備でVisualStudioのインストールやファイルの設定が必要です。
ファイルの作り方やライブラリの参照方法、実行手順などは過去の記事を参考に設定下さい。
👉過去の.NET APIコーディングに関する記事はこちら
・【AutoCAD】.NET API入門①|線分を自動生成する方法
・【AutoCAD】.NET API入門②|ポリラインを自動生成する方法
・【AutoCAD】.NET API入門③|円・楕円を自動生成する方法
カスタムコマンドのおさらい
まずはおさらいです。AutoCADに独自のコマンドを追加するには、C#で CommandMethod 属性 を持つメソッドを定義します。
例えばコマンドラインで「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 {
//コマンドの作成 [CommandMethod("HelloWorld")] public void HelloWorld() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage("\nHelloWorld!"); } }
}
CommandMethod
属性を使えば、AutoCADのオリジナルコマンドとして登録できます。
このコードをVisualStudioでリビルドしてから、NETLOADコマンド
で作成したdllファイルを読み込みます。

次にコマンドラインで 「HelloWorld」と入力するとメッセージが表示されます↓


この流れで、今回は円弧を作図するカスタムコマンドを追加していきます。
円弧を作成するコマンド(基本)
円弧を作図するには、Arcクラスを使用します。
今回は「中心座標(60,60)・半径40・開始角度0°・終了角度90°」の円弧を作図します。
//using~ ライブラリの追加↓
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
public class CreateArcCommand
{ [CommandMethod("CreateArc")] public void CreateArc() { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; using (Transaction tr = db.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); // ★★★★★ 図形の作成処理 ★★★★★ Point3d center = new Point3d(60, 60, 0); // 中心座標 double radius = 40; // 半径 double startAngle = 0; // 開始角度(ラジアン) double endAngle = Math.PI / 2; // 終了角度(90°) Arc arc = new Arc(center, radius, startAngle, endAngle); // モデル空間に追加 btr.AppendEntity(arc); tr.AddNewlyCreatedDBObject(arc, true); // ★★★★★ ここまで ★★★★★ tr.Commit(); } }
}
このコードを実行すると、以下のような円弧が自動生成されます↓

※NETLOADコマンド
でdllファイルをロードすると作成したコマンドが表示されます。
円弧の作図で覚えておきたいのは以下の通りです。
- ① Arc arc = new Arc(center, radius, startAngle, endAngle);
Arcクラスのコンストラクタを使って円弧を生成します。 - ② Point3d center = new Point3d(60, 60, 0);
中心座標を指定しています。座標点(60, 60, 0)
👉「この点を中心に作図してね」と伝えるイメージ! - ③ radius = 40;
半径を設定しています。今回の場合半径は40となります。 - ④ startAngle = 0; endAngle = Math.PI / 2;
角度はラジアンで指定します。0ラジアン = 0°、Math.PI/2 = 90°です。
👉「この角度範囲で作図してね」と伝えるイメージ! - ⑤ tr.AddNewlyCreatedDBObject(arc, true);
作成した円弧をモデル空間に登録する処理です。
👉このコードを実行すると「中心(60,60)、半径40、0°から90°の範囲に円弧」が自動生成されます。

少し複雑ですが、中心と半径と角度を指定するだけ!
円弧を作成するコマンド(基本)
円弧のコードを使って実務での活用事例をリストアップします。
- ① ボルト穴や配管口のパターン作成
例:ボルト穴や配管断面のアール部分を、複数サイズでまとめて作図
👉Arc クラス+AppendEntity をループで使用して簡単に作図可能
配列で規格サイズを持たせて、ボルト穴や配管口径を自動作図できます。 - ② 扇形の可動範囲を表現
例:椅子や機械部品の回転範囲を円弧で描画
👉配列や計算で複数パターンをループ作成できます。 - ③ 同心円弧のパターン作成
例:中心固定で半径だけ変えた円弧の重ね描き
👉中心を固定して半径を変化させるだけで、複数の円弧パターンを作成可能 - ④ 等間隔で円弧を並べる
例:X軸方向に一定ピッチで複数円弧を配置
👉配列やループを使えば、自動的に位置を計算して生成可能
角度や半径を変えれば、段階的なデザインや機械パーツの配置にも応用可能

他にも作図位置をユーザー入力と組み合わせると更に便利になりますよ。
まとめ
今回は「【AutoCAD】.NET API入門④|円弧を自動生成するカスタムコマンドの作り方」として、Arcクラスを使った基本・応用パターンを解説しました。
・円弧は Arc クラス を使用
「中心座標」「半径」「開始角度」「終了角度」を指定して作図
・配列やループを活用すれば、ボルト穴・配管口の断面表現や同心円弧のパターンを自動生成可能
・可動範囲の可視化や等間隔での配置など、実務に直結する活用事例も多い
AutoCADでの作図作業を効率化したい方にとって、円弧は円や楕円以上に応用範囲の広い図形です。ぜひ自動生成コードをテンプレート化して、日常の図面作成に活かしてみてください。

以上、こたろーでした。