图层操作

图层的的添加

///acDoc  要添加的文档

///strLayerName  图层名字

///color 图层颜色

///

public ObjectId CreateCadLayer(Document acDoc, string strLayerName,System.Drawing.Color color)
{
  try
  {
  if (String.IsNullOrEmpty(strLayerName))
    return ObjectId.Null;

  ObjectId layerId = new ObjectId();

  using(DocumentLock doclock = acDoc.LockDocument())
  {
    using(Transaction tr = acDoc.Database.TransactionManager.StartTransaction())
    {
      LayerTable lt = tr.GetObject(acDoc.Database.LayerTableId, OpenMode.ForWrite) as LayerTable;
      if (lt.Has(strLayerName))
      {
        layerId = lt[strLayerName];
      }
      else
      {
        LayerTableRecord layer = new LayerTableRecord();
        layer.Name = strLayerName;
        layer.Color = Autodesk.AutoCAD.Colors.Color.FromColor(color);
        layerId = lt.Add(layer);
        tr.AddNewlyCreatedDBObject(layer, true);
      }
      tr.Commit();
      tr.Dispose();
    }
  }
  return layerId;
}
catch (System.Exception ex)
{
  MessageBox.Show(ex.Message, "提示");
  return ObjectId.Null;
}

图层删除

///layer 要删除的图层名

using (Transaction tr = doc.Database.TransactionManager.StartTransaction())
{
  LayerTable lt = tr.GetObject(doc.Database.LayerTableId, OpenMode.ForWrite) as LayerTable;
  LayerTableRecord ltr = tr.GetObject(lt[layer], OpenMode.ForWrite) as LayerTableRecord;
  lt.GenerateUsageData();
  if ((doc.Database.Clayer == lt[layer])          //"0"和“Defpoints"以及当前图层不可以删除,若要删除当前图层,必须先修改当前图层到其他图层
  || layer == "0" || layer == "Defpoints")       //最好是0图层  代码 doc.Database.Clayer = lt["0"];
  {
  tr.Commit();
  //
  }

  else

  {

  tr.Erase(true);

  tr.Commit();
  }
}

获取全部的CAD图层名字 //当然也可以获取LayerTableRecord的其他记录 比如ObjectId ,linewith,color等

public  void GetAllCadLayerName(Document acDoc, out List<string> lyList)
{
  lyList = new List<string>();
  try
  {
    Database acDb = acDoc.Database;
    using (Transaction tr = acDb.TransactionManager.StartTransaction())
    {
      LayerTable lyTbl = tr.GetObject(acDb.LayerTableId, OpenMode.ForRead) as LayerTable;
      foreach (ObjectId layerId in lyTbl)
      {
        LayerTableRecord ltr = (LayerTableRecord)tr.GetObject(layerId, OpenMode.ForRead);
        if (ltr != null /*&& !ltr.Name.Equals("0")*/)
        {
          lyList.Add(ltr.Name);
        }
      }
      tr.Commit();
    }
  }
  catch (System.Exception ex)
  {
    MessageBox.Show(ex.Message, "提示");
    return;
  }
}

时间: 2024-10-15 17:15:35

图层操作的相关文章

Photoshop入门教程(三):图层

学习心得:图层可以说是Photoshop的核心,看似简单,但是对于图像的各种编辑都是基于图层.他就像一层透明的.没有厚度的玻璃纸,每张玻璃纸设置不同的效果,层层叠加,最后显现出绚烂的效果. 在进行图像处理工作时,最好不要破坏原片,不要直接在原片上进行编辑.因为当工作到后期时,可能发现之前的操作需要修改,但是操作步骤数太多,"历史记录"工具已经派不上用途了.这时,图层就成了拯救世界的英雄,一个简单的方法就是在开始修片工作前将原片复制一层作为备份图层再编辑.善于运用图层这个Photosho

C#中GDAL读写shp图层

采用GDAL17的C#库进行shp图层属性表读取和修改操作,C#DLL库解压后包含文件如下: 添加引用主要是带csharp的gdal.ogr.osr三个DLL,程序代码如下: using OSGeo.OGR; using OSGeo.OSR; using OSGeo.GDAL; 1.    读取shp图层操作 public void Reforming(string shpFilePath) { Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8",

关于层的操作

很少用到max里的 层 ,虽然对大场景的管理很有帮助,但可能是我没做过什么大场景吧哈哈~ 有时因为图层问题导致自动渲染程序渲染不出物体... 我的办法就是快刀斩乱麻,所有物体合并到同一层,然后删除其他空层,并将图层设置成可渲染. fn clear_layer = ( all_obj = #() layer_names = #() for i = 0 to layerManager.count-1 do ( ilayer = layerManager.getLayer i ilayer.nodes

OpenLayers中的图层

OpenLayers有多个不同的图层类,每一个都可以连接到不同的地图服务器.例如通过Layer.WMS类可以连接到WMS地图服务器,通过Layer.Google类可以连接到谷歌地图服务器.OpenLayers中的每个图层都是独立的,对一个的操作不会影响到另外一个. 不管地图应用的目的是什么,一个有用的地图至少需要有一个图层,至少一个基底图层.其他基底图层之上的图层称之为叠加图层.基底图层和叠加图层是OpenLayers中的两种图层类型. 基底图层 基底图层在图层列表的最下方,其他图层都在其之上.

PIE-SDK For C++地图范围设置和图层事件监听

1.功能简介 地图范围设置的监听就是通过DisplayTransformationPtr对地图的视图范围更新或者地图的分辨率发生变化进行监听,然后做出相应的操作.图层事件的监听就是通过ActiveViewPtr对地图的添加,删除和移动图层操作进行监听,然后做出相应操作,例如鹰眼图,当监听主地图添加一个新图层数据时,鹰眼图就可以通过将新图层显示在鹰眼图中. 2.功能实现说明 2.1. 实现思路及原理说明 第一步 绑定地图视图事件,添加地图控制的监听事件 第二步 根据不同的事件进行不同的功能操作 2

PS快捷键大全

一.工具箱(多种工具共用一个快捷键的可同时按[Shift]加此快捷键选取) 矩形.椭圆选框工具 [M] 移动工具 [V] 套索.多边形套索.磁性套索 [L] 魔棒工具 [W] 裁剪工具 [C] 切片工具.切片选择工具 [K] 喷枪工具 [J] 画笔工具.铅笔工具 [B] 像皮图章.图案图章 [S] 历史画笔工具.艺术历史画笔 [Y] 像皮擦.背景擦除.魔术像皮擦 [E] 渐变工具.油漆桶工具 [G] 模糊.锐化.涂抹工具 [R] 减淡.加深.海棉工具 [O] 路径选择工具.直接选取工具 [A] 

共有31款PHP 图形/图像处理开源软件(转)

详情点击:http://www.oschina.net/project/lang/22/php?tag=141&os=0&sort=view PHP 图像处理库 Grafika Grafika 是一个 PHP 的图像处理库.可用于改变图像大小.剪切.比较,以及添加水印等操作.同时可以创建一些文本图片.几何图形并应用一些过滤器.基于 Imagick 和 GD 构建. 特征 智能裁剪 图像比较 感知哈希 高级图像处理过滤器 贝塞尔曲线 示例代码: ...更多Grafika信息 最近更新:Gra

第十二、十三周新总结

第十二.十三周总结 ——————————————王林 学科 WEB 数据结构 计算机网络基础 课外读物 进度 第十章.第十一章 第六章后半部分,第七章前半部分 项目6.项目7 <黑客攻防从新手到高手> <Flash MX> 主要内容 第十二周.第十三周主要学习了CSS3的知识.包括CSS3字体与文本的相关属性.设计立体文本.美化背景与边框.设置背景.边框设置.以及综合实例. 两周内.,重点学习了二叉树等. 十二周内,学习了无线局域网的基础知识.无线网络的硬件设备ji组网模式及认证I

PS基础

2013年7月,Adobe公司推出新版本photoshop——Photoshop CC(Creative Cloud).在Photoshop CS6功能的基础上,Photoshop CC新增相机防抖动功能.CameraRAW功能改进.图像提升采样.属性面板改进.Behance集成等功能,以及Creative Cloud,即云功能. 继2012年Adobe推出Photoshop CS6版本后,Adobe又在MAX大会上推出了最新版本的Photoshop CC (Creative Cloud).在主