using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
namespace MyAutoCADDll
{
public class MyCommands
{
// эта функция будет вызываться при выполнении в AutoCAD
[CommandMethod("Antony")]
public static void SelectObjectsOnscreen()
{
// Получение текущего документа и базы данных
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acCurDb = acDoc.Database;
// Старт транзакции
using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
{
PromptEntityOptions opt = new PromptEntityOptions("");
opt.Message = "/nВыберите объект:";
// Запрос выбора объектов в области чертежа
//PromptEntityResult acSSPrompt = acDoc.Editor.GetEntity(opt);
PromptSelectionResult acSSPrompt = acDoc.Editor.GetSelection();
// Если статус запроса равен OK, объекты выбраны
if (acSSPrompt.Status == PromptStatus.OK)
{
SelectionSet acSSet = acSSPrompt.Value;
// Перебор объектов в наборе
foreach (SelectedObject acSSObj in acSSet)
{
// Проверка, нужно убедится в правильности полученного объекта
if (acSSObj != null)
{
// Открытие объекта для чтения
Entity acEnt = acTrans.GetObject(acSSObj.ObjectId, OpenMode.ForRead) as Entity;
//if (acEnt != null)
//{
DBText txt1 = new DBText();
[color=red] txt1.TextString = acEnt.TextString;[/color]
System.Windows.Forms.MessageBox.Show(txt1.TextString);
// }
}
}
// Сохранение нового объекта в базе данных
acTrans.Commit();
}
}
}
}
}