ObjectArx图层操作总结

参考了网上收集资料,经过实测,ObjectArx2014和2018也可以用的,应该其他版本也没有问题的。文中的很多注释很详细,希望可以帮到新人。

1. 新建一个图层

CLayerOperator定义了NewLayer函数,用于完成图层的新建操作,NewLayer的完整代码如下:

 // 新建一个图层void CLayerOperator::NewLayer(ACHAR* layerName){//获得当前图形的层表AcDbLayerTable *pLayerTbl;acdbHostApplicationServices()->workingDatabase()->getLayerTable(pLayerTbl,AcDb::kForWrite);//是否已经包含指定的层表记录if(pLayerTbl->has(layerName)){pLayerTbl->close();acedPrompt(_T("对应名称的图层已经存在!"));return;}//创建层表记录AcDbLayerTableRecord *pLayerTblRcd;pLayerTblRcd=new AcDbLayerTableRecord();pLayerTblRcd->setName(layerName);  //这里的layerName需要用(_T("?"))这种格式来命名//将新建的层表记录添加到层表中AcDbObjectId layerTblRcdId;pLayerTbl->add(layerTblRcdId,pLayerTblRcd);//设置图形的当前图层acdbHostApplicationServices()->workingDatabase()->setClayer(layerTblRcdId);//关闭层表pLayerTblRcd->close();pLayerTbl->close();}

NewLayer的具体实现注释已经非常详尽,首先获得当前图形的层表,然后判断层表中是否已经存在指定名称的图层,如果是,则直接返回,否则创建层表记录并将新建的层表记录添加到层表中,最后通过AcDbDatabase类的setClayer函数将新建的图层设置成当前图层。

2.使用图形对话框设置指定图层的颜色

// 使用图形对话框设置指定图层的颜色
void CLayerOperator::SetLayerColor(ACHAR* layerName)
{//获得当前图形的层表AcDbLayerTable *pLayerTbl;acdbHostApplicationServices()->workingDatabase()->getLayerTable(pLayerTbl,AcDb::kForRead);//判断是否包含指定名称的层表记录if(!pLayerTbl->has(layerName)){pLayerTbl->close();return;}//获得指定层表记录的指针AcDbLayerTableRecord *pLayerTblRcd;pLayerTbl->getAt(layerName,pLayerTblRcd,AcDb::kForWrite);//弹出“颜色”对话框AcCmColor oldColor=pLayerTblRcd->color();//图层修改前的颜色int nCurColor=oldColor.colorIndex();//用户选择的颜色int nNewColor=oldColor.colorIndex();if(acedSetColorDialog(nNewColor,Adesk::kFalse,nCurColor)){AcCmColor color;color.setColorIndex(nNewColor);pLayerTblRcd->setColor(color);}//关闭层表pLayerTblRcd->close();pLayerTbl->close();
}

3.删除一个图层

// 删除一个图层
void CLayerOperator::DelLayer(ACHAR* layerName)
{//获得当前图形的层表AcDbLayerTable *pLayerTbl;acdbHostApplicationServices()->workingDatabase()->getLayerTable(pLayerTbl,AcDb::kForRead);//判断是否包含指定名称的层表记录if(!pLayerTbl->has(layerName)){pLayerTbl->close();return;}//获得指定层表记录的指针AcDbLayerTableRecord *pLayerTblRcd;pLayerTbl->getAt(layerName,pLayerTblRcd,AcDb::kForWrite);//为其设置“删除”标记pLayerTblRcd->erase();pLayerTblRcd->close();       //关闭层表pLayerTbl->close();
}

感谢以下文章:
http://vcsos.com/article/pageSource/120413/20120413103600_1.shtml

