www.mxdraw.com
内容索引主面
前一个向上下一个
McDbBlockTable 类

数据库中的块表类,块表中存放着块表记录,我们常见的模型空间就是块表中名为*Model_Space 的块表记录

C++
class McDbBlockTable : public McDbSymbolTable;

McDbSymbolTable.h

例如:遍历块表中所有的块表记录

    void GetAllBlockRecord()
    {
        // 读方式打开块表对象
        McDbBlockTablePointer spBlkTabl(acdbCurDwg(),McDb::kForRead);
        if(spBlkTabl.openStatus() != Mcad::eOk)
            return;

        // 创建一个遍历器,准备遍历块表

        McDbBlockTableIterator* pIterator = NULL;
        spBlkTabl->newIterator(pIterator);

        if(pIterator == NULL)
            return;
        // 把遍历器的指针交给智能指针管理
        std::auto_ptr<McDbBlockTableIterator> spIterator(pIterator);

        // 遍历所有记录

        for(;!pIterator->done();pIterator->step())
        {
            McDbObjectId id;
            pIterator->getRecordId(id);

            // 读方式打开记录
            McDbObjectPointer<McDbBlockTableRecord> spBlkRec(id,McDb::kForRead);
            if(spBlkRec.openStatus() != Mcad::eOk)
                continue;
            LPCTSTR pszName = NULL;
            spBlkRec->getName(pszName);

            CString sT;
            sT.Format(_T("发现块表记录名:%s"),pszName);
            AfxMessageBox(sT);
        }
    };
Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!