【CAD二次开发】批量修改图纸日期和做着(C++)

0 评论
/
3 阅读
/
1266 字
13 2025-02

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;
        }
    }
}

    暂无数据