zoukankan      html  css  js  c++  java
  • cad.net添加和删除图层过滤器

    using Autodesk.AutoCAD.ApplicationServices;

    using Autodesk.AutoCAD.DatabaseServices;

    using Autodesk.AutoCAD.EditorInput;

    using Autodesk.AutoCAD.Runtime;

    using Autodesk.AutoCAD.LayerManager;

    namespace LayerFilters

    {

      public class Commands

      {

        [CommandMethod("LLFS")]

        static public void ListLayerFilters()

        {

          Document doc =

            Application.DocumentManager.MdiActiveDocument;

          Database db = doc.Database;

          Editor ed = doc.Editor;

          // List the nested layer filters

          LayerFilterCollection lfc =

            db.LayerFilters.Root.NestedFilters;

          for (int i = 0; i < lfc.Count; ++i)

          {

            LayerFilter lf = lfc[i];

            ed.WriteMessage(

              " {0} - {1} (can{2} be deleted)",

              i + 1,

              lf.Name,

              (lf.AllowDelete ? "" : "not")

            );

          }

        }

        [CommandMethod("CLFS")]

        static public void CreateLayerFilters()

        {

          Document doc =

            Application.DocumentManager.MdiActiveDocument;

          Database db = doc.Database;

          Editor ed = doc.Editor;

          try

          {

            // Get the existing layer filters

            // (we will add to them and set them back)

            LayerFilterTree lft =

              db.LayerFilters;

            LayerFilterCollection lfc =

              lft.Root.NestedFilters;

            // Create three new layer filters

            LayerFilter lf1 = new LayerFilter();

            lf1.Name = "Unlocked Layers";

            lf1.FilterExpression = "LOCKED=="False"";

            LayerFilter lf2 = new LayerFilter();

            lf2.Name = "White Layers";

            lf2.FilterExpression = "COLOR=="7"";

            LayerFilter lf3 = new LayerFilter();

            lf3.Name = "Visible Layers";

            lf3.FilterExpression =

              "OFF=="False" AND FROZEN=="False"";

            // Add them to the collection

            lfc.Add(lf1);

            lfc.Add(lf2);

            lfc.Add(lf3);

            // Set them back on the Database

            db.LayerFilters = lft;

            // List the layer filters, to see the new ones

            ListLayerFilters();

          }

          catch (Exception ex)

          {

            ed.WriteMessage(

              " Exception: {0}",

              ex.Message

            );

          }

        }

        [CommandMethod("DLF")]

        static public void DeleteLayerFilter()

        {

          Document doc =

            Application.DocumentManager.MdiActiveDocument;

          Database db = doc.Database;

          Editor ed = doc.Editor;

          ListLayerFilters();

          try

          {

            // Get the existing layer filters

            // (we will add to them and set them back)

            LayerFilterTree lft =

              db.LayerFilters;

            LayerFilterCollection lfc =

              lft.Root.NestedFilters;

            // Prompt for the index of the filter to delete

            PromptIntegerOptions pio =

              new PromptIntegerOptions(

              " Enter index of filter to delete"

              );

            pio.LowerLimit = 1;

            pio.UpperLimit = lfc.Count;

            PromptIntegerResult pir =

              ed.GetInteger(pio);

            // Get the selected filter

            LayerFilter lf = lfc[pir.Value - 1];

            // If it's possible to delete it, do so

            if (!lf.AllowDelete)

            {

              ed.WriteMessage(

                " Layer filter cannot be deleted."

              );

            }

            else

            {

              lfc.Remove(lf);

              db.LayerFilters = lft;

              ListLayerFilters();

            }

          }

          catch(Exception ex)

          {

            ed.WriteMessage(

              " Exception: {0}",

              ex.Message

            );

          }

        }

      }

    }

  • 相关阅读:
    android测试开发环境搭建
    通过CMD命令行创建和使用Android 模拟器 AVD
    android 内存泄露测试
    NullPointerException检测
    iOS Automated Tests with UIAutomation
    命令方式重新签名apk
    Monkey log分析说明
    jQuery选择器总结[转]
    Java工程带库编译运行
    【转】从零开始学习Gradle之二---如何使用Task
  • 原文地址:https://www.cnblogs.com/swtool/p/3830155.html
Copyright © 2011-2022 走看看