以下是一个使用 ObjectARX 获取 CAD 尺寸的示例代码:

// 获取选择对象的尺寸
void getSelectedDimensions()
{
    AcDbObjectIdArray objIds;
    if (acedSSGet(NULL, NULL, NULL, NULL, objIds) == RTNORM && objIds.length() > 0)
    {
        AcDbEntity* pEnt = NULL;
        AcDbDimension* pDim = NULL;
        for (int i = 0; i < objIds.length(); ++i)
        {
            if (acdbOpenAcDbEntity(pEnt, objIds[i], AcDb::kForRead) == Acad::eOk)
            {
                pDim = AcDbDimension::cast(pEnt);
                if (pDim != NULL)
                {
                    AcGePoint3d pt1, pt2;
                    pDim->getDimensionLinePoints(pt1, pt2);
                    double dimValue = pDim->measurement();
                    acutPrintf(_T("Dimension value = %f\n"), dimValue);
                }
                pEnt->close();
            }
        }
    }
}

在上面的代码中,我们首先使用 acedSSGet 函数选择一个或多个对象,然后对每个对象进行迭代。如果对象是一个尺寸,则获取其测量值并输出到控制台。

要使用此代码,请将其添加到 ObjectARX 项目中的任何函数或命令中。然后在 AutoCAD 中运行该命令并选择一个或多个尺寸对象。该命令将输出每个尺寸的测量值


原文地址: https://www.cveoy.top/t/topic/ePam 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录