admin 发表于 2024-3-14 20:28:43

[每日一码] 移动INSERT实体上的属性

void Command采用MoveAttr()
{
    ads采用name ename;

    ads采用point pt;

    if (RTNORM != acedEntSel(采用T("\nSelect Blockreference : "), ename, pt))
    {
      return;
    }

    AcDbObjectId objectId;

    acdbGetObjectId(objectId, ename);

    AcDbBlockReference* pBlockRef;

    if (acdbOpenObject(pBlockRef, objectId, AcDb::kForRead) != Acad::eOk)
    {
      acutPrintf(采用T("\nThis is not a Blockreference."));

      return;
    }

    AcDbObjectIterator *pIterator = pBlockRef->attributeIterator();

    for (pIterator->start(); !pIterator->done(); pIterator->step())
    {
      AcDbAttribute *pAttribute;

      if (acdbOpenObject(pAttribute, pIterator->objectId(), AcDb::kForWrite) == Acad::eOk)
      {
            AcGeMatrix3d transMatrix;

            AcGeVector3d moveVector(10, 10, 0);

            transMatrix.setTranslation(moveVector);

            pAttribute->transformBy(transMatrix);

            pAttribute->close();
      }
    }

    pBlockRef->close();
      delete pIterator;
      return;
}
页: [1]
查看完整版本: [每日一码] 移动INSERT实体上的属性