C++进行二次开发来批量修改图纸中的日期和作者信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#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;
}
}
}
|