对应的ARX GE转换DB的代码:
 - // This sample uses "acdbConvertGelibCurveToAcDbCurve"
- // Other methods that you might be interested in :
- // AcDbCurve::getAcGeCurve()
- // AcDbCurve::setFromAcGeCurve()
-
- static void AdskMyTest1_Ge2Db(void)
- {
- AcGeEllipArc3d ellipticArc(AcGePoint3d::kOrigin,
- AcGeVector3d::kXAxis,
- AcGeVector3d::kYAxis,
- 2.0,
- 0.5);
-
- GetCurveObjectId(ellipticArc);
- }
-
-
- static AcDbObjectId GetCurveObjectId(AcGeCurve3d &geCurve3d)
- {
- AcDbObjectId oid = AcDbObjectId::kNull;
- Acad::ErrorStatus es = Acad::eOk;
- AcDbCurve *pDbCurve = NULL;
- es = acdbConvertGelibCurveToAcDbCurve(geCurve3d, pDbCurve);
- if(es == Acad::eOk)
- {
- postToDb(pDbCurve, oid);
- }
- return oid;
- }
-
-
-
- static Acad::ErrorStatus postToDb(
- AcDbEntity* pEnt, AcDbObjectId &oid)
- {
- AcDbBlockTable* pBlockTable;
- AcDbDatabase *pDb
- = acdbHostApplicationServices()->workingDatabase();
- pDb = ->getBlockTable(pBlockTable, AcDb::kForRead);
- AcDbBlockTableRecord* pModelSpaceBTR = NULL;
- pBlockTable->getAt(ACDB_MODEL_SPACE,
- pModelSpaceBTR,
- AcDb::kForWrite);
-
- Acad::ErrorStatus es;
- es = pModelSpaceBTR->appendAcDbEntity(oid, pEnt);
- pEnt->close();
- pModelSpaceBTR->close();
- pBlockTable->close();
-
- return es;
- }
|