0

ユーザーが情報を入力できるAutoCAD用のC#プラグインを作成しました。その後、適切な図面をオープンエンドにする必要があります。

実際のワークフローは次のようになります。

  1. AutoCAD でプラグインを開始します
  2. ユーザーは、現在アクティブな図面の上にある Windows フォームにいくつかの情報を入力できます。
  3. ユーザーが入力ボタンを押すと、新しい図面が開かれます
  4. ユーザーが何らかの情報を入力したフォームを閉じる必要があります (正常に動作します)。
  5. 新しいウィンドウフォームを開いて、他の情報を入力する必要があります(最初のウィンドウと同じウィンドウではありません)が、新しい図面では

問題は、最初のウィンドウを正しく閉じて、新しい図面を正しく開くことができることです。このような:

    DocumentCollection documentCollection = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager;

    if (File.Exists(absoultePathOfDrawing))
    {
    Document newDrawing = documentCollection.Open(absoultePathOfDrawing, false);
    Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument = newDrawing; // this sets the new drawing as the active one ==> is on top
    }

Dispose(); // closes the first form
DialogResult = DialogResult.OK; // tells my applciation that the first window was successfully closed

フォームは正しく閉じられ、その後、次の方法で新しいフォームを開こうとします。

if (result == DialogResult.OK)
{
      MessageBox.Show("Test");          

}

しかし、今は新しい図面が上にあり、古い図面が後ろにあります。古い図面に戻ると、新しい MessageBox が表示されますが、アクティブなドキュメントを新しい図面に設定したため、実際には新しい図面に表示されるはずです。私は何を間違っていますか?

4

1 に答える 1

1

私は解決策を見つけました。

次のオプションを使用してプラグインをロードする必要がありました。

[CommandMethod("PluginName", Autodesk.AutoCAD.Runtime.CommandFlags.Session)]

これがないと、私のプラグインは1つのドキュメント(プラグインを開始したドキュメント)でのみ有効です。

于 2013-02-13T10:25:38.807 に答える