ilove205 发表于 2007-4-23 15:30:00

用VC++6.0在AutoCAD2000中的编程疑问(急)

我是ObjectARX的初学者,遇到以下棘手问题,希望高手们能帮我解决一下:
在2000中画一个包含多条直线、多个圆弧的图形,怎么通过VC++6.0编程找到直线的起点、终点坐标和圆弧的中心坐标、半径,并且保证两线之间的起终点要在误差范围内(这个误差范围自定),如果不在误差范围内弹出对话框提示用户要如何处理?而且要把所得到的直线起终点坐标和圆弧中心坐标、半径存到一个结构体里,方便调用!
我现在做了一点,往后就不会了!急啊,希望大虾们帮帮忙
我编的程序如下:
void CDialogTrackSetting::OnTrackpick()
{
// TODO: Add your control notification handler code here
BeginEditorCommand();
char strPrompt="\n请选择直线,圆弧!";
    ads_name ent_name;
ads_point ent_point;
    AcDbObjectId objId;
    AcDbEntity * pEnt;
const char *pClsName=NULL;
if(RTNORM==acedEntSel(strPrompt,ent_name,ent_point))
{
   CompleteEditorCommand();
         
      acdbGetObjectId(objId,ent_name);
acdbOpenAcDbEntity(pEnt,objId,AcDb::kForRead);

pClsName = pEnt->isA()->name();
      
if(0==strcmp("AcDbLine",pClsName))
{
      AcDbLine* pLine;
   AcGePoint3d start_point,end_point;
   pLine=(AcDbLine*)pEnt;
            start_point=pLine->startPoint() ;
   end_point=pLine->endPoint() ;
}
         
if(0==strcmp("AcDbCircle",pClsName))
{
      AcDbCircle* pCircle;
   AcGePoint3d center_point;
            double radius;
   pCircle=(AcDbCircle*)pEnt;
            center_point=pCircle->center() ;
   radius=pCircle->radius() ;
}
}
CompleteEditorCommand();
}

ilove205 发表于 2007-4-23 15:33:00

自己顶一下
谢了
页: [1]
查看完整版本: 用VC++6.0在AutoCAD2000中的编程疑问(急)