why1025 发表于 2014-12-12 10:10:07

这个函数错在哪了,求救!!

取得选择集包围盒
BOOL GetSSExtents(ads_name ss, ads_point &maxpt, ads_point &minpt)
{
      long len;
      int ret=ads_sslength(ss,&len);
      if(ret!=RTNORM||len<1) return FALSE;
      AcDbObjectId objId;
      ads_name ename;
      AcDbEntity *pEnt;
      AcDbExtents extent;
      AcGePoint3d pt1,pt2;
      ads_ssname (ss, 0, ename);
      acdbGetObjectId(objId,ename);
      acdbOpenObject(pEnt,objId,AcDb::kForRead);
      pEnt->getGeomExtents(extent);
      pt1=extent.maxPoint();
      pt2=extent.minPoint();
      pEnt->close();
      for(int i=0;igetGeomExtents(extent);
                if(pt1extent.minPoint()||pt2>extent.minPoint())
                        pt2=extent.minPoint();
                pEnt->close();
      }
      maxpt=pt1;
      maxpt=pt1;
      maxpt=pt1;
      
      minpt=pt2;
      minpt=pt2;
      minpt=pt2;      return TR;}

highflybir 发表于 2014-12-14 11:01:41

这个函数很多地方出错了。
另外,AcDbExtents 可以直接用AddExt方法的。即直接添加进去。
对于AcDbReference,最好用geomExtentsBestFit
页: [1]
查看完整版本: 这个函数错在哪了,求救!!