使用AutoCAD 2010的ObjectARX(C ++),可以将AutoCAD实体序列化吗?
我们需要将序列化的实体保存在数据库(Oracle,PostgreSQL等,而不是AcDbDatabase)的字段中。如果您向我展示如何将它们保存到磁盘中,就可以了,就像这样:
AcDbEntity * entity;
...
std::ofstream ofs("c:\\filename.fil", std::ios::binary);
ofs.write((char *)(entity), sizeof(entity));
ofs.close();
谢谢
最佳答案
最简洁的答案是不”。 AutoCAD数据库对象包括对其他对象的引用,因此在不确保所有引用对象都存在的情况下,您不能反序列化离散对象。
从技术上讲,您可以通过实现自定义AcDbDwgFiler(包括必需的对象间引用管理基础结构),然后通过AcDbObject :: dwgOut()将对象序列化到文件管理器,然后通过AcDbObject对它们进行反序列化,来对互连对象的整个层次结构进行描述。 :: dwgIn()。但是,当将整个数据库序列化为.dwg文件时,您最终实际上要复制AutoCAD已经执行的操作,因此,在大多数情况下,它无法达到目的。
关于c++ - AutoCAD实体可以序列化吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12745478/