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;

    }

  • 相关阅读:
    存储过程分页
    SQL內置Function游标函数
    SQL 2000中的触发器使用
    使用.NET自带的功能制作简单的注册码
    在ASP.NET里轻松实现缩略图
    推荐几个用得上且免费的 .NET控件
    SQL內置Function日期和时间函数
    常用的asp代碼和javascript代碼
    SQL內置Function元数据函数
    數據庫中代@@的參數說明
  • 原文地址:https://www.cnblogs.com/NewAutoMan/p/6420694.html
Copyright © 2011-2022 走看看