无法选择不可见的实体
您好,我需要在图形中隐藏和显示实体,我想通过设置实体的可见性属性来实现这一点
要选择图形中的图元,我使用带有过滤器的选择集。在过滤器中,我使用DxfCode。可见性以选择实体。DxfCode。当实体可见时,过滤器中的可见性工作,我将可见性代码设置为零。一、 e.按预期返回实体
但是,当我将“授权可见”属性设置为false并且它们被隐藏,并且我想再次选择它们以使它们可见后,我重新使用了相同的过滤器,但我设置了DxfCode。可见性为1。当我执行选择集时,PromptSelectionResult状态设置为“错误”。(即result.Status==PromptStatus.Error)
是否有人具有选择不可见实体的经验,并可以解释我可能如何做到这一点
此代码段是我使用选择集的地方:
TypedValue[] values = ReturnEntityDxfCodes(entities_are_visible);
SelectionFilter filter =
new SelectionFilter(values);
PromptSelectionResult res =
ed.SelectCrossingWindow(new Point3d(extents.Max3d.ToArray()),
new Point3d(extents.Min3d.ToArray()), filter);
if (res.Status == PromptStatus.OK)
{
if (res.Value != null)
{
ObjectId[] obj_ids = res.Value.GetObjectIds();
return obj_ids;
}
}
这是我设置Dxf代码的地方,最后一个选择可见性(如果实体可见,则此选项有效)
private TypedValue[] ReturnEntityDxfCodes(bool entities_are_visible)
{
int visible = 0;
if (!entities_are_visible)
visible = 1;
TypedValue[] values =
{
new TypedValue(
-4,
""
),new TypedValue(
-4,
""
)
};
return values;
}
为了测试我设置dxf代码的方式,我只设置了dxfCode以确保可见性
if (!entities_are_visible)
{
TypedValue[] invisible_dxfcode =
{
new TypedValue(
(int)DxfCode.Visibility,
1
)
};
return invisible_dxfcode;
}
我得到了与此相同的结果,结果。状态标志设置为“错误”。
**** Hidden Message ***** 我发现了这个问题。我正在使用SelectCrossingWindow选择集搜索不可见的实体。此选择集要求实体可见。
我切换到SelectAll(过滤器)选择集以仅选择不可见的entities.This效果很好。 slingblade,
为了帮助以后阅读此线程的人,请发布解决您的问题的代码。
谢谢,
页:
[1]