【急】用ObjectARX读取AutoCAD中的实体信息并在对话框中显示实体属性。
用VC++编写ARX代码,读取CAD中的圆弧实体,在弹出的对话框中显示圆弧的圆心、半径和角度信息,并且可以修改这些信息以更新图形。急!!!有用的方法追加奖励~~...
用VC++编写ARX代码,读取CAD中的圆弧实体,在弹出的对话框中显示圆弧的圆心、半径和角度信息,并且可以修改这些信息以更新图形。
急!!!有用的方法追加奖励~~ 展开
急!!!有用的方法追加奖励~~ 展开
1个回答
展开全部
使用ARX的向导创建一个ARX项目,增加一个命令,在命令函数启蔽睁中实现如下代码即可。
void ShowARCInfo()
{
ads_point adsPt;
ads_name entName;
AcDbObjectId entId;
AcDbEntity* pEnt;
if(acedEntSel(_T("\n请选择圆或圆弧或<退出>:"), entName, adsPt) != RTNORM)
return FALSE;
acdbGetObjectId(entId, entName);
if (acdbOpenObject(pEnt, entId, AcDb::kForRead) != Acad::eOk)
return FALSE;
if(pEnt->isKindOf(AcDbArc::desc()) || pEnt->isKindOf(AcDbCircle::desc()))
{
AcDbArc* pArc = (AcDbArc*)pEnt;
double dR = pArc->radius();
AcGePoint3d ptCen = pArc->center();
double dStartAngle = pArc->startAngle();
double dEndAngle = pArc->endAngle();
// 下面将上面的参数传递到对话框中悄岁显示即可。
...
}
else
{
ads_printf(_T("\n所选实体并非是圆或圆弧并局!"));
}
pEnt->close();
}
void ShowARCInfo()
{
ads_point adsPt;
ads_name entName;
AcDbObjectId entId;
AcDbEntity* pEnt;
if(acedEntSel(_T("\n请选择圆或圆弧或<退出>:"), entName, adsPt) != RTNORM)
return FALSE;
acdbGetObjectId(entId, entName);
if (acdbOpenObject(pEnt, entId, AcDb::kForRead) != Acad::eOk)
return FALSE;
if(pEnt->isKindOf(AcDbArc::desc()) || pEnt->isKindOf(AcDbCircle::desc()))
{
AcDbArc* pArc = (AcDbArc*)pEnt;
double dR = pArc->radius();
AcGePoint3d ptCen = pArc->center();
double dStartAngle = pArc->startAngle();
double dEndAngle = pArc->endAngle();
// 下面将上面的参数传递到对话框中悄岁显示即可。
...
}
else
{
ads_printf(_T("\n所选实体并非是圆或圆弧并局!"));
}
pEnt->close();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询