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

            );

          }

        }

      }

    }

  • 相关阅读:
    Java面试——从JVM角度比较equals和==的区别
    Java线程和多线程(三)——线程安全和同步
    玩转Android之MVVM开发模式实战,炫酷的DataBinding!
    写点什么好呢2? 钱、事业、婚姻、人生意义
    写点什么好呢2? 钱、事业、婚姻、人生意义
    大型网站架构技术一览
    【树莓派】GSM900模块
    【Latex】数学公式排版
    【MYSQL】导入中文后乱码问题
    【R】shiny界面
  • 原文地址:https://www.cnblogs.com/swtool/p/3830155.html
Copyright © 2011-2022 走看看