找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: yzf_fs

[求助] 有什么办法可以将圆或者圆弧转为polyline

[复制链接]
 楼主| 发表于 2013-10-14 16:52:47 | 显示全部楼层
XDSoft 发表于 2013-10-14 10:04
你看看你的代码,里面创建了几次POLYLINE。

最后还要加一句points1.removeSubArray(0,points1.length());将points1清空才行

点评

自己调试好了吧?  详情 回复 发表于 2013-10-14 21:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-10-14 21:00:58 | 显示全部楼层
yzf_fs 发表于 2013-10-14 16:52
最后还要加一句points1.removeSubArray(0,points1.length());将points1清空才行

自己调试好了吧?

点评

是的  详情 回复 发表于 2013-10-14 21:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-14 21:27:39 | 显示全部楼层
XDSoft 发表于 2013-10-14 21:00
自己调试好了吧?

是的     

点评

那你应该总结下这个帖子,都犯了那些错误,怎么解决的,这样多做日记,会对你有很大帮助的。  详情 回复 发表于 2013-10-14 22:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-10-14 22:08:02 | 显示全部楼层

那你应该总结下这个帖子,都犯了那些错误,怎么解决的,这样多做日记,会对你有很大帮助的。

点评

单步的圆转化为polyline是没问题了,可是当我把其他代码加进去之后就奔溃了  详情 回复 发表于 2013-10-15 09:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-15 09:10:04 | 显示全部楼层
XDSoft 发表于 2013-10-14 22:08
那你应该总结下这个帖子,都犯了那些错误,怎么解决的,这样多做日记,会对你有很大帮助的。

单步的圆转化为polyline是没问题了,可是当我把其他代码加进去之后就奔溃了
  1. for (int j3=0;j3<objId.length();j3++)
  2.      {
  3.       acdbOpenObject(pEnt,objId[j3],AcDb::kForWrite);
  4.      
  5.     if (pEnt->isKindOf(AcDbPolyline::desc())) //加了这个判断和下面的面积判断,其他没变      
  6.       {
  7.         pPoly1=AcDbPolyline::cast(pEnt);
  8.         pPoly1->getArea(area);
  9.         area1.append(area);
  10.         pPoly1->close();
  11.         
  12.        }

  13.       if (pEnt->isKindOf(AcDbCircle::desc()))
  14.         
  15.       {
  16.         circle=AcDbCircle::cast(pEnt);
  17.         center=circle->center();
  18.         radiu=circle->radius();

  19.         circle->getArea(area);
  20.         area1.append(area);   
  21.         
  22.         pt[1].x=pt[2].x=pt[3].x=center.x;
  23.         pt[1].y=center.y+radiu;
  24.         pt[2].y=center.y-radiu;
  25.         pt[3].y=center.y+radiu;

  26.         for(int i=1;i<=3;i++)
  27.         {
  28.           points1.append(pt);
  29.         }
  30.         CreatePolyline(points1,0);

  31.         circle->erase();
  32.         points1.removeSubArray(0,points1.length());
  33.         circle->close();
  34.       }  
  35.      }

  36.   
  37.    

  38.   if (!area1.isEmpty())//判断面积大小
  39.   {

  40.      for (int j2=0;j2<area1.length();j2++)
  41.       {
  42.       
  43.      if (area1[j2]>=area1[0])
  44.     {  
  45.       area1[0]=area1[j2];
  46.       j4=j2;      
  47.      }
  48.     }
  49.      objId.swap(j4,0);

  50.   }
  51.   return objId;
  52.   acedSSFree(entName)


11111.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 12:30 , Processed in 0.309641 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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