这是根据拾取点来获取 点实体AcDbPoint 的结果,明显遍历更快。
虽然有点以偏概全,但对于条件固定的选择,使用遍历是个更高效率的选择。
以下是测试源码。
static void getpoint1() { ads_name ss; ads_point pt; if (RTNORM!=acedGetPoint(NULL,_T("\n选择点: "),pt)) { return; } clock_t start,finish; double totaltime; start=clock(); resbuf *rb=acutBuildList(RTDXF0,_T("point"),10,pt,RTNONE); if (RTNORM != acedSSGet(_T("X"),NULL,NULL,rb,ss)) { acutRelRb(rb); acutPrintf(_T("\n未选择到对象!")); finish=clock(); totaltime=(double)(finish-start)/CLOCKS_PER_SEC; acutPrintf(_T("\n选择失败耗时: %0.9lf"),totaltime); return; } acutRelRb(rb); finish=clock(); totaltime=(double)(finish-start)/CLOCKS_PER_SEC; acutPrintf(_T("\n选择完成耗时: %0.9lf"),totaltime); Adesk::Int