zoukankan      html  css  js  c++  java
  • ARX中实现实体的偏移

    static AcDbObjectId OffsetEnty(const ACHAR* BlkName,AcDbObjectId entId,double OfsValue,AcDbDatabase *pDb=CrtEntity:: pPurDb);
    //!(多段线特别处理)

    AcDbObjectId EditEntity::OffsetEnty(const ACHAR* BlkName,AcDbObjectId entId,double OfsValue,AcDbDatabase *pDb)
    {
    AcDbEntity *pEnt;
    AcDbCurve *pCurv;
    AcDbVoidPtrArray offCurvs;
    AcDbBlockTable *pBlkTable;
    AcDbBlockTableRecord *pBlkTableRecord;
    ErrorStatus es;
    /*Acad::ErrorStatus es;*/
    AcDbObjectId objctid;
    es=acdbOpenObject(pEnt, entId, AcDb::kForRead);
    if((pCurv = AcDbCurve::cast(pEnt)) == NULL){
    pEnt->close();
    return NULL;
    }
    es=pCurv->getOffsetCurves(OfsValue, offCurvs);
    if(es!= Acad::eOk){
    pEnt->close();
    /*acedAlert("设置偏移失败!");*/
    return AcDbObjectId::kNull;
    }
    pEnt->close();
    if(!offCurvs.isEmpty()){
    pDb->getBlockTable(pBlkTable, AcDb::kForRead);
    pBlkTable->getAt(BlkName, pBlkTableRecord, AcDb::kForWrite);
    pBlkTable->close();
    for(int i = 0; i < offCurvs.length(); i++){
    pEnt = (AcDbEntity*)offCurvs.at(i);
    pBlkTableRecord->appendAcDbEntity(objctid, pEnt);
    }
    pEnt->close();
    pBlkTableRecord->close();
    return objctid;
    }
    else{
    return AcDbObjectId::kNull;
    }
    }

  • 相关阅读:
    IPSec (一)
    python 面向过程和面向对象
    一键修改 yum 源为 aliyun 阿里源 Shell 脚本
    第11组Alpha冲刺(6/6)
    第11组Alpha冲刺(5/6)
    第11组 Alpha冲刺(4/6)
    第11组Alpha冲刺(3/6)
    第11组 Alpha冲刺 (2/6)
    第11组 Alpha冲刺 (1/6)
    第11组(73)需求分析报告
  • 原文地址:https://www.cnblogs.com/swtool/p/4009112.html
Copyright © 2011-2022 走看看