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

【AutoCAD】.NET API入門④|円弧を自動生成するカスタムコマンドの作り方

【AutoCAD】.NET API入門④|円弧を自動生成するカスタムコマンドの作り方

この記事の難易度

AutoCADを日常的に使っていると「円の一部だけ描きたい!」という場面、意外と多いですよね。
例えば、配管の一部を断面で示したいときや、機械部品の一部だけを補助線で描きたいときなど。

そんなとき便利なのが「円弧(Arc)」です。
.NET APIを使えば、中心・半径で作る円弧を自動作図できます!

この記事では、基本的な円弧の作図方法をサンプルコード付きで解説します。

この記事のポイント
  • 円弧(Arc)の基本的なコーディング(中心・半径・角度を指定)
  • 応用例(部品配置や図面テンプレートへの活用など)

※事前準備でVisualStudioのインストールやファイルの設定が必要です。
 ファイルの作り方やライブラリの参照方法、実行手順などは過去の記事を参考に設定下さい。

👉過去の.NET APIコーディングに関する記事はこちら
【AutoCAD】.NET API入門①|線分を自動生成する方法
【AutoCAD】.NET API入門②|ポリラインを自動生成する方法
【AutoCAD】.NET API入門③|円・楕円を自動生成する方法

スポンサーリンク

 

カスタムコマンドのおさらい

まずはおさらいです。AutoCADに独自のコマンドを追加するには、C#で CommandMethod 属性 を持つメソッドを定義します。

例えばコマンドラインで「HelloWorld」と表示する簡単なコマンドは以下の通りです。

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 {
    //コマンドの作成 [CommandMethod("HelloWorld")] public void HelloWorld() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage("\nHelloWorld!"); } }
}

CommandMethod 属性を使えば、AutoCADのオリジナルコマンドとして登録できます。

このコードをVisualStudioでリビルドしてから、NETLOADコマンドで作成したdllファイルを読み込みます。

NETLOADコマンドでdllファイル読み込み
NETLOADコマンドでdllファイル読み込み

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

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

この流れで、今回は円弧を作図するカスタムコマンドを追加していきます。

 

円弧を作成するコマンド(基本)

円弧を作図するには、Arcクラスを使用します。

円弧の作図コード(C#)

今回は「中心座標(60,60)・半径40・開始角度0°・終了角度90°」の円弧を作図します。

円弧の作図コード(C#)
//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(); } }
}

このコードを実行すると、以下のような円弧が自動生成されます↓

CreateArcコマンド 実行結果
CreateArcコマンド 実行結果

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での作図作業を効率化したい方にとって、円弧は円や楕円以上に応用範囲の広い図形です。ぜひ自動生成コードをテンプレート化して、日常の図面作成に活かしてみてください。

こたろー
こたろー

以上、こたろーでした。 


スポンサーリンク

コメントを残す

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

CAPTCHA