.Net与AutoCad的接口 - 如何进行选择

时间:2011-06-01 19:37:31

标签: c# .net autocad

如何选择图纸中的所有对象?

相关的一些事情
AcadSelectionSet select = _acadCurrentDocument.SelectionSets.Add("my");
select.Select(AcSelect.acSelectionSetAll);

但无法使其发挥作用。

2 个答案:

答案 0 :(得分:4)

在真正的.NET AutoCAD API中(在过程中,而不是像你的例子中的C#/ COM):

Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
PromptSelectionResult psr = ed.GetSelection();
if (psr.Status != PromptStatus.OK) return;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
    foreach (SelectedObject so in psr.Value)
    {
        var dbo = tr.GetObject(so.ObjectId, OpenMode.ForRead);
        //...
    }
    tr.Commit();
}

答案 1 :(得分:1)

如果您想在独立的可执行文件中进行选择,那么AutoCAD COM Interop就是您尝试的方式。如果AutoCAD已打开或未打开,您可能需要它是否是您喜欢的版本。

如有必要,您可能还需要激活AutoCAD窗口。