AutoCADのAddinをC#で書いてみるー③

こんにちは、AMDlabの森山です。
前回まででAutoCADの基本的なアドインの作り方は説明し終えています。BricsCADやIJCADなど2DCADはほとんど同じ考え方な気がします。

今回は前回までのような話ではなく、せっかく作るのだからちょっと実用的なものを紹介しようと思います。
CSVから座標データを読み込み、ポリラインを引いていく、というものです。断面リストなんかを作りたいときに便利なんじゃないでしょうか。

準備

前回と同じプロジェクトファイルを使用するか、新しいプロジェクトを作って参照を同じように追加しておきましょう。
CommandHandler.csクラスは特に書き換えることがありません
Icon.csクラスはコマンドを置き換えるだけで終わります。主にCommand.csファイルを大きく変更していきます。

想定するCSVファイル

とりあえずこんな感じで座標が入れてあるCSVファイルを想定しておきます。

非常に単純なCSVファイルです。

Command.csファイルの記述

Autodeskのクラスを使ってCSVパスを手打ちで入力させてもいいのですが、今回はWindowsを想定しているので、Windows.Formsクラスを使ってしまいましょう。
System.Windows.Forms.dllを参照に追加してください。

では、コードです。CommandMethodはCreateLinefromCSVとしておきましょう。

余談ですが、もしロケール対応などする場合はAutodesk.AutoCAD.Runtime.DynamicLinker.ProductLcidに言語情報があります。
System.Threading.Thread.CurrentThread.CurrentUICulture.Nameを参照してもAutoCADの言語情報は返さないのでご注意ください。

Icon.csファイルの記述

前回からこの部分はほとんど変わりません。CommandHandler.csやこのIcon.csは他のこういったEventがないプロジェクトにも応用可能です。
結局、アイコンを押したらコマンドラインに送信しているものは割と多い気がします。

ではデバッグしていきましょう。実行結果です。

作りたい機能をどう作るか

ここから例えば寸法の自動追加など追加したい機能が出てくると思います。
基本的には公式から出ているドキュメントを読むことをお勧めします。
Autodesk 公式リファレンス
後は英語で検索するとAutodeskのフォーラムでよくやり取りがされています。それでもなお、基本的な情報が少ないですが…

アドイン制作は基本的にどのソフトも同じような感じです。

ここまで紹介したテクニックを使ってぜひ自分で作りたい機能を実装していってください!!

ARTICLES