⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 object arx 防御性文档.txt

📁 此文档对Object ARx对块表记录的操作进行完善修改
💻 TXT
字号:
createCircle(AcDbObjectId& circleId)
{
  circleId = AcDbObjectId::kNull;
  AcGePoint3d center(9.0, 3.0, 0.0);
  AcGeVector3d normal(0.0, 0.0, 1.0);
  AcDbCircle *pCirc = new AcDbCircle(center, normal, 2.0);
  if (pCirc == NULL)
      return Acad::eOutOfMemory;
  AcDbBlockTable *pBlockTable;
  Acad::ErrorStatus es = acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead);
  if (es != Acad::eOk) {
      delete pCirc;
      return es;
  }
  AcDbBlockTableRecord *pBlockTableRecord;
  es = pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite);
  if (es != Acad::eOk) {
      Acad::ErrorStatus es2 = pBlockTable->close();
      if (es2 != Acad::eOk) {
          acrx_abort("\nApp X failed to close Block"" Table. Error: %d",acadErrorStatusText(es2));
      }
      delete pCirc;
      return es;
  }
  es = pBlockTable->close();
  if (es != Acad::eOk) {
      acrx_abort("\nApp X failed to close Block Table."" Error: %d", acadErrorStatusText(es));
    }
    es = pBlockTableRecord->appendAcDbEntity(circleId,pCirc);
  if (es != Acad::eOk) {
      Acad::ErrorStatus es2 = pBlockTableRecord->close();
      if (es2 != Acad::eOk) {
          acrx_abort("\nApp X failed to close"" Model Space Block Record. Error: %s",acadErrorStatusText(es2));
      }
      delete pCirc;
      return es;
  }
  es = pBlockTableRecord->close();
  if (es != Acad::eOk) {
      acrx_abort("\nApp X failed to close"" Model Space Block Record. Error: %d",acadErrorStatusText(es));
  }
  es = pCirc->close();
  if (es != Acad::eOk) {
      acrx_abort("\nApp X failed to"" close circle entity. Error: %d",acadErrorStatusText(es));
  }
  return es;
}


Acad::ErrorStatus createNewLayer()
{
    AcDbLayerTableRecord *pLayerTableRecord= new AcDbLayerTableRecord;
  if (pLayerTableRecord == NULL)
      return Acad::eOutOfMemory;
  Acad::ErrorStatus es= pLayerTableRecord->setName("ASDK_MYLAYER");
  if (es != Acad::eOk) {
      delete pLayerTableRecord;
      return es;
  }
  AcDbLayerTable *pLayerTable;
  es = acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pLayerTable, AcDb::kForWrite);
  if (es != Acad::eOk) {
      delete pLayerTableRecord;
  return es;
  }
  // The linetype object ID default is 0, which is
  // not a valid ID. Therefore, it must be set to a
  // valid ID, the CONTINUOUS linetype.
  // Other data members have valid defaults, so
  // they can be left alone.
  //
  AcDbLinetypeTable *pLinetypeTbl;
  es = acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pLinetypeTbl, AcDb::kForRead);
  if (es != Acad::eOk) {
      delete pLayerTableRecord;
      es = pLayerTable->close();
      if (es != Acad::eOk) {
          acrx_abort("\nApp X failed to close Layer"" Table. Error: %d",acadErrorStatusText(es));
      }
      return es;
  }
    AcDbObjectId ltypeObjId;
    es = pLinetypeTbl->getAt("CONTINUOUS", ltypeObjId);
    if (es != Acad::eOk) {
        delete pLayerTableRecord;
        es = pLayerTable->close();
        if (es != Acad::eOk) {
              acrx_abort("\nApp X failed to close Layer"" Table. Error: %d",acadErrorStatusText(es));
        }
        return es;
    }
    pLayerTableRecord->setLinetypeObjectId(ltypeObjId);
    es = pLayerTable->add(pLayerTableRecord);
    if (es != Acad::eOk) {
          Acad::ErrorStatus es2 = pLayerTable->close();
          if (es2 != Acad::eOk) {
              acrx_abort("\nApp X failed to close Layer"" Table. Error: %d",acadErrorStatusText(es2));
          }
          delete pLayerTableRecord;
          return es;
    }
    es = pLayerTable->close();
    if (es != Acad::eOk) {
        acrx_abort("\nApp X failed to close Layer"" Table. Error: %d",acadErrorStatusText(es));
      }
    es = pLayerTableRecord->close();
    if (es != Acad::eOk) {
        acrx_abort("\nApp X failed to close Layer"" Table Record. Error: %d",acadErrorStatusText(es));
    }
    return es;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -