お知らせ

--------------------------------------------------

プログラム作成/コンサルティングの申し込みはこちら

--------------------------------------------------

2010年2月18日木曜日

Microsoft Visual Studio 2008 Standard Edition を使用してのカスタマイズ(AutoCAD 2010)

先日より、.NET の勉強を始めています。

初心者ということもあり、無償版の Microsoft Visual Studio 2008 Express Edition を使用していたのですが、AutoCAD 2010 のカスタマイズで使えるけどサポートされないということと、デバッグのやり方が分からなかったので、思い切って Microsoft Visual Studio 2008 Standard Edition を購入しました。

そこで早速、他のサンプルを試してみようと思います。


acad_mdg.chm を適当に探して、以下のサンプルをやってみることにしました。

------------------------------------------
この例では、Add メソッドを使用して、acad.dwt 図面テンプレート ファイルに基づいて新しい図面を作成します。

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Runtime

<CommandMethod("NewDrawing", CommandFlags.Session)> _
Public Sub NewDrawing()
  '' Specify the template to use, if the template is not found
  '' the default settings are used.
  Dim strTemplatePath As String = "acad.dwt"

  Dim acDocMgr As DocumentCollection = Application.DocumentManager
  Dim acDoc As Document = acDocMgr.Add(strTemplatePath)
  acDocMgr.MdiActiveDocument = acDoc
End Sub
------------------------------------------
  1. まずは、Visual Studio 2008 を起動します。
  2. [ファイル] - [新しいプロジェクト] を選択して、[新しいプロジェクト] ダイアログで [クラス ライブラリ] を選択して [OK] ボタンをクリックです。(プロジェクト名は、NewDrawing にしました。)
  3. 例のごとく、サンプル プログラムを Class1.vb にカット&ペーストして以下のようにします。

    Imports Autodesk.AutoCAD.ApplicationServicesImports
    Autodesk.AutoCAD.DatabaseServices
    Imports Autodesk.AutoCAD.Runtime

    Public Class Class1
        <CommandMethod("NewDrawing", CommandFlags.Session)> _
        Public Sub NewDrawing()
            '' Specify the template to use, if the template is not found
            '' the default settings are used.
            Dim strTemplatePath As String = "acad.dwt"

            Dim acDocMgr As DocumentCollection = Application.DocumentManager
            Dim acDoc As Document = acDocMgr.Add(strTemplatePath)
            acDocMgr.MdiActiveDocument = acDoc
        End Sub
    End Class

  4. 最初は [ソリューション エクスプローラ] に「参照設定」が表示されていないので、[すべてのファイルを表示] ボタンをクリックして表示します。
  5. そうすると、以下のように「参照設定」が表示されました。
  6. [参照設定] を右クリックして、[参照の追加] をクリックです。 例のごとく、[参照の追加] ダイアログで [参照] タブを選択して、C:\Program Files\AutoCAD 2010 フォルダにある AcDbMgd.dll を選択して [OK] です。
  7. 同じように、AcMgd.dll も追加します。(このサンプルでは、AcCui.dll は追加する必要はないようです。)
  8. [ファイル] - [すべてを保存] を選択して NewDrawing というソリューション名で保存しました。
では、さっそくデバッグしてみましょう。
  1. まずは、デバッグ時に AutoCAD を起動するための設定です。
    [ソリューション エクスプローラ] で NewDrawing を右クリックして [プロパティ] を選択します。
  2. デバッグを選択して、[外部プログラムの開始] に C:\Program Files\AutoCAD 2010\acad.exe を設定します。(設定したあと、[選択されたファイルを上書き保存] ボタンをクリックしておきました。)
  3. ここで、いよいよ [デバッグ開始] ボタンをクリックです。
  4. AutoCAD 2010 が起動してきましたが、「アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。...」というエラーが表示されました。
    そのため、一旦デバッグ中止です。
  5. どうやら、デバッグするためには参照設定した acdbmgr と acmgd の参照プロパティーで [ローカル コピー] を True から False に変更しなきゃいけないみたいです。
    なので、そのとおり変更しました。
  6. ここで、再度 [デバッグ開始] ボタンをクリックです。
    AutoCAD 2010 が起動してきて、今度はエラーなしです。
  7. NETLOAD コマンドを実行して、Debug フォルダにある NewDrawing.dll をロードします。
  8. NewDrawing コマンドを実行すると、問題なく新規図面が開かれました。
試しにブレーク ポイントを「Dim strTemplatePath As String = "acad.dwt"」の行に設定して NewDrawing コマンドを実行したところ、ちゃんとその行で止まりました。

動画も作りました。

0 件のコメント:

コメントを投稿