/*关闭所有有色斑的图层
 * 
 * 色斑图层比较多的情况下,一个一个弄比较麻烦,这个一次全关,再配合图层状态保存功能就非常容易相互切换了
 * 
 * http://goat.cublog.cn
 * 作者:王晓东 QQ:10516321 Email:xiaook@gmail.com
 * 
 */
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;

/*Copyright © CHINA 2009

AutoCAD version:AutoCAD 2006
Description:

To use DelectObjectsInWindowPolyline.dll:

1. Start AutoCAD and open a new drawing.
2. Type netload and select CloseLayerHasHatchSolid.dll.
3. Execute the xqd command.*/

namespace CloseLayerHasHatchSolid
{
    /// <summary>

/// Summary for Class1.

/// </summary>

public class Class1
    {

[CommandMethod("xcl")]
        public void xcl()
        {
            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            Editor acDocEd = Application.DocumentManager.MdiActiveDocument.Editor;
            Database acDb = acDoc.Database;
            ObjectIdCollection acObjIdColl = new ObjectIdCollection();

//选择范围线

TypedValue[] tv = new TypedValue[2];
            tv[0] = new TypedValue((int)DxfCode.Start, "HATCH");
            tv[1] = new TypedValue((int)DxfCode.ShapeName, "SOLID");
            SelectionFilter sf = new SelectionFilter(tv);
            PromptSelectionResult acPtRes = acDocEd.SelectAll(sf);
            ObjectIdCollection oIdCol = new ObjectIdCollection();

if (acPtRes.Status == PromptStatus.OK)
            {
                SelectionSet ss = acPtRes.Value;
                oIdCol = new ObjectIdCollection(ss.GetObjectIds());
            }
            foreach (ObjectId oid in oIdCol)
            {
                using (Transaction acTrans = acDb.TransactionManager.StartTransaction())
                {
                    Entity ent = (Entity)acTrans.GetObject(oid, OpenMode.ForRead);
                    LayerTable lt;
                    lt = (LayerTable)acTrans.GetObject(acDb.LayerTableId, OpenMode.ForRead);
                    LayerTableRecord ltr = (LayerTableRecord)acTrans.GetObject(lt[ent.Layer],OpenMode.ForWrite);
                    ltr.IsOff = true;
                    acTrans.Commit();
                }
            }
        }
    }
}

摘自:http://blog.csdn.net/gisoracle/article/details/7276662

转:C# Autocad 关闭所有有色斑的图层的更多相关文章

  1. AUTOCAD二次开发-----删除一个图层里面的所有对象

    https://blog.csdn.net/aasswwe/article/details/40899759 private void Test() { // 获取当前文档和数据库 Document ...

  2. SolidWorks242个使用技巧

    1 您可以使用 CTRL+TAB 键循环进入在 SolidWorks 中打开的文件. 2 使用方向键可以旋转模型.按 CTRL 键加上方向键可以移动模型.按 ALT 键加上方向键可以将模型沿顺时针或逆 ...

  3. ps:图层的选择

    接着我们建立一个名为nose的新层,颜色标记为蓝,画上一个扁椭圆形的鼻子,这样就算完成了一个简单人脸的绘制.此时在图层调板可以看到刚才所建立的所有图层.如下左图. 在图层调板中每个图层的最左边有一个眼 ...

  4. LSV又新增13个地质图!量测对比分析全都能搞定

    对于地质工作者来说,地质图是个十分重要的参考资料.随着国家解密的地质资料越来越多,能够有效的把各种地质资料结合起来,进而提高地质工作者的作业效率,是十分有意义的. LSV(LocaSpaceViewe ...

  5. MeteoInfo-Java解析与绘图教程(七)_图层添加站点名称或区域名称

    MeteoInfo-Java解析与绘图教程(七)_图层添加站点名称或区域名称 在上文说了用自动站的数据经过插值绘制色斑图,这种一般是在geoserver上叠加图片呈现,但遇到后端导出图片,我们又想添加 ...

  6. 关闭AutoCAD 2019快速访问工具栏的web和moblie保存文件功能

    解决方法如下:1.先关闭CAD,再打开注册表编辑器:开始--运行--输入 regedit2.定位到 [HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R23. ...

  7. AutoCAD 许可管理器不起作用,或未正确安装,现在将关闭

    问题描述 重新安装了也还是这样,而且第二次打开都跳不出申请码界面就关闭了. 问题原因,初步认为:AutoCAD 在首次弹出申请激活类型的类型时,直接选择了网络激活,而且没有激活成功.再想通过激活码的方 ...

  8. VS2010开发AutoCAD 2012 .net应用程序调试时断点不起作用

    VS2010+ AutoCAD 2012开发调试过程中,发现普通的Class里面的断点是可以跟踪到的,可能是创建自定义的Form做界面是,Form1.cs中的代码断点却不管用.原因在于AutoCAD的 ...

  9. AutoCAD系统变量一览表

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...

随机推荐

  1. 动态链接库 仅有.dll文件时候的使用方法

    在没有.h和.lib文件时,需要函数指针和WIN32 API函数 LoadLibrary, GetProcAddress 和FreeLibrary 只需要.dll文件即可(将.dll文件置入工程目录中 ...

  2. Looksery Cup 2015 H. Degenerate Matrix 数学

    H. Degenerate Matrix Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/549/ ...

  3. Shell脚本[运算表达式,条件控制语句]

    #!/bin/bash #你值得收藏的四则表达式运算. val1=1 val2=1 val3=1 val4=1 val5=1 val6=1 val7=1 let val1++ ((val2++)) v ...

  4. Android简单封装类似JQuery异步请求

    在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...

  5. 强连通分量(LRJ训练指南)

    #include <iostream> #include <queue> #include <string> #include <cstdio> #in ...

  6. 知数堂MYSQL优化课---CU论坛版主 DBA 博客

    http://www.cnblogs.com/MYSQLZOUQI/category/546261.html

  7. paip.android 手机输入法制造大法

    paip.android 手机输入法制造大法 作者Attilax ,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/at ...

  8. 给大家普及一下CPU和SOC的基本知识,好让大家在盲目喝彩做出基本的判断

    转载:http://bbs.tianya.cn/post-worldlook-544367-1.shtml 目前,华为推出了自己的四核手机,用自己的SOC,所以很多不明就里的人开始嚷嚷国产处理器的骄傲 ...

  9. iOS企业级开发者计划的申请流程

    第一步:访问苹果企业版iDP网址:https://developer.apple.com/programs/ios/enterprise/点击Apply Now按钮,开始申请流程. 第二步:点击App ...

  10. C/C++的参数传递机制

    近来公司招人较多,由此面试了非常多的C++程序员.面试时,我都会问到参数传递的相关问题,尤其侧重指针.因为指针毕竟是C/C++最重要的一个优势(在某种情况下也可以说是劣势).但其结果是,1/3的人基本 ...