ObjectArx图层操作总结——新建、层色、删除
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图层操作总结——新建、层色、删除相关推荐
- 咸鱼Maya笔记—图层操作
咸鱼Maya笔记-图层操作 新建图层 图层里关联模型 图层字母含义 删除层 之前学PS弄懂图层很重要,很快我也要进入Maya实战了,所以整理一下Maya图层操作. 新建图层 新建图层 只是单纯的新建图 ...
- VBS操作注册表设置新建读取,删除等操作(更新中)
搜索注册表中的键值,子键等等: Const HKEY_LOCAL_MACHINE = &H80000002 Const REG_SZ = 1 Const REG_EXPAND_SZ = 2 C ...
- C#进行MapX二次开发之图层操作
特别说明,本文整理自一篇网络的文章<MapX从数据库读取数据形成新图层(C#)> 在C#中实现MapX从数据库读取数据形成新图层分为两个问题: 1. MapX从数据库读取数据形成新图层: ...
- c# cad 二次开发 类库 netload 图层操作、创建图层、删除图层、设置当前图层等
c# cad 二次开发 类库 netload 图层操作.创建图层.删除图层.设置当前图层等 using Autodesk.AutoCAD.ApplicationServices; using Auto ...
- C#之CAD二次开发实例 (13) 图层操作
# 0. 引言 图层在CAD中也是一个重要的角色,自然而然二次开发也必不可少,先来回顾一下图形数据库,也就是下面这个东西 Database db = HostApplicationServices.W ...
- Ae:形状图层操作基础
◆ ◆ ◆ 新建形状图层 方法一: 不选择任何图层(快捷键:F2),然后使用形状工具或钢笔工具直接在合成查看器面板上绘制. 方法二: Ae菜单:图层/新建/形状图层 Shape Layer 或者, ...
- 修改图层的范围_PS教程连载第47课:PS图层操作案例星球
PS教程连载第47课 PS图层操作案例--星球 格式:mp4视频 素材领取:请查看文章底部 Photoshop调整图层讲解:执行"图层-新建调整图层"命令(共计有16 个命令)或者 ...
- (七)ArcCatalog应用基础——图层操作与数据输出
(七)ArcCatalog应用基础--图层操作与数据输出 目录 (七)ArcCatalog应用基础--图层操作与数据输出 1.地图与图层操作 1.1创建图层 1.2设置文件特征 1.3保存独立的图层文 ...
- UG NX二次开发(C#)-建模-图层操作
图层简介 通俗地讲,图层就像是含有文字或图形等元素的胶片,一张张按顺序叠放在一起,组合起来形成页面的最终效果.图层可以将页面上的元素精确定位.图层中可以加入文本.图片.表格.插件,也可以在里面再嵌套图 ...
最新文章
- dmidecode常用的查询
- 显式无参数构造函数与默认构造函数
- Java反射示例教程
- 机器学习(九)初识BP神经网络
- 贪心——无重叠区间(Leetcode 435)
- 如果你选择城市创业的话,可以先从小本生意做起
- XCODE GDB这个是老版本xcode,新版的是lldb
- python文本字符串比对_[Python] 利用HTML页面查看字符串差异
- OpenCV2:Mat属性type,depth,step
- EXCEL表格超链接图片
- 医院计算机管理工资,医院绩效管理平台:绩效工资管理系统
- 删除字符串中的元音字母
- 回顾微生物学的发展——我们在哪里,我们要去哪里?
- 教师心理压力测试软件,关注教师心理健康——教师版心理测评软件
- 龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式
- Wordpress 网站设计入门 脚注编辑
- 阿里云SLB实现负载均衡
- 整数拼接,拼成最小整数(暴力穷举)
- 2021-09-25 在uniapp中 打包成app调用地图 提示 uni.authorize is not a function 怎么办 (图文详解)
- CCRC信息安全服务资质认证各分项有哪些?