明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1467|回复: 1

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

[复制链接]
发表于 2007-4-23 15:30:00 | 显示全部楼层 |阅读模式

我是ObjectARX的初学者,遇到以下棘手问题,希望高手们能帮我解决一下:

AutoCAD2000中画一个包含多条直线、多个圆弧的图形,怎么通过VC++6.0编程找到直线的起点、终点坐标和圆弧的中心坐标、半径,并且保证两线之间的起终点要在误差范围内(这个误差范围自定),如果不在误差范围内弹出对话框提示用户要如何处理?而且要把所得到的直线起终点坐标和圆弧中心坐标、半径存到一个结构体里,方便调用!

我现在做了一点,往后就不会了!急啊,希望大虾们帮帮忙

我编的程序如下:

void CDialogTrackSetting::OnTrackpick()
{
 // TODO: Add your control notification handler code here
 BeginEditorCommand();
 char strPrompt[50]="\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();

}

 楼主| 发表于 2007-4-23 15:33:00 | 显示全部楼层

自己顶一下

谢了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 20:42 , Processed in 0.148831 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表