我试图通过命令“ Editor.SelectCrossingWindow”选择更多实体,但是即使我在AutoDesk Network中使用示例代码,选择状态也会显示“错误”
PromptSelectionResult acSSPrompt;
acSSPrompt = acDocEd.SelectCrossingWindow(new Point3d(2, 2, 0),
new Point3d(10, 8, 0));
if (acSSPrompt.Status == PromptStatus.OK)
{
SelectionSet acSSet = acSSPrompt.Value;
Application.ShowAlertDialog("Number of objects selected: " +
acSSet.Count.ToString());
}
如果我使用ed.SelectAll,则代码有效
答案 0 :(得分:0)
SelectCrossingWindow(因为使用硬编码点输入的所有选择)无法选择在当前视口中不可见的实体。因此,为确保选择有效,您必须在进行选择之前进行缩放范围。制作范围最大化的简单方法是将COM API与动态类型一起使用,以避免引用Interop库。
dynamic acadApp = Application.AcadApplication;
acadApp.ZoomExtents();
var selectionResult = ed.SelectCrossingWindow(
new Point3d(2, 2, 0), new Point3d(10, 8, 0));
acadApp.ZoomPrevious();
if (selectionResult.Status == PromptStatus.OK)
{
Application.ShowAlertDialog(
"Number of objects selected: " + selectionResult.Value.Count);
}