Programming/AutoCad .Net
[AutoCAD .Net] Get Selected Objects In Document
타임박스
2020. 5. 27. 15:33
반응형
✔ 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();
}
}
반응형