您好,
我需要在图形中隐藏和显示实体,我想通过设置实体的可见性属性来实现这一点
要选择图形中的图元,我使用带有过滤器的选择集。在过滤器中,我使用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;
- }
我得到了与此相同的结果,结果。状态标志设置为“错误”。
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |