本日の出版物では、MultiCAD.NET APIを使用したブロックの挿入に焦点を当てます。これは、フォーラムのプログラミングセクションでよく寄せられる質問の1つです。
そのため、たとえば給水計画など、図面要素のシンボル用のブロックテンプレートが既に含まれている図面ファイルがあります。 さまざまなタイプのクレーンを表すブロックに2つの属性が含まれているとします。
- NAME-要素名(たとえば、「ボール」)、
- LABEL-要素のマーキング(たとえば、「11B27p(M)」)、
また、次のグラフィック表示があります。

MultiCAD.NETでは、
McBlockRef
クラスを使用して、図面内のブロック挿入を表します。 必要なことは、挿入オブジェクトを作成し、ブロックの名前を
BlockName
フィールドとして割り当てること
BlockName
です。
McBlockRef refBlk = new McBlockRef(); refBlk.BlockName = "block_01"; refBlk.DbEntity.AddToCurrentDocument();
MultiCAD.NETでは、ブロック属性は通常のオブジェクトプロパティと同じ方法で保存されるため、指定された属性値でブロックを挿入するには、
DbEntity.ObjectProperties
介してそれらにアクセスするだけで十分
DbEntity.ObjectProperties
。
refBlk.DbEntity.ObjectProperties["NAME"] = “”; refBlk.DbEntity.ObjectProperties["LABEL"] = “1127()”;
McDocument
クラスには、ドキュメントに存在するすべてのブロックのリストを含むダイアログを表示するためのメソッドが含まれています。これを使用して、挿入するブロックを選択できます。

次のコマンドは、選択したブロックを指定した属性値で図面に挿入します。 コマンドラインを使用して値を入力します。
[CommandMethod("smpl_insertBlock", CommandFlags.NoCheck | CommandFlags.Redraw)] static public void smpl_insertBlock() {