slingblade 发表于 2015-11-19 18:02:51

无法选择不可见的实体

您好,
我需要在图形中隐藏和显示实体,我想通过设置实体的可见性属性来实现这一点
要选择图形中的图元,我使用带有过滤器的选择集。在过滤器中,我使用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 *****

slingblade 发表于 2015-11-20 02:30:35

我发现了这个问题。我正在使用SelectCrossingWindow选择集搜索不可见的实体。此选择集要求实体可见。
我切换到SelectAll(过滤器)选择集以仅选择不可见的entities.This效果很好。

Kerry 发表于 2015-11-20 03:08:18

slingblade,
为了帮助以后阅读此线程的人,请发布解决您的问题的代码。
谢谢,
页: [1]
查看完整版本: 无法选择不可见的实体