CAD菜鸟 发表于 2002-12-20 10:46:00

[求助]请教ARX高手

本帖最后由 作者 于 2002-12-20 10:46:12 编辑

以前一直用ADS,刚刚学习ARX,有一个问题求教各位高手:
已知ads_name,可以得到其AcDbObjectId和AcDbEntity,通过pEnt->isA()->name()也知道是AcDbPolyline,我也知道AcDbPolyline::getPointAt(unsigned int, AcGePoint3d& pt)函数可以得到点,但我如何才能将ads_name与AcDbPolyline关联上?急盼。。。

leeyeafu 发表于 2002-12-20 10:44:00

Use AcDbPolyline Class Query Function

使用AcDbPloyline类的查询函数:
Acad::ErrorStatus AcDbPolyline::getPointAt(unsigned int index, AcGePoint2d& pt) const;
或者
Acad::ErrorStatus AcDbPolyline::getPointAt(unsigned int index,    AcGePoint3d& pt) const;
ARX帮助中有详细说明。

CAD菜鸟 发表于 2002-12-20 10:52:00

[再求助]

本帖最后由 作者 于 2002-12-20 10:52:15 编辑

多谢斑竹指点:
我也知道AcDbPolyline::getPointAt(unsigned int, AcGePoint3d& pt)函数可以得到点,但我如何才能将ads_name与AcDbPolyline关联上?急盼。。。

leeyeafu 发表于 2002-12-20 11:15:00

这样

假设你已得到了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类的成员函数了
//......
}

CAD菜鸟 发表于 2002-12-20 11:21:00

thinks

多谢斑竹:我明白了。查了半天help,也找到过这几个函数,就是不会组合着用。以后还望斑竹多指点。
页: [1]
查看完整版本: [求助]请教ARX高手