- 积分
- 12459
- 明经币
- 个
- 注册时间
- 2003-5-28
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
static void postToDb(AcDbEntity* ent, AcDbObjectId& objId) { AcDbBlockTable* pBlockTable; AcDbBlockTableRecord* pSpaceRecord; acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead); pBlockTable->getAt(ACDB_MODEL_SPACE, pSpaceRecord, AcDb::kForWrite); pBlockTable->close(); pSpaceRecord->appendAcDbEntity(objId, ent);
ent->close(); pSpaceRecord->close();
} // ----- mycurve._test command (do not rename) static void mycurve_test(void) { // Add your code for command mycurve._test here // Have the user select an polyline ads_name en; AcGePoint3d pt; if (acedEntSel("\nSelect an polyline: ", en, asDblArray(pt)) != RTNORM) { acutPrintf("\nNothing selected"); return; }
// Now, exchange the ads_name for the object Id. // AcDbObjectId eId; acdbGetObjectId(eId, en);
AcDbObject *pObj; acdbOpenObject(pObj, eId, AcDb::kForRead); if (pObj->isKindOf(AcDbPolyline::desc())) { pObj->close();
int rc; char kw[20]; acedInitGet(0, "Offset Other"); rc = acedGetKword("Offset/<Other>: ", kw);
if ((rc != RTNORM) && (rc != RTNONE)) { acutPrintf("\nNothing selected."); return; }else if (rc == RTNONE || strcmp(kw, "Other") == 0) acedAlert("Other"); else { AcDbPolyline *pPolyline; acdbOpenObject(pPolyline,eId,AcDb::kForRead); // Now generate an polyline by 0.5 drawing units. // AcDbVoidPtrArray curves; pPolyline->getOffsetCurves(0.5, curves); AcDbObjectId newCurveId; postToDb((AcDbEntity*)curves[0],newCurveId);
// //acedAlert("F"); AcDbVoidPtrArray curves1; pPolyline->getOffsetCurves(-0.5, curves1); postToDb((AcDbEntity*)curves1[0],newCurveId); // pPolyline->close(); } } else { pObj->close(); acutPrintf("\nSelected entity is not an ellipse"); }
return; } |
|