如何实现将我新建的AcdbDatabase插入到当前图形
如何实现将我新建的AcdbDatabase插入到当前图形,但不允许将图形保存到dwg图形;或者说:我想把一幅图内某个指定范围的图形保留,而删掉不在范围内的图形???
没看懂你的问题
插入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不行吗?
总之没看懂。
系统中全部图形都不允许SaveAs或save,总之不能保存为文件,只是在Acad中显示
WHY?
实际上,只要你不调用SaveAs()或save(),图形将不会保存,若ACAD窗口中没显示,用acedCommand()执行一次REDRAW试试。我现在是将不在区域内的实体逐一判断删除!能否通过其他方式和您直接交谈(OICQ)等?
页:
[1]