我已经写了一个段程序,你试试吧。这段代码我测试过了,没问题。
{ //声明变量 ads_name ssname; ads_point pt; int result = acedEntSel(_T("\n请选择一个Text实体:"),ssname,pt); if(result!=RTNORM) return; //将ads_name转为AcDbObjectId AcDbObjectId objId = AcDbObjectId::kNull; Acad::ErrorStatus es = acdbGetObjectId(objId,ssname); if (es!=Acad::eOk) return; //写方式打开要编辑的实体 AcDbEntity* pEntity = NULL; es = acdbOpenAcDbEntity(pEntity,objId,AcDb::kForWrite); if (es!=Acad::eOk) return; //强制转换为AcDbText AcDbText* pText = AcDbText::cast(pEntity); if (pText!=NULL) { //修改坐标到原点(你可以根据你的需求修改坐标点) es = pText->setPosition(AcGePoint3d(0,0,0)); //切记要关闭实体,因为是写打开的 pText->close(); } else pEntity->close(); } |