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;

    }

  • 相关阅读:
    从输入URL到页面加载发生了什么
    JS常用操作方法图表
    前端面试技巧与技术栈准备梳理
    ES6学习笔记(二)—— 通过ES6 Module看import和require区别
    我所理解的event loop
    在npm上发布一个自己的包
    微信小程序--登录流程梳理
    CSS3动画和JS动画的比较
    基于Inception搭建MySQL SQL审核平台Yearing
    MySQL数据库主从切换脚本自动化
  • 原文地址:https://www.cnblogs.com/NewAutoMan/p/6420694.html
Copyright © 2011-2022 走看看