[求助]请教ARX高手
以前一直用ADS,刚刚学习ARX,有一个问题求教各位高手:已知ads_name,可以得到其AcDbObjectId和AcDbEntity,通过pEnt->isA()->name()也知道是AcDbPolyline,我也知道AcDbPolyline::getPointAt(unsigned int, AcGePoint3d& pt)函数可以得到点,但我如何才能将ads_name与AcDbPolyline关联上?急盼。。。 使用AcDbPloyline类的查询函数:
Acad::ErrorStatus AcDbPolyline::getPointAt(unsigned int index, AcGePoint2d& pt) const;
或者
Acad::ErrorStatus AcDbPolyline::getPointAt(unsigned int index, AcGePoint3d& pt) const;
ARX帮助中有详细说明。
多谢斑竹指点:
我也知道AcDbPolyline::getPointAt(unsigned int, AcGePoint3d& pt)函数可以得到点,但我如何才能将ads_name与AcDbPolyline关联上?急盼。。。 假设你已得到了AcDbEntity类的指针pEnt以下代码对你可能有用:
AcDbPloyline *pPLine;
if(pEnt->isKindOf(AcDbPolyline::desc()) /*一般来说,这一句不要省略,它检查pEnt指针是否为AcDbPoloyline类型*/
{
pPLine=AcDbPloyline::cast(pEnt);/* 所有AcDb实体类都派生自AcRxObject类,cast()函数是AcRxObject类的成员函数,这样调用将返回AcDbPolyline类指针,当然若pEnt不是AcDbPloyline类的,cast()函数返回NULL*/
//这样就可以针对pPLine调用AcDbPloyline类的成员函数了
//......
} 多谢斑竹:我明白了。查了半天help,也找到过这几个函数,就是不会组合着用。以后还望斑竹多指点。
页:
[1]