天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 71|回复: 0

ObjectARX编程(五) ---------符号表中层表的操作

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
创建新的图层,实际上就是创建一个新的层表的记录,并将其添加到层表中。




  修改一个图层的颜色,可以从层表中获取指定的记录,然后使用ACDBLayerTableRecord类的setColor函数设置层表记录的颜色。




  删除一个图层,需要首先从层表中获取指定的层表记录,然后将层表记录设置一个删除的标记。




1. 新建图层

szLayerName;

//第一步首先获取数据库

//获取层表

AcDbLayerTable* pLayerTable = NULL

addbHostApplicationServices()->workingDatabase()->getSymbomTable(pLayerTable ,AcDb::kForWrite);

//判断是否已经存在同名的层表

if(pLayerTable->has(szLayerName))

return ;

//创建层表记录

AcDbLayerTableRecord *pLayerTableRcd = new AcDbLayerTableRecord();

pLayerTableRcd->setName(szLayerName);

//修改层表记录属性 设置颜色等。

AcCmColor color;

color->setColorIndex(colorIndex);

pLayerTableRcd->setColor(color);

//把层表记录添加到层表中

pLayerTable->add(pLayerTableRcd );

//关闭表和表记录

pLayerTableRcd ->close();

pLayerTable->close();




2. 删除图层

szLayerName;

//获取层表

AcDbLayerTable* pLayerTable = NULL

addbHostApplicationServices()->workingDatabase()->getSymbomTable(pLayerTable ,AcDb::kForWrite);

//获取图层表记录的ID

AcDbObjectID layerId = AcDbObjectId::kNull;

if(!pLayerTable->has(szLayerName))

pLayerTable ->getAt(szLayerName,layerId );

pLayerTable ->close();

//判断ID是否无效

//通过ID获取图层表记录

AcDbLayerTableRecord *pLayerTableRcd = NULL;

if(layerId.isValid())

acdbOpenObject(pLayerTableRcd ,layerId,AcDb::kForWrite);

//删除图层表记录

pLayerTableRcd ->erase();

pLayerTableRcd ->close();




3. 遍历图层表记录




//获取层表

AcDbLayerTable* pLayerTable = NULL

addbHostApplicationServices()->workingDatabase()->getSymbomTable(pLayerTable ,AcDb::kForWrite);

//获取层表记录的浏览器

AcDbLayerTableIterator *it = NULL;

pLayerTable ->newIterator(it);

//循环遍历

AcDbLayerTableRecord *pLayerTableRcd = NULL;

for(it->start();!it->done();iter->step())

{

it->getRecord(pLayerTableRcd ,AcDb::kForRead);

//TODO 处理

pLayerTableRcd ->close();

}

delete if;

pLayerTable ->close();

原文链接:[url]https://blog.csdn.net/xiaoyi971520_3/article/details/72730605[/url]

 

 

 

 

ObjectARX编程(五) ---------符号表中层表的操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 11:47 , Processed in 0.128484 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表