2013-02-13 2 views
0

사용자가 정보를 입력 할 수있는 AutoCAD 용 C# 플러그인을 작성한 후 적절한 도면을 openend해야합니다.AutoCAD 도면을 열면 C#이 ontop으로 바뀝니다.

실제 작업 과정은 다음과 같아야합니다

  1. 나는 AutoCAD에서 내 플러그인을 시작
  2. 사용자를 입력 할 수 현재 활성 도면
  3. 사용자의 상단에있는 창 형태로 몇 가지 정보 새로운 그림이 열려 있어야 입력 버튼을 누르십시오
  4. 사용자가 몇 가지 정보를 입력 한 양식은 닫아야합니다 (잘 작동 함)
  5. 입력하려면 새 창 양식을 입력해야합니다. 다른 정보 (첫 번째로 동일하지 창)하지만이 새 도면

IN 문제는 내가 제대로 첫 번째 창을 닫을 수 있습니다 및 새 도면을 열 correclty 것입니다. 이처럼 :

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가 표시되지만 활성 문서를 새 도면으로 설정했기 때문에 실제로는 새 도면에 표시해야합니다. 내가 뭘 잘못하고 있니?

답변

1

해결책을 찾았습니다. 하나의 문서 (내 플러그인을 시작 하나)

에서만 유효이 내 플러그인없이

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

:

나는 다음과 같은 옵션을 내 플러그인을로드했습니다
관련 문제