- UID
- 135382
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-5-9
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
AcDbLine *pLine(pt1,pt2);
AcCmColor LayerColor;
LayerColor.setColorIndex(100);
AcDbObjectId id;
postToDatabase(pLine,id,"line",LayerColor); 函数定义见后面。
运行”layer“命令可以看见“line ”层已经创建成功,但是线条没有在“line”层里,而是在“0‘层里头,这是为什么啊?
其中函数为: Acad::ErrorStatus
AsdkAcUiDialogSample::postToDatabase(
AcDbEntity *pEnt,
AcDbObjectId &idObj,
CString LayerName,
AcCmColor LayerColor)
{
Acad::ErrorStatus es;
// 获得当前图形数据库的符号表
AcDbBlockTable *pBlockTable;
es = acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable,
AcDb::kForRead);
// 获得符号表中的模型空间块表记录指针,用于添加对象
AcDbBlockTableRecord *pBlockTableRecord;
es = pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
pBlockTable->close();
// 将直线添加到模型空间块表记录中
if(LayerName != "")
{
AcDbObjectId LayerID = CreateNewLayer(LayerName,LayerColor);
es = pEnt->setLayer(LayerID,Adesk::kTrue); // 设置实体所在图层
}
es = pBlockTableRecord->appendAcDbEntity(idObj,pEnt);
// 关闭块表记录指针和实体指针
pBlockTableRecord->close();
pEnt->close();
//返回状态信息
return es;
} |
|