zoukankan      html  css  js  c++  java
  • 2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571长事务

    static void zffObjectARX_MyCommand14(void)
    {
    // Add your code for command zffObjectARX._MyCommand14 here
    ACHAR* fileName;
    AcDbDatabase* pDb;
    AcDbObjectId transId;
    struct resbuf* filename;
    filename=acutNewRb(RTSTR);
    acedGetFileD(_T("请选择要检出的图"),NULL,_T("dwg"),0,filename);
    pDb=new AcDbDatabase(Adesk::kFalse);
    fileName=filename->resval.rstring;
    pDb->readDwgFile(fileName);

    AcDbBlockTable *pBlk=NULL;
    AcDbBlockTableRecord *pBlkRcd=NULL;
    pDb->getSymbolTable(pBlk,AcDb::kForRead);
    pBlk->getAt(ACDB_MODEL_SPACE,pBlkRcd,AcDb::kForRead);
    pBlk->close();
    AcDbObjectIdArray objIds;
    AcDbBlockTableRecordIterator* it=NULL;
    pBlkRcd->newIterator(it);
    pBlkRcd->close();
    AcDbEntity* pEnt=NULL;
    for (it->start();!it->done();it->step())
    {
    it->getEntity(pEnt,AcDb::kForRead);
    if (pEnt->isKindOf(AcDbCircle::desc()))
    {
    objIds.append(pEnt->objectId());
    }
    }
    pEnt->close();
    delete it;

    AcDbBlockTable* pBlkCur=NULL;
    AcDbBlockTableRecord* pBlkRcdCur=NULL;
    acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlkCur,AcDb::kForRead);
    pBlkCur->getAt(ACDB_MODEL_SPACE,pBlkRcdCur,AcDb::kForWrite);
    pBlkCur->close();
    AcDbObjectId objIdCur=pBlkRcdCur->objectId();
    pBlkRcdCur->close();

    AcDbIdMapping p;
    acapLongTransactionManagerPtr()->checkOut(transId,objIds,objIdCur,p);
    //AcDbObject* pObj=NULL;
    AcDbLongTransaction* pLongTrans;
    if (acdbOpenObject(pLongTrans,transId,AcDb::kForWrite)==Acad::eOk)
    {
    //AcDbLongTransaction* pLongTrans=AcDbLongTransaction::cast(pObj);

    AcDbLongTransWorkSetIterator* pItor=NULL;
    pLongTrans->newWorkSetIterator(pItor);
    int index;
    acedGetInt(_T(" 输入要改变的颜色值:"),&index);
    for (pItor->start();!pItor->done();pItor->step())
    {
    AcDbEntity* pEnt1=NULL;
    acdbOpenObject(pEnt1,pItor->objectId(),AcDb::kForWrite);
    pEnt1->setColorIndex(index);
    pEnt1->close();
    }

    delete pItor;
    ACHAR str[20]={0};
    acedGetString(0,_T(" 观察实体的改变,按回车结束!"),str);
    pLongTrans->close();
    }

    acapLongTransactionManagerPtr()->checkIn(transId,p);
    pDb->saveAs(fileName);
    acutRelRb(filename);
    delete pDb;
    pDb=NULL;

    }

  • 相关阅读:
    深入理解JavaScript系列(4):立即调用的函数表达式
    深入理解JavaScript系列(3):全面解析Module模式
    深入理解JavaScript系列(2):揭秘命名函数表达式
    深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
    深入理解JavaScript系列
    大白话讲解Promise(一)
    《你不知道的JavaScript》整理(二)——this
    Mysql日期时间大全
    Mysql的时间和日期
    mysql命令大全用户管理相关命令
  • 原文地址:https://www.cnblogs.com/NewAutoMan/p/6420694.html
Copyright © 2011-2022 走看看