C++进行二次开发来批量修改图纸中的日期和作者信息
#include "aced.h"
#include "dbents.h"
#include "dbdictionary.h"
#include "dbdict.h"
#include "dbxutil.h"
#include "adscodes.h"
void updateDrawingInfo(const char* newDate, const char* newAuthor) {
AcDbDatabase* pDb = acdbHost()->workingDatabase();
AcDbDictionary* pDict = NULL;
if (AcDbDictionary::cast(pDb->getNamedObjectsDictionary(), pDict) == Acad::eOk) {
AcDbDictionaryEntryIterator* iter = NULL;
if (pDict->getEntryIterator(iter) == Acad::eOk) {
for (; !iter->done(); iter->next()) {
AcRxClass* pClass = iter->objectClass();
if (pClass == AcDbBlockTableRecord::desc()) {
AcDbBlockTableRecord* pRecord = AcDbBlockTableRecord::cast(iter->object());
if (pRecord && pRecord->isLayout()) { // 只修改布局的属性
pRecord->setXData(kDwgStampAppName, kDwgStampDate, newDate);
pRecord->setXData(kDwgStampAppName, kDwgStampAuthor, newAuthor);
}
}
}
delete iter;
}
}
}