zdqwy19 发表于 2015-10-28 18:44:00

objectarx修改块内实体无效

做了一个测试程序,试图将选中的块内直线的颜色改为红色,程序运行既不提示错误,运行过后也没有效果。不知道为什么?复制代码

ivde 发表于 2015-10-28 22:10:00


1 Blockreference直接获取blockid不用entget
2 改完regen或更新所有blockreference

zdqwy19 发表于 2015-10-28 22:57:00


Blockreference直接获取blockid不用entget,遍历块可以不用知道块的名称?这个没有看到实例,我也只是照着实例抄着来的。 更新所有blockreference这个还真不懂。希望能给个代码学习下!

ivde 发表于 2015-10-29 08:04:00

复制代码

zdqwy19 发表于 2015-10-29 15:21:00


谢谢指导!看到您的代码感觉受益良多!另外如果不用regen如何更新所有blockreference?

ivde 发表于 2015-10-30 00:37:00


据说使用这两句
                actrTransactionManager->flushGraphics();
                acedUpdateDisplay();
我是没有测试成功过,可以使用一个变通方法复制代码相当于强制更新

zdqwy19 发表于 2015-10-30 14:50:00


这个我找到了解决方法,打开插入块的时候
AcDbEntity* pEntity;
AcDbObjectId blkId;
acdbOpenObject( pEntity, blkId, AcDb::kForWrite );
//更改...
pEntity ->recordGraphicsModified();
pEntity ->close();
actrTransactionManager->flushGraphics();
acedUpdateDisplay();
谢谢了!
页: [1]
查看完整版本: objectarx修改块内实体无效