お世話になっております。
AutoCAD .NET APIを使って、AuoCAD VBAからのコマンド移植しているのですが。
オブジェクト イベント(ObjectAppended)の処理を移植したいのですが。
AutoCAD .NET API デベロッパーガイドに、オブジェクト イベントの処理という項目が
あったのですが、どうも解かりません。
勝手なおお願いなのですが。 なにかいい参考書籍ありませんか、
それか詳しい方簡単にレクチャーしていただけませんか。
よろしくお願いします。
解決済! 解決策の投稿を見る。
回答者: acadvideo. 解決策の投稿を見る。
回答者: acadvideo. 解決策の投稿を見る。
こんにちは。
私は VBA からの移植方法はわからないのですが、.NET で ObjectAppended の処理を行うときは、こんな感じでできると思います。
<CommandMethod("GroupName", "GlobalName", "LocalName", CommandFlags.Modal)> _
Public Sub FuncName()
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
AddHandler db.ObjectAppended, New ObjectEventHandler(AddressOf test)
End Sub
Public Sub test(sender As Object, e As Autodesk.AutoCAD.DatabaseServices.ObjectEventArgs)
MsgBox(e.DBObject.ToString)
End Sub
お世話になっております。
いつも、中川さんにはお世話になっております。
早速の回答ありがとうございます。
それで、1点質問があるのですが、
<CommandMethod("GroupName", "GlobalName", "LocalName", CommandFlags.Modal)> _
Public Sub FuncName()
となっているところで、
CommandMethod("GroupName", "GlobalName", "LocalName", CommandFlags.Modal)
の定義の意味教えていただきたいです。
特に、("GroupName", "GlobalName", "LocalName", CommandFlags.Modal)の引数は
どういう意味なのでしょうか。
勝手なお願いばかりですいません。
よろしくお願いします。
こんにちは、
"GroupName", "GlobalName", "LocalName" のところは、コマンドのグループ名、グローバル名、ローカル名を指定します。
例えば、グローバル名として "MyCommand"、ローカル名として "私のコマンド" と指定すると、コマンドラインに MyCommand と入力しても 私のコマンド と入力しても実行できます。
でも、普通はグローバル名とローカル名は一緒でいいですよね。
CommandFlags.Modal のところは普通のコマンドはこれでいいと思います。
でも、場合によって変更する必要があるときもあります。
以下の URL から ObjectARX for AutoCAD 2013 の Download ObjectARX Documentation を入手できます。
http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=785550
それに含まれている arxmgd.chm の [Autodesk.AutoCAD.Runtime Namespace] - [CommandFlags Enumeration] に記述があるので見てみてください。
では。
すいません。
また問題がありまして、教えていただきたいのですが。
ObjectAppended イベントで追加されたObjectを取るには、どうしたらいいか教えてもらえませんか。
よろしくお願いします。
こんばんは。
「10-19-2012 07:02 PM」の書き込みにある以下のコードの引数 e (e.DBObject)で追加されたオブジェクトを取得できると思いますが、このことでいいでしょうか。
Public Sub test(sender As Object, e As Autodesk.AutoCAD.DatabaseServices.ObjectEventArgs)
MsgBox(e.DBObject.ToString)
End Sub
お探しの情報が見つからないときは、コミュニティで質問しましょう。困っている人がいたら、情報を教えてあげましょう。