0

SendStringtoExecute の後にオブジェクトを選択する方法を知っている人はいますか? 私にとって最善の方法は、フェンスまたはポイントを使用してオブジェクトを選択することです。

これが私のコードの一部です:

foreach (ObjectId objId in NormalblkTblRec)
{
    if (objId.ObjectClass.Name == "AcDbArc")
    {
        Entity en1 = (Entity)trans.GetObject(objId, OpenMode.ForWrite);
        Arc arcs = (Arc)(Object)en1;
        Point3d[] arcpoints = new Point3d[] { arcs.StartPoint, arcs.EndPoint };
        Point3dCollection arcptcol = new Point3dCollection(arcpoints);
        doc.SendStringToExecute("_DIVIDE" + "\n", true, false, false);
        ed.SelectFence(arcptcol);
    }

}

上記のコードは機能しません。このコードの目的は、各円弧 (たとえば、10 分割) の分割の座標を取得することです。誰かが同じ目的を実行するためのより良いアイデアを持っている場合は、遠慮なく提案してください。

どうもありがとう!

4

2 に答える 2

0

実行する送信文字列は非同期であるため、実際にいつ実行されるかを予測できません。通常、ピンボークするか、com から send コマンドを使用する必要があります。場合によっては、エディターで選択を設定してからコマンドを実行できる場合があります。

于 2015-02-16T12:59:09.803 に答える