CAD如何交互选择嵌套的对象

主要是用到Editor.GetNestedEntity方法拾取

using var tr = new DBTrans();
while (true)
{
    var pner = ACadApp.Editor.GetNestedEntity("\nSelect a line within a block reference: ");
    // user cancelled
    if (pner.Status != PromptStatus.OK)
    {
        return;
    }
    var dbObj = pner.ObjectId.GetObject(OpenMode.ForRead);
    if (dbObj is Polyline pl)
    {
        if (!pl.Closed)
        {
            ACadApp.Print("多段线不闭合,请拾取闭合的多段线");
            continue;
        }
        var line = (Polyline)tr.GetObject(pner.ObjectId, OpenMode.ForRead);
        tr.ModelSpace.AddEntity(line.Clone() as Polyline);
        break;
    }
    else
    {
        ACadApp.Print("请选择闭合的多段线");
    }
}

评论