明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1304|回复: 2

[求助]求助:创建实体添加到图纸中异常问题。

[复制链接]
发表于 2005-6-6 10:03:00 | 显示全部楼层 |阅读模式

可以肯定下面代码是能正常运行的,因为在另一个程序运行过,
但是建一个Dialog添加按扭事件,把下面代码粘进去运行就出现未处理的异常,而且应该是
pBlockTableRecord->appendAcDbEntity(pNewPline);
这行出错的。请问是什么原因啊????

就是添加一个多线到图纸中标准例程:
AcGePoint3dArray ptArr;
ptArr.setLogicalLength(4);
for (int i = 0; i < 4; i++) {
ptArr.set((double)(i/2), (double)(i%2), 0.0);
}

AcDb2dPolyline *pNewPline = new AcDb2dPolyline(
AcDb::k2dSimplePoly, ptArr, 0.0, Adesk::kTrue);

pNewPline->setColorIndex(3);

AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pBlockTable, AcDb::kForRead);

AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
AcDb::kForWrite);
pBlockTable->close();


AcDbObjectId plineObjId;
pBlockTableRecord->appendAcDbEntity(pNewPline);

pBlockTableRecord->close();
pNewPline->close();

发表于 2005-6-6 10:43:00 | 显示全部楼层
。。代码在别处能运行,说明这一段代码本身没有问题,多半是前前后后没有设置好。到底什么异常(有没有错误信息之类的?),对话框是怎么做的,真正可能有问题的地方都没有显示出来,一个没有问题的代码看了也没用啊。。


既然知道可能是appendAcDbEntity出错,用回返值监控一下,说不定就看出问题了。。
发表于 2005-6-7 10:27:00 | 显示全部楼层
这段代码本身没什么错,除了没有校验返回值。其实你看一下这个返回值就知道了,我估计 pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
AcDb::kForWrite);

的返回值就不是Acad::eOk,肯定块表在别的程序(可能是你的,可能是别人的)还处于打开状态。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 07:46 , Processed in 0.158785 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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