乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 42|回复: 2

无法选择不可见的实体

[复制链接]

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2015-11-19 18:02:51 | 显示全部楼层 |阅读模式
您好,
我需要在图形中隐藏和显示实体,我想通过设置实体的可见性属性来实现这一点
要选择图形中的图元,我使用带有过滤器的选择集。在过滤器中,我使用DxfCode。可见性以选择实体。DxfCode。当实体可见时,过滤器中的可见性工作,我将可见性代码设置为零。一、 e.按预期返回实体
但是,当我将“授权可见”属性设置为false并且它们被隐藏,并且我想再次选择它们以使它们可见后,我重新使用了相同的过滤器,但我设置了DxfCode。可见性为1。当我执行选择集时,PromptSelectionResult状态设置为“错误”。(即result.Status==PromptStatus.Error)
是否有人具有选择不可见实体的经验,并可以解释我可能如何做到这一点
此代码段是我使用选择集的地方:
  1.                 TypedValue[] values = ReturnEntityDxfCodes(entities_are_visible);
  2.                 SelectionFilter filter =
  3.                   new SelectionFilter(values);
  4.                 PromptSelectionResult res =
  5.                   ed.SelectCrossingWindow(new Point3d(extents.Max3d.ToArray()),
  6.                   new Point3d(extents.Min3d.ToArray()), filter);
  7.                 if (res.Status == PromptStatus.OK)
  8.                 {
  9.                     if (res.Value != null)
  10.                     {
  11.                         ObjectId[] obj_ids = res.Value.GetObjectIds();
  12.                         return obj_ids;
  13.                     }
  14.                 }

这是我设置Dxf代码的地方,最后一个选择可见性(如果实体可见,则此选项有效)
  1. private TypedValue[] ReturnEntityDxfCodes(bool entities_are_visible)
  2.         {
  3.             int visible = 0;
  4.             if (!entities_are_visible)
  5.                 visible = 1;
  6.             TypedValue[] values =
  7.                 {
  8.                   new TypedValue(
  9.                     -4,
  10.                     ""
  11.                   ),new TypedValue(
  12.                     -4,
  13.                     ""
  14.                   )
  15.                 };
  16.             return values;
  17.         }

为了测试我设置dxf代码的方式,我只设置了dxfCode以确保可见性
  1. if (!entities_are_visible)
  2.                 {
  3.                     TypedValue[] invisible_dxfcode =
  4.                     {
  5.                         new TypedValue(
  6.                         (int)DxfCode.Visibility,
  7.                         1
  8.                         )
  9.                     };
  10.                     return invisible_dxfcode;
  11.                 }

我得到了与此相同的结果,结果。状态标志设置为“错误”。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2015-11-20 02:30:35 | 显示全部楼层
我发现了这个问题。我正在使用SelectCrossingWindow选择集搜索不可见的实体。此选择集要求实体可见。
我切换到SelectAll(过滤器)选择集以仅选择不可见的entities.This效果很好。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2015-11-20 03:08:18 | 显示全部楼层
slingblade,
为了帮助以后阅读此线程的人,请发布解决您的问题的代码。
谢谢,
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 21:50 , Processed in 0.329393 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表