본문 바로가기
Programming/AutoCad .Net

[AutoCAD .Net] Get Selected Objects In Document

by 타임박스 2020. 5. 27.
반응형


✔ AutoCAD .Net C#- DWG 도면에서 선택된 오브젝트들을 불러오기

문자, 라인, 폴리라인 등 타잎별로 가져오기



AutoCAD에서 선택되어있는 항목들을 가져오는 코드입니다.

아래 코드는 선택된 오브젝트에서 문자를 확인하는 코드입니다.

라인이나 폴리라인, 원 등의 다른 Type을 얻고 싶다면 typeof(DBText)항목에서

DBText를 Line, Polyline, Circle 등으로 변경 후 활용하시면 됩니다.

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;

private void GetSelectedItems(object sender, EventArgs e)
{
     //활성화된 도면 불러오기
     Autodesk.AutoCAD.ApplicationServices.Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;

     Editor ed = acDoc.Editor;
     Database acCurDb = acDoc.Database;
     
     //선택항목 리스트 얻기
     PromptSelectionResult acSSPrompt;
     acSSPrompt = ed.SelectImplied();
     SelectionSet acSSet = acSSPrompt.Value;

     if(acSSet == null)
     {
         return;
     }
     
     using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
     {
         foreach (SelectedObject item in acSSet)
         {
         	 //선택항목에서 문자 타잎만 찾기
             if (item.ObjectId.ObjectClass.GetRuntimeType() == typeof(DBText))
             {
                 DBText str = acTrans.GetObject(item.ObjectId, OpenMode.ForRead) as DBText;
                 MessageBox.Show(str.TextString);
             }
         }
         acTrans.Commit();
     }
}
반응형

댓글