imoses 发表于 2016-10-22 14:07:55

怎样创建一个这样的选择集

我想创建一个选择集,选择文字内容中部分内含“%%130”或者“%%131”或者“%%132”的单行文字,比如能选出“3%%13220”和“%%1308@200(2)”。应该怎么定义过滤条件呢?谢谢。

sxpd 发表于 2016-10-22 14:22:25

            var ed = SystemManager.Editor;
            var res = ed.SelectAll(new ResultList{ { 1, "*%%13*" } });
            if (res.Status == PromptStatus.OK)
                ed.SetImpliedSelection(res.Value.GetObjectIds());

imoses 发表于 2016-10-25 21:26:50

sxpd 发表于 2016-10-22 14:22
var ed = SystemManager.Editor;
            var res = ed.SelectAll(new ResultList{ { 1,...

非常感谢!再问一个,如果两个问题:
1、getentity能不能配合过滤器,仅允许拾取符合条件的对象呢?
2、如果过滤器中,我想排除带“%%131”的文字应该怎么构造过滤器呢?

雪山飞狐_lzh 发表于 2016-10-26 14:20:55

1、使用选择集,设置singleonly为true
2、1, "~%%131"

imoses 发表于 2016-10-26 19:23:09

谢谢各位高人。跟着各位学,每天都有进步

imoses 发表于 2016-10-29 00:07:12

雪山飞狐_lzh 发表于 2016-10-26 14:20
1、使用选择集,设置singleonly为true
2、1, "~%%131"

再请问版主:
1、我使用singleonly为true后过滤器失效了,是两者不能同时作用吗?
2、过滤器怎么设置容差呢?比如我想选择旋转角度为ang正负1度范围的文字。
谢谢先

雪山飞狐_lzh 发表于 2016-10-29 21:53:52

      
      public static void Test()
      {
            var ed = SystemManager.Editor;
            var opts = new PromptSelectionOptions();
            opts.SingleOnly = true;

            double angle = 9.0 / 180 * Math.PI;
            double angle2 = 11.0 / 180 * Math.PI;

            var rlst =
                new ResultList
                {
                  {0, "Text"},
                  {1, "~*2*"},
                  {-4, ">"},
                  {50, angle},
                  {-4, "<"},
                  {50, angle2}
                };
            var res = ed.GetSelection(opts, rlst);
            if (res.Status == PromptStatus.OK)
                ed.SetImpliedSelection(res.Value.GetObjectIds());
      }

雪山飞狐_lzh 发表于 2016-10-29 21:55:18

Cad2010/2测试没问题
页: [1]
查看完整版本: 怎样创建一个这样的选择集