ObjectArx图层操作总结——新建、层色、删除相关推荐

  1. 咸鱼Maya笔记—图层操作

    咸鱼Maya笔记-图层操作 新建图层 图层里关联模型 图层字母含义 删除层 之前学PS弄懂图层很重要,很快我也要进入Maya实战了,所以整理一下Maya图层操作. 新建图层 新建图层 只是单纯的新建图 ...

  2. VBS操作注册表设置新建读取,删除等操作(更新中)

    搜索注册表中的键值,子键等等: Const HKEY_LOCAL_MACHINE = &H80000002 Const REG_SZ = 1 Const REG_EXPAND_SZ = 2 C ...

  3. C#进行MapX二次开发之图层操作

    特别说明,本文整理自一篇网络的文章<MapX从数据库读取数据形成新图层(C#)> 在C#中实现MapX从数据库读取数据形成新图层分为两个问题: 1. MapX从数据库读取数据形成新图层: ...

  4. c# cad 二次开发 类库 netload 图层操作、创建图层、删除图层、设置当前图层等

    c# cad 二次开发 类库 netload 图层操作.创建图层.删除图层.设置当前图层等 using Autodesk.AutoCAD.ApplicationServices; using Auto ...

  5. C#之CAD二次开发实例 (13) 图层操作

    # 0. 引言 图层在CAD中也是一个重要的角色,自然而然二次开发也必不可少,先来回顾一下图形数据库,也就是下面这个东西 Database db = HostApplicationServices.W ...

  6. Ae:形状图层操作基础

    ◆  ◆  ◆ 新建形状图层 方法一: 不选择任何图层(快捷键:F2),然后使用形状工具或钢笔工具直接在合成查看器面板上绘制. 方法二: Ae菜单:图层/新建/形状图层 Shape Layer 或者, ...

  7. 修改图层的范围_PS教程连载第47课:PS图层操作案例星球

    PS教程连载第47课 PS图层操作案例--星球 格式:mp4视频 素材领取:请查看文章底部 Photoshop调整图层讲解:执行"图层-新建调整图层"命令(共计有16 个命令)或者 ...

  8. (七)ArcCatalog应用基础——图层操作与数据输出

    (七)ArcCatalog应用基础--图层操作与数据输出 目录 (七)ArcCatalog应用基础--图层操作与数据输出 1.地图与图层操作 1.1创建图层 1.2设置文件特征 1.3保存独立的图层文 ...

  9. UG NX二次开发(C#)-建模-图层操作

    图层简介 通俗地讲,图层就像是含有文字或图形等元素的胶片,一张张按顺序叠放在一起,组合起来形成页面的最终效果.图层可以将页面上的元素精确定位.图层中可以加入文本.图片.表格.插件,也可以在里面再嵌套图 ...

最新文章

  1. dmidecode常用的查询
  2. 显式无参数构造函数与默认构造函数
  3. Java反射示例教程
  4. 机器学习(九)初识BP神经网络
  5. 贪心——无重叠区间(Leetcode 435)
  6. 如果你选择城市创业的话,可以先从小本生意做起
  7. XCODE GDB这个是老版本xcode,新版的是lldb
  8. python文本字符串比对_[Python] 利用HTML页面查看字符串差异
  9. OpenCV2:Mat属性type,depth,step
  10. EXCEL表格超链接图片
  11. 医院计算机管理工资,医院绩效管理平台:绩效工资管理系统
  12. 删除字符串中的元音字母
  13. 回顾微生物学的发展——我们在哪里,我们要去哪里?
  14. 教师心理压力测试软件,关注教师心理健康——教师版心理测评软件
  15. 龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式
  16. Wordpress 网站设计入门 脚注编辑
  17. 阿里云SLB实现负载均衡
  18. 整数拼接,拼成最小整数(暴力穷举)
  19. 2021-09-25 在uniapp中 打包成app调用地图 提示 uni.authorize is not a function 怎么办 (图文详解)
  20. CCRC信息安全服务资质认证各分项有哪些?

热门文章

  1. macOS快捷键截图
  2. php 如何获取一个变量的名字
  3. 二叉树的Morris遍历:先序遍历和中序遍历
  4. 跑出了几个明星厂商,DaaS赛道要火?
  5. c语言strcasecmp源代码,strcasecmp 的源代码怎么写
  6. 《白帽子讲Web安全 -- 纪念版 吴翰清著》读后随笔
  7. android 定时刷新获取天气信息,android中获取即时天气
  8. ubuntu 15.10 64bit 下 steam无法启动
  9. 没有找到站点和本地项目上传到云服务器
  10. mysql explain ref null_MySQL Explain使用详解