まずは、Developer Center にある 「AutoCAD 2011 .Net Wizards.zip」 をダウンロードして、それに含まれる AutoCAD 2011 dotNET Wizards.msi を実行してインストールです。
すると、こんなメッセージがでて、ちゃんとインストールできませんでした。
管理者権限で、Windows 7 にログインしてるんですけど。。。
ぶつぶつ言ってもしょうがないので、コマンド プロンプトを 「管理者として実行」 で起動して、そこから AutoCAD 2011 dotNET Wizards.msi を実行してみました。
すると、今度は問題なくインストールが完了しました。
ということで、早速 Visual Studio 2008 を起動です。
[ファイル] - [新しいプロジェクト] で [新しいプロジェクト] ダイアログを表示して、[Vusual Basic] を選択すると、[AutoCAD 2011 plug-in] というテンプレートがでてきたので、これを選んで OK です。
そうすると、[AutoCAD .NET Wizard Configurator] ダイアログが表示されるので、[Spacify the location of the ...] のことろに ObjectARX 2011 の inc フォルダを指定して Ok です。
これで、プロジェクトが開かれるのですが、ここでは既に参照設定に AcDbMgd と AcMgd が追加されているので、参照設定は何もする必要がないみたいです。
で、MyCommands.vb っていうのがあったので、これを見てみると、こんな記述がありました。
<CommandMethod("MyGroup", "MyCommand", "MyCommandLocal", CommandFlags.Modal)> _ここに、自分で作ったコマンドを入れるってことですね。
Public Sub MyCommand() ' This method can have any name
' Put your command code here
End Sub
ということで、まずはコマンドの定義のところを以下のように変更しました。
<CommandMethod("acadvideo", "test0521", "MyCommandLocal", CommandFlags.Modal)> _
Public Sub test0521() ' This method can have any name
また、ソリューション エクスプローラにある myCommands.res をダブルクリックして myCommands.res を表示して、MyCommand を test0521 に変更しました。
そして、「' Put your command code here」の下に以下を記述してみました。
'' Get the current document and database
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim acCurDb As Database = acDoc.Database
'' Start a transaction
Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
'' Open the Block table for read
Dim acBlkTbl As BlockTable
acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
'' Open the Block table record Model space for write
Dim acBlkTblRec As BlockTableRecord
acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
'' Create a line that starts at 5,5 and ends at 12,3 Dim acLine As Line = New Line(New Point3d(5, 5, 0), New Point3d(12, 3, 0)) acLine.SetDatabaseDefaults()
'' Add the new object to the block table record and the transaction
acBlkTblRec.AppendEntity(acLine)
acTrans.AddNewlyCreatedDBObject(acLine, True)
'' Save the new object to the database
acTrans.Commit()
End Using
AutoCAD にロードして test0521 コマンドを実行してみたところ、問題なく線分が作成されました。
このテンプレートを使えば、簡単に作れますよってことですね。
.NET Wizards インストール時のエラーは、Windows Vista と Windows 7 上で発生する問題です。
返信削除インストール時には、管理者権限に加えて、Windows の ユーザ アカウント制御(UAC)をオフにして実行すると、正しくインストールできるはずです。
コメントありがとうございます。
返信削除なるほど。そうやってインストールすればいいんですね。