明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2061|回复: 4

如何实现将我新建的AcdbDatabase插入到当前图形

[复制链接]
发表于 2002-12-1 15:54:00 | 显示全部楼层 |阅读模式
如何实现将我新建的AcdbDatabase插入到当前图形,但不允许将图形保存到dwg图形;
或者说:我想把一幅图内某个指定范围的图形保留,而删掉不在范围内的图形???
发表于 2002-12-2 10:37:00 | 显示全部楼层

没看懂你的问题

插入AcDbDatabase数据库的两种办法:
1、插入已知名的图块:
acdbHostApplicationServices()->workingDatabase()->insert(AcDbObjectId&,  /*输出块ID*/
const char * ,  /*图块名*/
pDb  /*新建的AcDbDatabase指针,下同*/);
2、整个数据库插入:
acdbHostApplicationServices()->workingDatabase()->insert(const AcGeMatrix3d&, /*插入后的几何转换矩阵*/
pDb);
另外,输出pDb还有三招:
1、输出全部图形:
pDb->wblock(acdbHostApplicationServices()->workingDatabase());
2、输出命名块:
pDb->wblock(acdbHostApplicationServices()->workingDatabase(),
AcDbObjectId /*已知块ID*/);
3、输出一组实体:
pDb->wblock(acdbHostApplicationServices()->workingDatabase(),
const AcDbObjectIdArray&, /*欲输出实体ID数组*/
const AcGePoint3d* /*插入点*/);
这样只有调用SaveAs()函数才保存。
把一幅图内某个指定范围的图形保留,而删掉不在范围内的图形???我不知道你如何确定要保留的图形(是不是用矢量裁剪算法?),得到这些图形的ID后输出到当前数据库(或新建数据库)并SaveAs不行吗?
总之没看懂。
 楼主| 发表于 2002-12-5 10:21:00 | 显示全部楼层

系统中全部图形都不允许SaveAs或save,总之不能保存为文件,只是在Acad中显示

发表于 2002-12-5 11:21:00 | 显示全部楼层

WHY?

实际上,只要你不调用SaveAs()或save(),图形将不会保存,若ACAD窗口中没显示,用acedCommand()执行一次REDRAW试试。
 楼主| 发表于 2002-12-5 13:49:00 | 显示全部楼层

我现在是将不在区域内的实体逐一判断删除!能否通过其他方式和您直接交谈(OICQ)等?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:54 , Processed in 0.146391 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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